Сделайте часть изображения прозрачной на Touch

У меня есть макет со следующим:

Framelayout с двумя ImageViews. каждый 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
    }
Другие вопросы по тегам