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


действительно ли нет аналога атрибута XML для setAlpha(int)?

если нет, то какие альтернативы есть?

9 98

9 ответов:

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

<ImageView android:alpha="0.4">

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

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

android:alpha="0.0" то невидимым

android:alpha="0.5" прозрачный

android:alpha="1.0" полный видна

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

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

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

в pre-API 11:

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

в API 11+:

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

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

поставить 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: фон на LinearLayout между #00000000 (полностью прозрачный) и #FF000000 (полностью непрозрачный).

теперь есть альтернатива 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 (непрозрачный).

используйте android: alpha=0.5 для достижения непрозрачности 50% и превращения значков материалов Android из черных в серые.

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

Альфа может быть установлена вместе с цветом, используя следующий шестнадцатеричный формат #ARGB или #AARRGGBB. См.http://developer.android.com/guide/topics/resources/color-list-resource.html

setAlpha(int) устарело с API 16:Android 4.1

пожалуйста, используйте setImageAlpha(int) вместо