144

真的没有对应的 XML 属性setAlpha(int)吗?

如果没有,有什么替代方案?

4

10 回答 10

243

它比其他响应更容易。有一个 xml 值alpha采用双精度值。

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

android:alpha="0.5" 透视

android:alpha="1.0" 完全可见

这就是它的工作原理。

于 2013-05-07T10:55:06.493 回答
213

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

<ImageView android:alpha="0.4">

但是,后者仅从 API 级别 11 开始可用。

于 2013-01-23T12:04:49.913 回答
55

我不确定 XML,但您可以通过以下方式通过代码来完成。

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

在 API 11 之前的版本中:

  • 范围是从 0 到 255(含),0 表示透明,255 表示不透明。

在 API 11+ 中:

  • 范围是从 0f 到 1f(含),0f 是透明的,1f 是不透明的。
于 2011-02-08T09:25:56.997 回答
12

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

ImageView上放置一个LinearLayout并将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(完全不透明)之间改变LinearLayoutandroid:background属性。

于 2012-02-06T19:24:35.240 回答
8

现在有一个 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(不透明)。

于 2013-08-05T18:59:49.407 回答
6

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

setImageAlpha(int)改用

于 2018-08-23T08:25:43.503 回答
4

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

于 2016-09-16T14:47:47.920 回答
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);
于 2013-07-30T19:28:26.553 回答
0

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

于 2011-02-19T00:47:11.353 回答
0

要降低 XML Android 中任何内容的不透明度,请使用 Attribute Alpha。例子:

android:alpha="0.6"

您必须输入介于 0.0 到 1.0 之间的值,以磅为单位。

于 2021-09-06T05:51:58.623 回答