android - 如何更改某个区域的图像视图的透明度?
问题描述
我正在尝试制作一个裁剪个人资料图片的页面。我有一个可以拖动的裁剪框。图像是透明的或模糊的,但在框架内,它是清晰的。框架内的区域将是您的个人资料图片。我知道如何设置 alpha,但我还没有想出在裁剪框中设置 alpha 的方法。所以这就是我想要的效果:
任何帮助都会很棒。谢谢!
解决方案
您可能应该考虑拥有两个 ImageView。一个矩形用于模糊照片,一个圆形放置在第一个顶部用于裁剪预览。
当用户选择照片时,您将创建模糊副本。似乎您已经知道如何在 ImageWiew 中移动照片,因此对 ImageView 和照片的宽度和高度进行几次计算,应该可以让您在两个 ImageView 中正确定位照片以使它们对齐.
最后,当拖动任一 ImageView 时,调整照片在两个 ImageView 中的位置。
- 这对于通过 xml循环的圆形 ImageViews ImageView 看起来很有希望
- 这可能有助于有效的图像模糊How to blur background images in Android
如果您想要一种不同的方法,使用 OpenGL ES,您可以使用适用于 Android OpenGL ES 的像素着色器 Shader实现圆外的实时模糊。可能是一个更优雅的解决方案,但可能没有那么简单。
我不确定您是否想要模糊或透明,但解决方案将非常相似。