在Touch上使图像的一部分透明

时间:2014-08-13 10:19:19

标签: android image-processing android-imageview android-image

我有一个下面的布局:

Framelayout有两个ImageView个。每个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 个答案:

答案 0 :(得分:0)

在TouchListener中使用此代码

ImageView view1 = (ImageView)findViewById(R.id.imageView1);
view1.setZOrderOnTop(true);    // necessary
SurfaceHolder sfhTrackHolder = view1.getHolder();
sfhTrackHolder.setFormat(PixelFormat.TRANSPARENT);

答案 1 :(得分:0)

首先获取img

的本地变量
ImageView myImage2 = (ImageView) findViewById(R.id.imageview2);

确保myImage2上有onClickListener,然后:

 @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
    }