码迷,mamicode.com
首页 > 移动开发 > 详细

Android开发——Drawable与Bitmap知识

时间:2018-08-19 15:46:59      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:new   width   roi   androi   etop   raw   can   tin   知识   

从资源中获得drawable

Drawable drawable = getResources().getDrawable(R.drawable.xxx);

drawable转换bitmapdrawble

BitmapDrawable bitmapdrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.xxx);

drawble转换为bitmap

  • 第一种方式

    实际上,先是把drawable转换为bitmapdrawable,再将bitmapdrawable转换为bitmap,比较简单

    Bitmap bitmap = bitmapdrawable.getBitmap();
  • 第二种方式

    需要重新绘图,较为麻烦,推荐使用第一种

      public static Bitmap drawableToBitmap(Drawable drawable) {   
          // 取 drawable 的长宽   
          int w = drawable.getIntrinsicWidth();   
          int h = drawable.getIntrinsicHeight();   
          // 取 drawable 的颜色格式   
          Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888   
                  : Bitmap.Config.RGB_565;   
          // 建立对应 bitmap   
          Bitmap bitmap = Bitmap.createBitmap(w, h, config);   
          // 建立对应 bitmap 的画布   
          Canvas canvas = new Canvas(bitmap);   
          drawable.setBounds(0, 0, w, h);   
          // 把 drawable 内容画到画布中   
          drawable.draw(canvas);   
          return bitmap;
      }   

bitmap转换为drawable

  • 第一种方式

      Drawable drawable = new BitmapDrawable(bitmap); 
  • 第二种方式

      BitmapDrawable bd= new BitmapDrawable(getResource(), bitmap); 

    PS:bitmapdrawable是drawable的子类,可以直接使用drawable中的方法

Android开发——Drawable与Bitmap知识

标签:new   width   roi   androi   etop   raw   can   tin   知识   

原文地址:https://www.cnblogs.com/kexing/p/9500685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!