实例介绍
【实例简介】可以考虑 改改 做个 批量打渠道包工具
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class MainForm : DevComponents.DotNetBar.Metro.MetroForm
{
//图片参数
private bool isFirst = true;
private string[] files;
private string[] childFolders = { "android", "android\\hdpi", "android\\mdpi", "android\\xhdpi", "android\\xxhdpi" };
BackgroundWorker bWork = new BackgroundWorker();
//打包参数
private string apkPath;
private string keyPath;
private string javaPath;
private string alignName;
public MainForm()
{
InitializeComponent();
this.Activated = new EventHandler(Form2_Activated);
}
void Form2_Activated(object sender, EventArgs e)
{
if (isFirst)
{
if (DAL.Signture.isJavaEnvirSettled())
{
lb_status.Text = "你的JAVA_HOME未设置,请手动选择";
}
else
{
javaPath = Environment.GetEnvironmentVariable("JAVA_HOME");
}
InitWorker();
isFirst = false;
}
}
#region ----------生成图片------------
private void btn_file_Click(object sender, EventArgs e)
{
OpenFileDialog of = new OpenFileDialog();
of.Filter = "*.png|*.png|*.jpg|*.jpg";
of.Title = "打开";
of.Multiselect = true;
if (of.ShowDialog() == DialogResult.OK)
{
files = of.FileNames;
bWork.RunWorkerAsync();
}
}
private void InitWorker()
{
bWork.WorkerReportsProgress = true;
bWork.WorkerSupportsCancellation = true;
bWork.DoWork = new DoWorkEventHandler((ss, ee) =>
{
int iCount = 1;
foreach (var file in files)
{
bWork.ReportProgress(10, "处理:" Path.GetFileNameWithoutExtension(file));
//建立文件夹
string folder = CreateFolder(file);
//建立ANDROID缩略图
CreateANDROIDThumbs(folder, file);
}
});
bWork.ProgressChanged = new ProgressChangedEventHandler((ss, ee) =>
{
lb_status.Text = "现在执行:" ee.UserState.ToString();
});
bWork.RunWorkerCompleted = new RunWorkerCompletedEventHandler((ss, ee) =>
{
lb_status.Text = "操作结束";
});
}
private string CreateFolder(string file)
{
string filePath = Path.GetDirectoryName(file);
string fileName = Path.GetFileNameWithoutExtension(file);
string root = filePath "\\" fileName;
//根目录
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
//子目录
foreach (string child in childFolders)
{
if (!Directory.Exists(root "\\" child))
{
Directory.CreateDirectory(root "\\" child);
}
}
return root;
}
private void CreateANDROIDThumbs(string folder, string file)
{
string extension = Path.GetExtension(file);
// "android", "android\\hdpi", "android\\mdpi", "android\\xhdpi", "android\\xxhdpi"
//hdpi
foreach (int size in Model.AndroidSizes.hdpiSizes)
{
string thumb = folder "\\android\\hdpi\\" size extension;
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
//mdpi
foreach (int size in Model.AndroidSizes.mdpiSizes)
{
string thumb = folder "\\android\\mdpi\\" size extension;
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
//xhdpi
foreach (int size in Model.AndroidSizes.xhdpiSizes)
{
string thumb = folder "\\android\\xhdpi\\" size extension;
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
//xxhdpi
foreach (int size in Model.AndroidSizes.xxhdpiSizes)
{
string thumb = folder "\\android\\xxhdpi\\" size extension;
DAL.ImageConvert.MakeThumbnail(file, thumb, size, size, "HW");
}
}
#endregion
#region -----------包签名-----------
private void buttonX1_Click(object sender, EventArgs e)
{
//选择apk
OpenFileDialog of = new OpenFileDialog();
of.Filter = "*.*|*.*";
of.Title = "打开apk";
of.Multiselect = false;
if (of.ShowDialog() == DialogResult.OK)
{
apkPath = of.FileName;
}
}
private void buttonX2_Click(object sender, EventArgs e)
{
//选择keystore
OpenFileDialog of = new OpenFileDialog();
of.Filter = "*.*|*.*";
of.Title = "打开apk";
of.Multiselect = false;
if (of.ShowDialog() == DialogResult.OK)
{
keyPath = of.FileName;
}
}
private void buttonX3_Click(object sender, EventArgs e)
{
//配置java目录
FolderBrowserDialog fb = new FolderBrowserDialog();
if (fb.ShowDialog() == DialogResult.OK)
{
javaPath = fb.SelectedPath;
}
}
private void buttonX4_Click(object sender, EventArgs e)
{
//执行
string align=textBox1.Text;
string savedPath = DAL.Signture.savePath(apkPath);
string cmd = string.Format(DAL.Signture.cmdFormat, javaPath);
string cmdStr = string.Format(DAL.Signture.cmdStrFormat, keyPath, savedPath, apkPath, align);
DAL.Signture.RunCmd(cmd, cmdStr);
}
#endregion
}
}
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论