欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android Drawable转换为Bitmap两种方案

程序员文章站 2022-02-16 11:56:13
...

很多时候我们会通过网络加载了一张位图、如果想拿到这张位图的Bitmap、有两种办法、至于那种好、可能要看是在什么情况下了、我个人两种方法都使用过、最后还是选择了第一种方法、兼容性会强一点


方案一

private Bitmap drawableToBitamp(Drawable drawable)
{
    Bitmap bitmap = null;
    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);
    return bitmap;
}


方案二

private Bitmap drawableToBitamp(Drawable drawable)
{
    BitmapDrawable bd = (BitmapDrawable) drawable;
    Bitmap bitmap = bd.getBitmap();
    return Bitmap;
}