【问题标题】:How to convert a Bitmap to Drawable in android?如何在 android 中将 Bitmap 转换为 Drawable?
【发布时间】:2011-01-25 19:34:25
【问题描述】:

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

【问题讨论】:

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

标签: android bitmap android-drawable


【解决方案1】:

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

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

【讨论】:

  • 这是我所期望的!
【解决方案2】:

听起来你想使用BitmapDrawable

来自文档:

一个Drawable 包装位图并且可以 平铺、拉伸或对齐。你 可以从一个BitmapDrawable 文件路径,输入流,通过 XML 膨胀,或来自Bitmap 对象。

【讨论】:

  • @Deprecated 使用 BitmapDrawable(Resources, Bitmap) 确保可绘制对象已正确设置其目标密度。
  • 无用的帖子,无用的评论。如果你添加一些代码会更好
【解决方案3】:

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

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

没有Resources referencebitmap 可能无法正确渲染,即使在正确缩放时也是如此。这里有很多问题,只需使用此方法即可解决,而不是仅使用 bitmap 参数直接调用。

【讨论】:

  • 如果你要投反对票,至少要评论为什么。这是一个完全有效的答案,并带来了额外的信息来解决提供的其他答案可能出现的问题。在没有 getResources() 引用的情况下,直接从位图制作的 Drawable 通常会出现缩放错误。
  • 考虑到@Manoj 的答案已弃用,这是一个更准确的答案。
【解决方案4】:

官方Bitmapdrawabledocumentation

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

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

【讨论】:

  • 对不起...我不是认真的
  • 你本可以投票而不是写相同的答案。
【解决方案5】:

我在上下文中使用

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

【讨论】:

  • 重复答案。
【解决方案6】:

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

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

【讨论】:

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

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);

【讨论】:

    【解决方案8】:

    这样做:

    private void setImg(ImageView mImageView, Bitmap bitmap) {
    
        Drawable mDrawable = new BitmapDrawable(getResources(), bitmap);
        mImageView.setDrawable(mDrawable);
    }
    

    【讨论】:

    • 不是他所要求的解决方案
    【解决方案9】:

    还有一个:

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

    【讨论】:

      【解决方案10】:

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

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

      【讨论】:

        【解决方案11】:

        对于 Kotlin 用户:

        Kotlin 具有将Bitmap 转换为BitmapDrawable 的功能:

        Bitmap.toDrawable(resources)

        【讨论】:

          【解决方案12】:

          你可以试试这个:

          public static Bitmap mirrorBitmap(Bitmap bInput)
              {
                  Bitmap  bOutput;
                  Matrix matrix = new Matrix();
                  matrix.preScale(-1.0f, 1.0f);
                  bOutput = Bitmap.createBitmap(bInput, 0, 0, bInput.getWidth(), bInput.getHeight(), matrix, true);
                  return bOutput;
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-26
            • 1970-01-01
            • 2018-08-01
            • 1970-01-01
            • 2021-07-28
            • 1970-01-01
            • 2012-02-11
            • 1970-01-01
            相关资源
            最近更新 更多