Android和设置(图片)视图alpha的alpha
是否真的没有对应于setAlpha(int)
XML属性?
如果没有,还有什么替代scheme?
不,没有,请参阅ImageView.setAlpha(int)文档中的“相关XML属性”部分是如何丢失的。 另一种方法是使用View.setAlpha(float),其XML对应的是android:alpha
。 它取值范围从0.0到1.0而不是0到255
<ImageView android:alpha="0.4">
但是,后者在API级别11以后才可用。
这比其他的回应容易。 有一个值为double值的xml值。
android:alpha="0.0"
看不见的
android:alpha="0.5"
透明
android:alpha="1.0"
完全可见
这是如何工作的。
我不确定XML,但可以通过以下方式通过代码来完成。
ImageView myImageView = new ImageView(this); myImageView.setAlpha(xxx);
在API 11之前:
- 范围从0到255(包括0),0是透明的,255是不透明的。
在API 11+中:
- 范围从0f到1f(含),0f是透明的,1f是不透明的。
也许是一个简单的背景有用的替代品:
将一个LinearLayout放置在ImageView上,并使用LinearLayout作为不透明度filter。 下面是一个黑色背景的小例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF000000" > <RelativeLayout android:id="@+id/relativeLayout2" android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon_stop_big" /> <LinearLayout android:id="@+id/opacityFilter" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#CC000000" android:orientation="vertical" > </LinearLayout> </RelativeLayout>
改变#00000000 (完全透明)和#FF000000 (完全不透明)之间的LinearLayout的android:background属性。
现在有一个XML替代scheme:
<ImageView android:id="@+id/example" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/example" android:alpha="0.7" />
它是: android:alpha =“0.7”
值从0(透明)到1(不透明)。
使用android:alpha = 0.5来实现50%的不透明度并将Android材质图标从黑色变为灰色。
使用这个forms古代版本的android。
ImageView myImageView; myImageView = (ImageView) findViewById(R.id.img); AlphaAnimation alpha = new AlphaAnimation(0.5F, 0.5F); alpha.setDuration(0); alpha.setFillAfter(true); myImageView.startAnimation(alpha);
alpha可以使用以下hex格式#ARGB或#AARRGGBB与颜色一起设置。 请参阅http://developer.android.com/guide/topics/resources/color-list-resource.html