Как я могу сделать изображение прозрачным на Android? - PullRequest
52 голосов
/ 22 февраля 2011

Я использую линейное расположение и расположение кадра.В линейном макете я сохраняю изображение в качестве фона, а в макете кадра я сохраняю imageView.В этом imageView я даю изображение.

Теперь я хочу сделать второе изображение (то есть в imageView) прозрачным.Как я могу это сделать?

Ответы [ 12 ]

120 голосов
/ 22 февраля 2011

Попробуйте:

ImageView myImage = (ImageView) findViewById(R.id.myImage);
myImage.setAlpha(127); //value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.

Примечание : setAlpha(int) устарело в пользу setAlpha(float), где 0 полностью прозрачен, а 1 полностью непрозрачен.Используйте это как: myImage.setAlpha(0.5f)

81 голосов
/ 16 апреля 2013

android:alpha делает это в XML:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/blah"
    android:alpha=".75"/>
5 голосов
/ 22 февраля 2011

Установите атрибут id в ImageView:

<ImageView android:id="@+id/myImage"

В вашем коде, где вы хотите скрыть изображение, вам понадобится следующий код.

Сначала вынужна ссылка на ImageView:

ImageView myImage = (ImageView) findViewById(R.id.myImage);

Затем установите Visibility в GONE:

myImage.setVisibility(View.GONE);

Если вы хотите иметь код в другом месте, который снова делает его видимым, просто установите его в Visibleтак же:

myImage.setVisibility(View.VISIBLE);

Если вы имеете в виду «полностью прозрачный», приведенный выше код работает.Если вы имеете в виду «частично прозрачный», используйте следующий метод:

int alphaAmount = 128; // Some value 0-255 where 0 is fully transparent and 255 is fully opaque
myImage.setAlpha(alphaAmount);
4 голосов
/ 27 мая 2014

В более новых версиях Android (по крайней мере, после Android 4.2 (Jelly Bean)) метод setAlpha (int value) не рекомендуется.Вместо этого используйте метод setAlpha(float value), который принимает значения от 0 до 1, где 0 - полная прозрачность, а 1 - нет прозрачности.

4 голосов
/ 01 июля 2011

Если вы находитесь в файле XML, используйте следующее, чтобы сделать ваше изображение прозрачным!

 android:background="@null" 
1 голос
/ 06 марта 2017

В XML используйте:

android:background="@android:color/transparent"
1 голос
/ 15 апреля 2016

Метод setAlpha(int) из типа ImageView устарел.

Вместо

image.setImageAlpha(127);
//value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.
1 голос
/ 06 марта 2016

Установить прозрачность с помощью setAlpha(float alpha).Приведенный ниже код работает для меня, где я использовал альфа-значение в float, 0 - 1.

  • 0: полный прозрачный
  • 0,5 - 50%: прозрачный
  • 1: полная непрозрачность

    ImageView imageView = (ImageView) itemView.findViewById (R.id.imageView);imageView.setImageResource (mResources [положение]);imageView.setAlpha (.80f);

0 голосов
/ 05 марта 2019

Поскольку setAlpha int устарела, setImageAlpha (int) может использоваться

ImageView img = (ImageView) findViewById(R.id.img_image);
img.setImageAlpha(127); //value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.
0 голосов
/ 04 января 2019

Изображение альфа устанавливает непрозрачность ImageView, что делает изображение размытым, попробуйте добавить атрибут оттенка в ImageView

 android:tint="#66000000"

Это также можно сделать программно:

imageView.setColorFilter(R.color.transparent);

там, где вам нужноопределить прозрачный цвет в ваших colors.xml

<color name="transparent">#66000000</color>
...