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

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

4个回答

这些代码可能有用

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();它确实起作用了
接近 8 年之前 回复

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

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

yijidemomo
yijidemomo 我试了下你这个,没有实现。。。。
接近 8 年之前 回复
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;}

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问