我需要在 ImageView 的边缘创建一个 alpha 渐变。最好只使用 XML。
问问题
31671 次
4 回答
26
这里的解决方案
图像如下图所示
代码:
- 准备可绘制的形状
res/drawable/gradient_shape.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#00FFFFFF"
android:endColor="#FFFFFFFF"
android:type="linear" />
</shape>
定义布局:activity_main.xml:
<ImageView
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/photo"
android:src="@drawable/gradient_shape" />
这里 drawable/photo 只是 drawables 文件夹中的 jpeg
编辑 以获取更多信息,请参阅本教程
于 2013-01-15T20:07:07.637 回答
4
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#00FFFFFF"
android:endColor="#FFFFFFFF"
android:type="linear" />
</shape>
完美的透明性。确保渐变下方的视图实际上在下方,而不仅仅是触摸渐变形状视图。
如果你有主要的 RelativeLayout、 ListView 和 View(Background:Gradient)
确保渐变视图位于 ListView 的顶部,而不是一侧。如果您的渐变放在一边,它将通过RelativeLayout背景颜色而不是ListView透明。
我希望你明白我想说什么。
于 2014-10-23T14:17:32.200 回答
2
对于透明度:
android:startColor="@null"
或者您可以使用这样的 8 位十六进制颜色:
android:startColor="#FF000000"
前两个 FF 用于颜色的 alpha,00 是完全透明的,FF 是不透明的
于 2019-06-19T09:45:15.847 回答
1
如果您想要无色透明,则需要编写自定义 ImageView。
如果您的背景是静态颜色,这是我首选的解决方法:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/your_image"/>
<item>
<shape android:shape="rectangle">
<gradient android:startColor="#00efefef"
android:endColor="#ffefefef"
android:angle="270"
android:type="linear"/>
</shape>
</item>
</layer-list>
于 2020-08-07T08:12:08.617 回答