本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术。本文将讲解如何将Drawable转为Bitmap?

问:Rob

我想要设置某个Drawable作为墙纸,但是所有的墙纸功能只支持Bitmap。因为我是pre 2.1系统,所以不能使用WallpaperManager。

而且,我从网上下载的图片在R.drawable中也不能使用,出现这种情况该怎么处理?

答:varun

(最佳答案)

这种方法可以将BitmapDrawable转换成Bitmap

1
2
Drawable
d = ImagesArrayList.get(0); 
Bitmap
bitmap = ((BitmapDrawable)d).getBitmap();

答:Praveen

通常情况下,我觉得下面代码比较有用:

1
2
Bitmap
icon = BitmapFactory.decodeResource(context.getResources(),
                                           R.drawable.icon_resource);

注:下面介绍一种可以下载图片的版本:

1
2
3
4
5
6
7
8
String
name = c.getString(str_url);
URL
url_value =
new

URL(name);
ImageView
profile = (ImageView)v.findViewById(R.id.vdo_icon);
if

(profile !=
null)
{
    Bitmap
mIcon1 =
        BitmapFactory.decodeStream(url_value.openConnection().getInputStream());
    profile.setImageBitmap(mIcon1);
}

答:André

1
2
3
4
5
6
7
8
9
10
11
12
public
static Bitmap drawableToBitmap (Drawable drawable) {
    if

(drawable
instanceof

BitmapDrawable) {
        return

((BitmapDrawable)drawable).getBitmap();
    }
 
    Bitmap
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
    Canvas
canvas =
new

Canvas(bitmap);
    drawable.setBounds(0,
0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);
 
    return

bitmap;
}

答:kabuko

Drawable可以放在Canvas上,而Bitmap支持Canvas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public
static Bitmap drawableToBitmap (Drawable drawable) {
    if

(drawable
instanceof

BitmapDrawable) {
        return

((BitmapDrawable)drawable).getBitmap();
    }
 
    int
width = drawable.getIntrinsicWidth();
    width
= width > 0 ? width : 1;
    int
height = drawable.getIntrinsicHeight();
    height
= height > 0 ? height : 1;
 
    Bitmap
bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
    Canvas
canvas =
new

Canvas(bitmap);
    drawable.setBounds(0,
0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);
 
    return

bitmap;
}

原文链接:http://stackoverflow.com/questions/3035692/how-to-convert-a-drawable-to-a-bitmap

文章选自StackOverFlow社区,鉴于其内容对于开发者有所帮助,现将文章翻译于此,供大家参考及学习。9Tech将每日持续更新,读者可点击StackOverflow(简称:SOF)精选问答汇总,查看全部译文内容。同时,我们也招募志同道合的技术朋友共同翻译,造福大家!报名请发邮件至zhangqi_wj@cyou-inc.com。

如何将Drawable转为Bitmap?的更多相关文章

  1. Android Drawable、Bitmap、byte[]之间的转换

    转自http://blog.csdn.net/june5253/article/details/7826597 1.Bitmap-->Drawable Bitmap drawable2Bitma ...

  2. Drawable和Bitmap区别

    Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低.我们理解为一种存储对象比较好 ...

  3. 获取应用图标,Drawable 转bitmap

    获取应用图标: PackageManager p = context.getPackageManager(); Drawable draw=null; ApplicationInfo info; tr ...

  4. 简单谈谈Resource,Drawable和Bitmap之间的转换

    一直接触这些东西,还是归个类整理一下比较好. Resource -> Drawable Drawable draw1 = this.getResources().getDrawable(R.dr ...

  5. android 获取资源文件 r.drawable中的图片转换为drawable、bitmap

    1.R-Drawable Resources resources = mContext.getResources(); Drawable drawable = resources.getDrawabl ...

  6. Android -- Drawable与Bitmap测试

    Drawable                                                                                 以下这个是测试加载10 ...

  7. Drawable和Bitmap转换

    一.Bitmap转Drawable Bitmap mBitMap=getYourBitMap(); //getYourBitMap()是你获取BitMap的方法 BitmapDrawable mBit ...

  8. Drawable、Bitmap、byte[]之间的转换

    android在处理一写图片资源的时候,会进行一些类型的转换: 1 Drawable → Bitmap 的简单方法 ((BitmapDrawable)res.getDrawable(R.drawabl ...

  9. Drawable与Bitmap(转)

    Drawable                                                                                 以下这个是测试加载10 ...

随机推荐

  1. no-sql数据库之redis

    一.FAQ 1.如果用连接器连接redis不成功,报如下错误: crash-report-server replied:Request Entity Too Large 则可以先通过cmd命令查看端口 ...

  2. 自己实现数据结构系列五---BinarySearchTree

    一.二分搜索树: 1.代码: public class BST<E extends Comparable<E>> { private class Node{ public E ...

  3. HDU 2001 计算两点间的距离

    http://acm.hdu.edu.cn/showproblem.php?pid=2001 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离 ...

  4. C#的修饰符

    C#的修饰符 废话少说,直接上总结: 一.在命名空间下: 类:默认修饰符为internal 接口:默认的修饰符为internal 结构体:默认的修饰符为internal 枚举:默认的修饰符为inter ...

  5. Docker实现运行tomcat并部署项目war包,并实现挂载目录

    之前写的有点乱,现在再来整理一下docker的简单部署运行 借鉴博客:https://blog.csdn.net/qq_32351227/article/details/78673591 一.dock ...

  6. python数据结构与算法第八天【冒泡排序】

    1.排序算法的稳定性 稳定排序算法会让原本有相同键值的记录维持相对次序 例如:对以下元组按照元组的第一个元素升序排列,元组如下: (4,1) (3,1) (3,7) (5,6) 若要满足条件,则可能的 ...

  7. python数据结构与算法第五天【顺序表】

    1.列表存储的两种方式 (1)元素内置方式 采用元素内置的方式只能存放同类型元素的数据类型,例如列表中的元素都为整形,元素类型相同,每个元素存放的地址空间大小也相同,则列表中每个元素都是顺序存放的 ( ...

  8. Delphi (Library Path Browsing Path)

    首先要明白的一个概念是dcu文件 *.dcu是*.pas的编译后单元文件(Delphi Compiled Unit), 编译器把它和库文件连接起来就构成了可执行文件*.exe 或*.dll等,相当于C ...

  9. React 设计模式 --- Container and Presentational pattern(容器和展示组件分离)

    在React开发中,一个典型的React组件通常会混杂着逻辑操作部分和展示部分.逻辑操作部分指的是和页面UI无关的内容,如API的调用,数据的处理,事件处理函数. 展示部分则指的是创建页面UI 的内容 ...

  10. codeforces431C

    k-Tree CodeForces - 431C Quite recently a creative student Lesha had a lecture on trees. After the l ...