Действительно ли нет никакого XML-атрибута, аналогичного setAlpha(int)?
setAlpha(int)
Если нет, какие альтернативы есть?
Это проще, чем другой ответ. Существует значение xml alpha, которое принимает двойные значения.
alpha
android:alpha="0.0" тот невидим
android:alpha="0.0"
android:alpha="0.5" сквозной
android:alpha="0.5"
android:alpha="1.0" полностью видимый
android:alpha="1.0"
Вот как это работает.
Нет, нет, посмотрите, как раздел "Связанные атрибуты XML" отсутствует в документации ImageView.setAlpha (int) .Альтернативой является использование View.setAlpha (float) , чей XML-аналог равен android:alpha.Он принимает диапазон от 0,0 до 1,0 вместо 0 до 255. Используйте его, например, как
android:alpha
<ImageView android:alpha="0.4">
Однако последний доступен только с уровня API 11.
Я не уверен насчет XML, но вы можете сделать это с помощью кода следующим образом.
ImageView myImageView = new ImageView(this); myImageView.setAlpha(xxx);
В pre-API 11:
В API 11 +:
Может быть полезной альтернативой для однотонного фона:
Поместите 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 (полностью непрозрачный) .
Теперь есть альтернатива 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: альфа = "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);
setAlpha(int) устарело по состоянию на API 16: Android 4.1
16
Android 4.1
Пожалуйста, используйте setImageAlpha(int) вместо
setImageAlpha(int)
Альфа может быть установлена вместе с цветом, используя следующий шестнадцатеричный формат #ARGB или #AARRGGBB. Смотри http://developer.android.com/guide/topics/resources/color-list-resource.html