Android 下发或Assets 使用.9图解决图片资源适配问题
2018-02-07 20:21
309 查看
背景
通常,在适配不同屏幕尺寸的时候,使用.9图可以完美解决图片拉伸、压缩等问题;同时也可以避免不同尺寸用不同的png,无形中增加包体积大小。.9图的好处这里就不再赘述了。.9图的优势这么大,那是不是所有情况下都能直接使用呢?答案是否定的,.9图只能放在drawable路径下,才可以直接使用。
本文将介绍如何在assets目录下使用.9图,以及在下发(图片由服务端返回url下载,适用于换肤等)的情况下使用.9图。
思路
用aapt 命令手动编译.9图下发图片
从文件系统中加载.9图,转化成NinePatchDrawable使用
编译.9图
创建一个.9图的步骤以及.9的规则,本文就不赘述了。下面将告诉大家如何编译.9图,使用aapt命令:aapt c -v -S 9_before -C 9_final 说明: 9_before--> 存放编译之前.9图的文件夹 9_final --> 存放编译之后.9图的文件夹 文件名可自定义 命令解释: aapt c[runch] [-v] -S resource-sources ... -C output-folder ... Do PNG preprocessing on one or several resource folders And store the results in the output folder.
读取使用.9图
将.9图先获取到,然后转化成NinePatchDrawable即可使用。/** * @param context * @param filePath 存放图片的位置 * @return */ public Drawable getImageFromFile(Context context, String filePath) { if (context == null || TextUtils.isEmpty(filePath)) { return null; } Bitmap bitmap = BitmapFactory.decodeFile(filePath); if (bitmap == null) { return null; } Drawable defaultDrawable = null; byte[] chunk = bitmap.getNinePatchChunk(); if (NinePatch.isNinePatchChunk(chunk)) { NinePatchChunk npc = NinePatchChunk.deserialize(chunk); if (null != npc) { defaultDrawable = new NinePatchDrawable(context.getResources(), bitmap, chunk, npc.mPaddings, null); } } else { defaultDrawable = new BitmapDrawable(context.getResources(), bitmap); } return defaultDrawable; }
总结
.9图就是安卓用来适配不同屏幕分辨率用的,原来只会在drawable下面使用,通过本文,希望能运用到所有图片相关的情况下,用来解决Android的适配问题!相关文章推荐
- Android解决图片资源比较大的问题--->.9图片的制作和使用
- Android 将Activity殴打jar包 对于由第三方使用 解决XML 图片 文本资源并不难过进入jar包装问题!
- Android 将Activity打成jar包 供第三方使用 彻底解决XML 图片 文字资源不可打入到jar包的问题!
- android图片资源的适配问题
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Android中使用assets下的资源——图片资源
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- 转!Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- android图片资源的适配问题
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Android自定义控件系列八:详解onMeasure()(二)--利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题
- Android进阶:打jar包获取assets中的资源 解决selector XML文件不能解析的问题
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Android进阶:打jar包获取assets中的资源 解决selector XML文件不能解析的问题
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- android图片资源的适配问题
- 关于图片资源在android2.1/2.2/2.3下无法显示的问题以及解决方法
- Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题