zoukankan      html  css  js  c++  java
  • Android -- Drawable && Bitmap

    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;
    }

    我是天王盖地虎的分割线                                                             

  • 相关阅读:
    算法 在一个递增的二维数组中查找一个数
    java web----网络编程基础
    java----集合(Map)
    java----集合(List、set)
    java----数组
    java面试----1
    java----NIO
    java----commons-io
    java----文件操作
    爬虫----爬取答案
  • 原文地址:https://www.cnblogs.com/yydcdut/p/4080147.html
Copyright © 2011-2022 走看看