[android]zip压缩中使用的.9.png,用aapt处理的方法。
2014-04-18 10:12
357 查看
框架提供了一种Theme切换的方案,具体原理不清楚,表现如下:
提供N个theme文件夹,把对应的图片和颜色放入这些theme文件夹下的zip压缩格式的包中,则切换theme时,使用的资源会根据theme的切换而切换,如:
/custpack/theme/1/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/2/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/3/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/4/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/5/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/6/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
PS:com.android.mms为一个zip格式的压缩包,进行zip压缩后,把.zip的后缀名去掉即可。当用户在设置的Theme中切换主题时,模块中使用的list_selected_holo_light.9.png图片会变化。
UE提供的.9.png图片,直接放入com.android.mms中,显示总有问题,后来确认是要用aapt工具处理一下,原理目前未知,处理方法如下:
aapt s -i inputfile -o outputfile
PS:inputfile为UE提供的图片,outputfile为可使用的图片
因为UE提供的.9.png图片比较多,这里采用了如下的python来对这些图片进行批处理:
提供N个theme文件夹,把对应的图片和颜色放入这些theme文件夹下的zip压缩格式的包中,则切换theme时,使用的资源会根据theme的切换而切换,如:
/custpack/theme/1/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/2/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/3/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/4/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/5/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
/custpack/theme/6/com.android.mms/res/drawable-ldpi/list_selected_holo_light.9.png
PS:com.android.mms为一个zip格式的压缩包,进行zip压缩后,把.zip的后缀名去掉即可。当用户在设置的Theme中切换主题时,模块中使用的list_selected_holo_light.9.png图片会变化。
UE提供的.9.png图片,直接放入com.android.mms中,显示总有问题,后来确认是要用aapt工具处理一下,原理目前未知,处理方法如下:
aapt s -i inputfile -o outputfile
PS:inputfile为UE提供的图片,outputfile为可使用的图片
因为UE提供的.9.png图片比较多,这里采用了如下的python来对这些图片进行批处理:
# -*- coding: utf-8 -*- # It is ok at python-3.3.1rc1.msi installer condition. # example: aapt s -i inputfile -o outputfile # D:\AndroidDev\adt-bundle-windows-x86-20130729\sdk\build-tools\android-4.3\aapt.exe s -i E:\98.Temp\ThemeTest\blue_top.9.png -o E:\98.Temp\ThemeTest\blue_top_new.9.png import os import re walk_names = os.walk(r'E:\98.Temp\ThemeTest') cmd = r'D:\AndroidDev\adt-bundle-windows-x86-20130729\sdk\build-tools\android-4.3\aapt.exe'; for (directory, sub_directorys, file_names) in walk_names: for name in file_names: m = re.match(r'(.+)\.9\.png$', name, re.I) if m: src = os.path.join(directory, name) dst = os.path.join(directory, m.group(1)) + '_new.9.png' tmpCmd = cmd + ' s -v -i ' + src + ' -o ' + dst print(tmpCmd) os.system(tmpCmd)
相关文章推荐
- java 使用7-zip解压缩带密码的压缩文件(非Proccess方法)
- Android GridView控件在使用过程中图片压缩或者方法
- WP移动设备压缩与解压控件Xceed Zip for .NET Compact Framework控件下载及详细介绍使用方法
- Android 打造自己的个性化应用(五):仿墨迹天气实现续--> 使用Ant实现zip/tar的压缩与解压
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- 【代码】Android 使用百度定位SDK 方法及处理错误
- 非java.util.zip,使用ant.jar制作zip压缩文件,以及相关中文解决方法
- Android中经常使用的bitmap处理方法
- Android实现zip文件压缩及解压缩的方法
- Android中的.9.png图形的机制及制作和使用方法
- Android开发(12)--多线程处理机制之Handler的使用方法
- Android中的.9.png图形的机制及制作和使用方法
- Android中的.9.png图形的机制及制作和使用方法
- Android中3种图片压缩处理方法
- Android异步任务处理之AsyncTask异步操作类的使用方法1(不含onCancelled部分)
- JAVA实现压缩文件的方法(使用java.util.zip.*)
- Android中的.9.png图形的机制及制作和使用方法
- Android开发(12)--多线程处理机制之Handler的使用方法
- 【文件压缩】 Android Jar、Zip文件压缩和解压缩处理
- 学习笔记:zipfile的简单使用解压和压缩文件,以为处理加密的情况