Android и настройка альфа для (изображения) вида альфа

На самом деле нет атрибута XML для setAlpha(int)?

Если нет, какие существуют альтернативы?

Ответ 1

Нет, нет, посмотрите, как раздел "Связанные XML-атрибуты" отсутствует в документации ImageView.setAlpha(int). Альтернативой является использование View.setAlpha(float), XML-аналог android:alpha. Он принимает диапазон от 0.0 до 1.0 вместо 0 до 255. Используйте его, например. как

<ImageView android:alpha="0.4">

Однако последний доступен только с уровня API 11.

Ответ 2

Это проще, чем другой ответ. Существует значение xml alpha, которое принимает двойные значения.

android:alpha="0.0" thats invisible

android:alpha="0.5" сквозной

android:alpha="1.0" полная видимость

Как это работает.

Ответ 3

Я не уверен в XML, но вы можете сделать это с помощью кода следующим образом.

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

В pre-API 11:

  • диапазон от 0 до 255 (включительно), 0 - прозрачный, а 255 - непрозрачный.

В API 11 +:

  • диапазон от 0f до 1f (включительно), 0f прозрачный и 1f непрозрачный.

Ответ 4

Возможно, полезная альтернатива для фона обычного цвета:

Поместите 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>

Измените атрибут android: background LinearLayout между # 00000000 (полностью прозрачным) и # FF000000 (полностью непрозрачным).

Ответ 5

В настоящее время существует альтернатива XML:

        <ImageView
        android:id="@+id/example"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/example"
        android:alpha="0.7" />

Это: андроид: альфа = "0,7"

Значение от 0 (прозрачное) до 1 (непрозрачное).

Ответ 6

используйте android: alpha = 0.5, чтобы достичь непрозрачности 50% и превратить значки Android Material из черного в серый.

Ответ 7

Используйте эту форму для древней версии 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);