Android開發——Drawable與Bitmap知識

從資源中得到drawable

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

drawable轉換bitmapdrawble

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

drawble轉換爲bitmap

  • 第一種方式orm

    實際上,先是把drawable轉換爲bitmapdrawable,再將bitmapdrawable轉換爲bitmap,比較簡單ci

    Bitmap bitmap = bitmapdrawable.getBitmap();
  • 第二種方式資源

    須要從新繪圖,較爲麻煩,不過有些須要重繪,大多數均可以使用第一種,因此,仍是推薦第一種(懶癌患者推薦)get

    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

  • 第一種方式it

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

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

    PS:bitmapdrawable是drawable的子類,能夠直接使用drawable中的方法方法

相關文章
相關標籤/搜索