Сделайте часть изображения прозрачной на Touch
У меня есть макет со следующим:
Framelayout
с двумя ImageView
s. каждый ImageView
имеет одно изображение.
То, что я пытаюсь достичь: это прикосновение к ImageView
, область касания должна стать прозрачной и показывать изображение ниже.
Макет XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/rect" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/i2" />
</FrameLayout>
</LinearLayout>
Так что в основном на связи imageView2
область касания должна показывать изображение от imageView1
,
Мне просто нужны некоторые указатели или ссылки.
2 ответа
Используйте этот код внутри вашего TouchListener
ImageView view1 = (ImageView)findViewById(R.id.imageView1);
view1.setZOrderOnTop(true); // necessary
SurfaceHolder sfhTrackHolder = view1.getHolder();
sfhTrackHolder.setFormat(PixelFormat.TRANSPARENT);
Сначала получите свой местный вариант для img
ImageView myImage2 = (ImageView) findViewById(R.id.imageview2);
Убедитесь, что у вас есть onClickListener на myImage2, а затем:
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.imageview2) {
myImage2.setAlpha((float) 0.55); //value: [0-1]. Where 0 is fully transparent .and 1 is fully opaque
}