Sha*_*kar 21 android drawable imageview
我有一个ImageView.在它的onClick我得到它的Drawable:
Drawable dr = ((ImageView) v).getDrawable();
Run Code Online (Sandbox Code Playgroud)
并将其设置为对话框的ImageView:
zoomedImage.setImageDrawable(dr);
Run Code Online (Sandbox Code Playgroud)
但是当我关闭对话框或活动恢复时.原始位置的图像被拉伸并显示为大于其大小,导致图像中只有一部分图像可见.
这是一个深拷贝的情况还是有另一个问题?如果是,我怎么能深度复制原始Drawable,以便我可以将副本设置为缩放图像?
提前致谢.
小智 51
最后我成功了!我有类似的问题,当我在我的drawable上使用彩色滤镜时它改变了drawable,它非常接近其他人的解决方案,但这只适用于我:
Drawable drwNewCopy = dr.getConstantState().newDrawable().mutate();
Run Code Online (Sandbox Code Playgroud)
ern*_*azm 14
我设法使用以下代码复制drawable:
drawable.mutate().getConstantState().newDrawable();
Run Code Online (Sandbox Code Playgroud)
这mutate()使得drawable mutable避免共享其状态,并getConstantState().newDrawable()创建一个新副本.
因此,不同的ImageViews使用不同的drawables并且没有拉伸.
| 归档时间: |
|
| 查看次数: |
11281 次 |
| 最近记录: |