实例介绍
【实例简介】可以考虑 改改 做个 批量打渠道包工具
【实例截图】
【核心代码】
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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论