ChatGPT解决这个技术问题 Extra ChatGPT

如何在 android 中将 Bitmap 转换为 Drawable?

如何将位图图像转换为 Drawable ?

嗨,我得到了您问题的答案,请点击此链接并得到正确的答案。我成功了,我希望你能成功。祝你好运androidsnippets.com/convert-bitmap-to-drawable
贡献是表达感谢的好方法...... :) 在给出答案方面的贡献...... :)
@Farhan k ......

V
ViliusK

试试这个,它将 Bitmap 类型的图像转换为 Drawable

Drawable d = new BitmapDrawable(getResources(), bitmap);

这是我所期待的!
Y
Yasin Kaçmaz

听起来您想使用 BitmapDrawable

从文档中:

包装位图并且可以平铺、拉伸或对齐的 Drawable。您可以从文件路径、输入流、通过 XML 扩展或从 Bitmap 对象创建 BitmapDrawable。


@Deprecated 使用 BitmapDrawable(Resources, Bitmap) 确保可绘制对象已正确设置其目标密度。
V
ViliusK

看到大量位图在转换为 BitmapDrawable 时缩放不正确的问题,一般的转换方法应该是:

Drawable d = new BitmapDrawable(getResources(), bitmap);

如果没有 Resources reference,即使正确缩放,bitmap 也可能无法正确呈现。这里有许多问题,只需使用此方法即可解决,而不是仅使用 bitmap 参数直接调用。


至少评论为什么如果你要投反对票。这是一个完全有效的答案,并带来了额外的信息来解决提供的其他答案可能出现的问题。在没有 getResources() 引用的情况下,直接从位图制作的 Drawable 通常会出现缩放错误。
考虑到@Manoj 的答案已被弃用,这是一个更准确的答案。
@Raykud,Manoj 的答案和这个答案显示相同的代码。而且,它是如何被弃用的?而且,如果不推荐使用并且不推荐使用它,这如何准确(实际上不推荐使用)
@Sambhav.K 因为 Manoj 的原始答案是“Drawable d =new BitmapDrawable(bitmap);”但多年后被编辑。
Z
Ziem

官方 Bitmapdrawable documentation

这是有关如何转换 bitmap to drawable 的示例

Bitmap bitmap;  
//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);

抱歉……我不是认真的
您本可以投票而不是写相同的答案。
S
Samuel Ivan

我与上下文一起使用

//Convert bitmap to drawable
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);

重复答案。
Z
Ziem

如果你有一个位图图像并且你想在drawable中使用它,比如

Bitmap contact_pic;    //a picture to show in drawable
drawable = new BitmapDrawable(contact_pic); 

现在已弃用。现在使用 BitmapDrawable(Resources, Bitmap) 构造函数。
@schlingel 它仍然可以正常工作,我们中的许多人都在我们的项目中使用它,
这对您有好处,但是当 Google 最终杀死这个构造函数并且您必须重写所有内容时,这无济于事。
@schlingel 是的,但是仍然有人急于使用它并且它可以工作
S
Sanjayrajsinh

1) 位图到 Drawable :

Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
// mImageView.setDrawable(mDrawable);

2)可绘制到位图:

Bitmap mIcon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);
// mImageView.setImageBitmap(mIcon);

T
Thiago

只需这样做:

private void setImg(ImageView mImageView, Bitmap bitmap) {

    Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
    mImageView.setDrawable(mDrawable);
}

不是他所要求的解决方案
D
Desolator

这是另一个:

Drawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(), bitmap);

a
amosu dona

使用代码在草图软件应用程序中将位图隐藏为可绘制

    android.graphics.drawable.BitmapDrawable d = new android.graphics.drawable.BitmapDrawable(getResources(), bitmap);

f
fif.iva

对于 Kotlin 用户:

Kotlin 有一个将 Bitmap 转换为 BitmapDrawable 的函数:

Bitmap.toDrawable(resources)