Android -- Drawable && Bitmap

來源:互聯網
上載者:User

標籤:android   style   blog   color   ar   os   使用   sp   for   

Bitmap轉Drawable                                                                    
Bitmap bm=xxx; BitmapDrawable bd=new BitmapDrawable(bm);

因為BtimapDrawable是Drawable的子類,最終直接使用bd對象即可。

Drawable轉Bitmap                                                                    
Drawable d=xxx; BitmapDrawable bd = (BitmapDrawable) d;Bitmap bm = bd.getBitmap();

最終bm就是我們需要的Bitmap對象了。

從資源中擷取Bitmap                                                                  
public static Bitmap getBitmapFromResources(Activity act, int resId) {    Resources res = act.getResources();    return BitmapFactory.decodeResource(res, resId);}
byte[] → Bitmap                                                                     
public static Bitmap convertBytes2Bimap(byte[] b) {    if (b.length == 0) {        return null;    }    return BitmapFactory.decodeByteArray(b, 0, b.length);}
Bitmap → byte[]                                                                     
public static byte[] convertBitmap2Bytes(Bitmap bm) {    ByteArrayOutputStream baos = new ByteArrayOutputStream();    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);    return baos.toByteArray();}
Drawable → Bitmap                                                                  
public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) {    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);    // canvas.setBitmap(bitmap);    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),    drawable.getIntrinsicHeight());    drawable.draw(canvas);    return bitmap;}
我是天王蓋地虎的分割線                                                             

Android -- Drawable && Bitmap

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.