android - Drawable 的深拷贝

标签 android imageview drawable

我有一个 ImageView。在它的 onClick 中我得到了它的 Drawable:

Drawable dr = ((ImageView) v).getDrawable();

并将其设置为对话框的 ImageView:

zoomedImage.setImageDrawable(dr);

但是当我关闭对话框或 Activity 恢复时。原始位置的图像被拉伸(stretch)并显示得大于其大小,导致 ImageView 中仅可见图像的一部分。

这是深复制的情况还是有其他问题? 如果是,如何深度复制原始 Drawable 以便将副本设置为缩放图像?

提前致谢。

最佳答案

我终于成功了! 我遇到了类似的问题,当我在可绘制对象上使用滤色器时,它改变了可绘制对象,它与这里其他人的解决方案非常接近,但只有这个对我有用:

Drawable drwNewCopy = dr.getConstantState().newDrawable().mutate();

关于android - Drawable 的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875746/

相关文章:

java - butterknife 中的方法 "onClick"不起作用?

java - Android GridView 适配器

Android:不能使用 android.R.drawable 作为 textview 的背景图片

android - 不同的drawable资源编译

android - 随机绘制圆圈

Android布局外部CSS

android - 支持库和 RecyclerView onBindViewHolder 和 onCreateViewHolder 的 Proguard 问题

android - 在 Android Studio 中添加图像时应用程序崩溃

android - 将图像存储在服务器上以与 Android 应用程序一起使用的大小

Android数据绑定(bind),如何在drawable中绑定(bind)数据?