2012-12-11 14 views
7

Mam obraz tła ustawiony na ImageView, Teraz chcę zmienić krycie obrazu bez, ponieważ to piszę ten kod, aby zmienić krycie ImageView, ale kiedy to zrobię to usunąć obraz tła z obrazu view, więc moje pytanie brzmi: jak mogę zmienić przezroczystość ImageView bez usuwania obrazu tła z niego.Jak zmienić przezroczystość obrazu.

kod użyłem to:

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 

Odpowiedz

4

Można użyć

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

patrz opcja 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

Ale nie chodzi o twoje pierwsze pytanie. Możesz to zrobić, sprawdzając procent pracy. możesz utworzyć metodę, która zwraca skompilowanyWorkPercentage() i nadaje tę wartość dPage_header.setAlpha (complatedWorkPercentage()); – Talha

+0

Nie wiem, co to jest praca? Czy mógłbyś wysłać mi szczegółową wiadomość e-mail na adres [email protected] – Talha

+0

Wysyłam wiadomość e-mail .... możesz ją sprawdzić na ur mail – Rahul

0

Użyj imageView.setAlpha(100).

Jeśli używasz Androida 2.3, musisz zrobić okropny hak przy pomocy animacji o zerowej długości używając dziewięcioliwek.

Wariant 2

podklasa ImageView i zastąpić jego onDraw() sposób wyciągnąć obraz przejrzysty.

Wariant 3

Faktycznie modyfikować pikseli obrazu przy użyciu get/setPixel(). Będzie to jednak bardzo powolne; prawdopodobnie jest to szybszy sposób (np. użycie funkcji renderowania).

22

najważniejszą częścią alfa jest to, że wartość musi być dziesiętną

0 = przezroczysty i 1 = widoczna

więc 0,5 jest w połowie drogi widoczny

w formacie XML można zrobić

<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

Użyj tej opcji w layoucie xml dla nieprzezroczystości, a także włącz ikony materiału Android z czarnego na szary. Android: alpha = 0,5

1

Dla Api> = 16. Użyj setImageAlpha jako swojej praktyki, ponieważ setAlpha zostanie wycofany w najbliższej przyszłości. `

ImageView.setAlpha(int) został renamed do ImageView.setImageAlpha(int) aby uniknąć nieporozumień. Zobacz Detail Explanation here

Powiązane problemy