我是靠谱客的博主 殷勤汉堡,最近开发中收集的这篇文章主要介绍Bitmap和drawable的互相转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在代码时遇到了些问题,当发送网络请求获取图片数据将图片,但是返回的是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的互相转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部