2 yijidemomo yijidemomo 于 2012.09.21 10:40 提问

如何把一个图片转换成位图?

我想要设置一个图片成为手机的壁纸,但是所有的壁纸功能都只接受位图。我不能使用WallpaperManager 因为我的系统是2.1之前的。
而且我的壁纸是从网上下载的,不在R.drawable里边。

4个回答

mansuifengqi
mansuifengqi   2012.09.21 11:37
已采纳

这些代码可能有用

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

这是一个图像是下载的版本

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);
}
yijidemomo
yijidemomo 我想我知道了,如果这个图片是我想要转换成位图的,那么Bitmap bitmap = ((BitmapDrawable)draw).getBitmap();它确实起作用了
接近 6 年之前 回复
pby_bob
pby_bob   2012.09.21 11:12

从网上下载的图片你也可以转化为位图,如下:

Drawable drawable = null;
drawable = Drawable.createFromStream(new URL(imgUrl).openStream(), "图片名称");
希望对你有帮助。

yijidemomo
yijidemomo 我试了下你这个,没有实现。。。。
接近 6 年之前 回复
liangchichexin
liangchichexin   2012.09.21 13:13
public static Bitmap drawableToBitmap(Drawable drawable) {
   if (drawableinstanceof 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;}
qq_30396141
qq_30396141   2015.08.12 11:32

用扫描仪扫描出来的图片就成了位图

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!