Android: nakładanie obrazu (jpg) z przezroczystością

Mam zdjęcie (jpg), które chcę wyświetlić na ekranie. Dodatkowo obraz powinien być częściowo pokryty przezroczystym efektem. Przezroczysta Pokrywa powinna być dynamiczna. Tak więc np. każdego dnia pokazywana jest większa ilość obrazu. Tutaj zdjęcie, aby pokazać, co mam na myśli: Tutaj wpisz opis obrazka

Mam zdjęcie bez szarej okładki i chcę dodać tę okładkę, ale w różnych krokach.

Czy ktoś może mi podpowiedzieć jak to zrobić?

Author: zobi8225, 2011-03-06

2 answers

Możesz to zrobić po prostu za pomocą widżetów:

FrameLayout jest ogólnym mechanizmem nakładania widoku na inny:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<ImageView  
    android:id="@+id/image"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/my_image"/>
<View
    android:id="@+id/overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</FrameLayout>

Następnie w kodzie Javy można dynamicznie ustawić przezroczystość nakładki:

View overlay = (View) findViewById(R.id.overlay);
int opacity = 200; // from 0 to 255
overlay.setBackgroundColor(opacity * 0x1000000); // black with a variable alpha
FrameLayout.LayoutParams params =
    new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 100);
params.gravity = Gravity.BOTTOM;
overlay.setLayoutParams(params);
overlay.invalidate(); // update the view
 19
Author: Matthew Willis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-22 19:55:56

Możesz zrobić coś takiego, gdy płótno pochodzi z onDraw() żądania:

Paint paint = new Paint();
Rect r = new Rect(); 
paint.setColor(0x80808080); // translucent gray 
r.right = iDisplayWidth-1; 
r.left = 0; 
r.top = iDisplayHeight/2; 
r.bottom = iDisplayHeight-1; 
canvas.drawRect(r, paint); // fill with gray
 2
Author: BitBank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-08 14:14:54