概述
最近在代码时遇到了些问题,当发送网络请求获取图片数据将图片,但是返回的是bitmap数据但是设置background需要drawable才能用所以我需要将bitmap转换为drawable,写下此片总结方便以后查阅。有的情况不需要转类型,其实在我的案例中将图片设置match_parent,然后使用帧布局将图片当做背景也能实现效果。
一、Bitmap转Drawable
Bitmap bm=xxx; //xxx根据你的情况获取
BitmapDrawable bd=BitmapDrawable(bm);
Android开发网提示因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
二、Drawable转Bitmap
1,根据已有的Drawable创建一个新的Bitmap:
private Bitmap bitmap;
private void drawableToBitamp(Drawable drawable)
{
int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
System.out.println("Drawable转Bitmap");
Bitmap.Config config =
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565;
bitmap = Bitmap.createBitmap(w,h,config);
//注意,下面三行代码要用到,否在在View或者surfaceview里的canvas.drawBitmap会看不到图
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, w, h);
drawable.draw(canvas);}
2,直接从现有的Drawable中取出Bitmap:
private Bitmap bitmap;
private void drawableToBitamp(Drawable drawable)
{
BitmapDrawable bd = (BitmapDrawable) drawable;
bitmap = bd.getBitmap();
}
最后
以上就是殷勤汉堡为你收集整理的Bitmap和drawable的互相转换的全部内容,希望文章能够帮你解决Bitmap和drawable的互相转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复