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

SK9*_*SK9 118 xml android alpha android-layout android-imageview

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

如果没有,有什么替代品?

jfc*_*ato 227

它比其他响应更容易.有一个xml值alpha,它取双倍值.

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

android:alpha="0.5" 透视

android:alpha="1.0" 完全可见

这就是它的工作原理.

  • 自API 11(Android 3.0)以来,只有`setAlpha(float)`和`android:alpha`.先前的API 11必须使用代码来为图像设置alpha.正如sschuberth在上面的anser中已经说过的那样. (15认同)

ssc*_*rth 175

没有,没有,怎么看"相关的XML属性"部分丢失了在ImageView.setAlpha(INT)文档.另一种方法是使用View.setAlpha(浮点),其XML对方android:alpha.它需要0.0到1.0的范围而不是0到255.例如,使用它

<ImageView android:alpha="0.4">
Run Code Online (Sandbox Code Playgroud)

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

  • 即使我只是在这里重复自己:`ImageView.setAlpha(int)`是一个`int`而``android:alpha`正在浮动,所以严格来说后者不是前者的确切XML对应物,但它是`View.setAlpha(float)`的对应物.如前所述已多次提及,`android:alpha` /`View.setAlpha(float)`仅适用于API级别11. (7认同)
  • 是的,它可以在xml中完成.请查看下面的jfcogato答案. (2认同)

Ume*_*esh 47

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

ImageView myImageView = new ImageView(this);
myImageView.setAlpha(xxx);
Run Code Online (Sandbox Code Playgroud)

在API 11之前:

  • 范围是0到255(含),0是透明的,255是不透明的.

在API 11+中:

  • 范围从0f到1f(包括),0f是透明的,1f是不透明的.

  • 是的,我知道.(我希望这个问题隐含在这个问题中.)XML的一个方面是删除一些代码.对我来说,当各种大小,位置不同时,为什么`alpha`没有XML属性对应物是没有意义的. (2认同)

mar*_*ish 13

也许是纯色背景的有用替代方案:

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>
Run Code Online (Sandbox Code Playgroud)

#00000000(完全透明)和#FF000000(完全不透明)之间改变LinearLayoutandroid:background属性.


Sor*_*rer 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" />
Run Code Online (Sandbox Code Playgroud)

它是:android:alpha ="0.7"

值为0(透明)到1(不透明).


Ale*_*Lee 6

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

setImageAlpha(int)改用