Android之.9图片——Drawable、BitmapDrawable、NinePatchDrawable之间转换
来源:互联网 发布:红光网络 李红光 编辑:程序博客网 时间:2024/05/06 21:16
项目中使用afinal框架加载网络图片,大家都知道在加载时设置一个默认显示的图片来占位,然而这个默认的图片如果是.9图片就无法显示了,所以需要自己转换下。这里涉及到Drawable 转 bitmap时需要区分drawable是NinePatchDrawable还是BitmapDrawable,如果是NinePatchDrawable就不能直接转为BitmapDrawable来取得Bitmap了,为了解决改问题编写下面的转换工具:
package core.util;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.PixelFormat;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.graphics.drawable.NinePatchDrawable;import core.base.XBaseApplication;/** * @Description: bitmap、drawable转换工具 * @Functions: * @Author: * @Date: 2016-02-17 */public class BitmapUtil { public static Drawable bitmap2Drawable(int resId){ Drawable d = XBaseApplication.getApplication().getResources().getDrawable(resId); return d; } /** * bitmap to drawable * @param bitmap * @return */ public static Drawable bitmap2Drawable(Bitmap bitmap){ return new BitmapDrawable(bitmap); } /** * drawable to bitmap * @param drawable * @return */ public static Bitmap drawable2Bitmap(Drawable drawable){ if(drawable instanceof BitmapDrawable){//转换成Bitmap return ((BitmapDrawable)drawable).getBitmap() ; }else if(drawable instanceof NinePatchDrawable){//.9图片转换成Bitmap Bitmap bitmap = Bitmap.createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; }else{ return null ; } }}
核心方法:drawable2Bitmap
结合该方法使用afinal加载网络图片完美解决默认图的设置。
0 0
- Android之.9图片——Drawable、BitmapDrawable、NinePatchDrawable之间转换
- Android中的Drawable资源—— NinePatchDrawable
- Drawable学习之---NinePatchDrawable(.9图片的制作)
- Drawable资源——NinePatchDrawable
- bitmap、drawable与bitmapdrawable之间相互转换
- Android的Drawable之BitmapDrawable
- Drawable资源——BitmapDrawable
- 加圆角,Drawable,Bitmap,BitmapDrawable,字节数组之间的相互转换
- Android Drawable和Bitmap图片之间转换
- Drawable学习之---BitmapDrawable
- Android-drawable资源-BitmapDrawable
- Drawable解析3——LayerDrawable、TransitionDrawable、NinePatchDrawable和LevelListDrawabl
- Drawable&Drawable Resources——BitmapDrawable应用实例
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- iOSUIBezierPath
- bzoj3530
- MySQL外键约束On Delete、On Update各取值的含义
- PAT:1065. A+B and C (64bit) (20)
- NSNotification IOS通知中心
- Android之.9图片——Drawable、BitmapDrawable、NinePatchDrawable之间转换
- 简单哈弗曼编码
- 记录sql on and on where
- codeforces 19D 线段树+set
- COM接口指针
- Display和Visibility
- 用css3选择器给你要的第几个元素添加不同样式方法
- 上传大图的压缩--质量压缩
- 产品经理学习笔记1