2012-12-11 2 views
7

У меня есть фоновое изображение, установленное на ImageView. Теперь я хочу изменить непрозрачность изображения, потому что для этого я пишу этот код, чтобы изменить непрозрачность ImageView, но когда я делаю это, он удаляет фоновое изображение с изображения Итак, мой вопрос заключается в том, как изменить прозрачность ImageView без удаления фонового изображения.Как изменить непрозрачность изображения.

Код я использовал это:

ImageView imageView = (ImageView) findViewById(R.id.image_view); 

imageView.setBackgroundResource(R.drawable.theme1_page_header); // Set background image 

int opacity = 100; // from 0 to 255 
imageView.setBackgroundColor(opacity * 0x1000000); // change opacity of image 

ответ

4

Вы можете использовать

imageView.setAlpha(yourValue); // some value 0-255 where 0 is fully transparent and 255 is fully opaque 

См documentation

3
ImageView imageView = (ImageView) findViewById(R.id.image_view); 
Drawable dPage_header= getResources().getDrawable(R.drawable.theme1_page_header); 

// setting the opacity (alpha) 
dPage_header.setAlpha(10); 

// setting the images on the ImageViews 
imageView.setImageDrawable(dPage_header); 
+0

Но это не ваш первый вопрос. Вы можете сделать это, проверив свой процент работы. вы можете создать метод, который возвращает complatedWorkPercentage() и присваивает эту ценность dPage_header.setAlpha (complatedWorkPercentage()); – Talha

+0

Я не знаю, что это за работа? Не могли бы вы выслать мне подробное письмо на [email protected] – Talha

+0

. Я пришлю вам письмо по электронной почте .... вы можете проверить его на почтовом ящике ur – Rahul

0

Вариант 1

Использовать imageView.setAlpha(100).

Если вы используете Android 2.3, вам нужно сделать ужасный взлом с анимацией нулевой длины, используя 9-мерные дроиды.

Вариант 2

Подкласс ImageView и переопределить его метод onDraw() рисовать изображение прозрачно.

Вариант 3

На самом деле изменить пикселей изображения с помощью get/setPixel(). Это будет очень медленным, хотя; вероятно, существует более быстрый способ сделать это (например, используя renderscript).

22

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

0 = прозрачными и 1 = видимый

так 0.5 полпути видны

в XML вы можете сделать

<ImageView 
     android:layout_width="30dp" 
     android:layout_height="35dp" 
     android:id="@+id/imageView" 
     android:alpha="0.4" // <----------------- this is the fun part 
     android:layout_alignParentRight="false" 
     android:background="@drawable/imagename" 
     android:layout_alignParentLeft="false" 
     android:layout_alignParentTop="false" 
     android:layout_alignWithParentIfMissing="false" 
     android:layout_marginLeft="100dp" 
     android:layout_alignParentBottom="false" 
     android:layout_alignParentStart="false" 
     android:layout_alignTop="@+id/bar" 
     android:layout_marginTop="30dp"/> 
1

Используйте эту опцию в макете xml для непрозрачности, а также для переключения значков Android Material от черного до серого. android: alpha = 0,5

1

Для Api> = 16. Используйте setImageAlpha как свою практику, потому что setAlpha будет устаревать в будущем. `

ImageView.setAlpha(int) был renamed к ImageView.setImageAlpha(int), чтобы избежать путаницы. См. Detail Explanation here

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