Android和设置(图像)视图alpha的alpha

时间:2011-02-08 08:46:45

标签: android xml android-layout android-imageview alpha

setAlpha(int)是否真的没有XML属性?

如果没有,有哪些替代方案?

9 个答案:

答案 0 :(得分:223)

这比其他回复更容易。 有一个xml值alpha,它取双倍值。

android:alpha="0.0"那是不可见的

android:alpha="0.5"透视

android:alpha="1.0"完全可见

这就是它的工作原理。

答案 1 :(得分:150)

不,没有,请参阅ImageView.setAlpha(int)文档中的“相关XML属性”部分缺失。另一种方法是使用View.setAlpha(float)android:alpha的{​​{3}}。它需要0.0到1.0的范围而不是0到255.使用它,例如像

<ImageView android:alpha="0.4">

但是,后者仅在API级别11之后可用。

答案 2 :(得分:46)

我不确定XML,但您可以通过以下方式执行代码。

ImageView myImageView = new ImageView(this);
myImageView.setAlpha(xxx);

在API 11之前:

  • 范围为0到255(含),0为透明,255为不透明。

在API 11 +中:

  • 范围从0f到1f(含),0f是透明的,1f是不透明的。

答案 3 :(得分:12)

对于纯色背景可能是一个有用的替代方案:

LinearLayout 放在 ImageView 上,并使用 LinearLayout 作为不透明度过滤器。下面是一个黑色背景的小例子:

<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 属性(完全不透明)。

答案 4 :(得分:7)

现在有一种XML替代方案:

        <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(不透明)。

答案 5 :(得分:4)

使用android:alpha = 0.5来实现50%的不透明度,并将Android Material图标从黑色变为灰色。

答案 6 :(得分:3)

将此表格用于古老版本的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);

答案 7 :(得分:2)

setAlpha(int)自API 16起已弃用:Android 4.1

请改用setImageAlpha(int)

答案 8 :(得分:0)

可以使用以下十六进制格式#ARGB或#AARRGGBB将alpha设置为颜色。 见http://developer.android.com/guide/topics/resources/color-list-resource.html