2015-11-13 2 views
1

У меня есть три ImageViews, как и левая фотография внизу. Я хочу установить там альфа. enter image description hereКак установить Android ImageView alpha так?

Но ... я установил iv.setAlpha() или iv.setImageAlpha() приведет, как это ... enter image description here

Что я могу сделать?

+1

Использование 'setImageAlpha () ', попробуйте также установить фон' ImageView 'в сплошной белый. То есть, iv.setBackgroundColor (Color.WHITE); '. –

ответ

1

Вам не нужно устанавливать альфа-значение этих изображений. Вы можете просто поставить View над этим ImageViews и установить его фон, чтобы цвет, как это: # 33ffffff

EDIT:
Если вы хотите изменить только три imageviews (исключите весь фон), вы можете использовать это на каждом ImageView:

imageView.setColorFilter(Color.parse("#33ffffff")); 
+0

Если у него черный фон, то фон также будет иметь эту непрозрачность. Но если он применяет «маску» только к каждому «ImageView», это не происходит. – luiscosta

+0

@luiscosta Вы правы, но используете ресурс изображения, поскольку фон изображения является обычно не очень подходящим. Например, ширина и высота ресурса не подходят для размера изображения и у него есть атрибут scaleType в xml-файле. – hanswim

+0

Вы правы, использование его на «фоне» не очень хорошо, но оно работает, если ему не нужно масштабировать изображения. Кроме того, см. Мой EDIT для другого подхода. – luiscosta

1

Я вижу, вы не хотите, чтобы alpha но вы хотите mask. A white mask, если быть точным.

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

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/your_picture" 
    android:src="#55FFFFFF" /> 

В этом случае я использовал изображение, я хотел как background и я применил white mask в src.

EDIT

Другой подход это применение alpha вы хотите каждого ваших ImageView с, имея каждый внутри LinearLayout как это:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#FFFFFF" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/your_picture" /> 

</LinearLayout> 
+0

Очень приятно! Мне нравится это. –

+1

или просто 'android: src =" @ drawable/your_picture "' 'android: background =" # fff "' и вызывать 'setImageAlpha' с альфой, которую вы хотите – pskink

+0

@pskink Я не тестировал этот подход. Я не могу сказать, влияет ли 'alpha' на« фон »в каком-то API или нет, но если вы так говорите. – luiscosta

Смежные вопросы