張慧的博客

          張慧的博客

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            45 Posts :: 0 Stories :: 24 Comments :: 0 Trackbacks

          經(jīng)常用到多個(gè)透明圖片層疊,但又需要獲取不同圖片的點(diǎn)擊事件,本文實(shí)現(xiàn)圖片透明區(qū)域穿透點(diǎn)擊事件。

          效果圖:

           歡迎轉(zhuǎn)載請(qǐng)說(shuō)明轉(zhuǎn)自:http://blog.csdn.net/aminfo/article/details/7872748

          一、先上圖片,這2張圖片尺寸是一樣的,放到drawable目錄下:

          圖1:transparent.png

           

          圖2:transparent2.png

           

          二、上布局文件,test.xml

          <?xml version="1.0" encoding="utf-8"?>
          <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width
          ="fill_parent"
             android:layout_height
          ="fill_parent"
             android:orientation
          ="vertical"
             android:gravity
          ="center"
             android:id
          ="@+id/mainLayout">
             
              <ImageView android:id="@+id/ImageView01"
                  android:layout_width
          ="wrap_content"
                  android:layout_height
          ="wrap_content"
                  android:src
          ="@drawable/transparent"/>
              
              <ImageView android:id="@+id/ImageView02"
                  android:layout_width
          ="wrap_content"
                  android:layout_height
          ="wrap_content"
                  android:src
          ="@drawable/transparent2"/>    
                    
          </FrameLayout>

          package org.shuxiang.test;

          import android.app.Activity;
          import android.graphics.Bitmap;
          import android.graphics.drawable.BitmapDrawable;
          import android.os.Bundle;
          import android.util.Log;
          import android.view.MotionEvent;
          import android.view.View;
          import android.view.Window;
          import android.view.View.OnClickListener;
          import android.view.View.OnTouchListener;
          import android.widget.ImageView;

          public class MainActivity extends Activity
          {
              private ImageView iv1;
              private ImageView iv2;
              private Bitmap bitmap1, bitmap2;
              private boolean iv1Transparent = false;
              private boolean iv2Transparent = false;

              @Override
              public void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  requestWindowFeature(Window.FEATURE_NO_TITLE);
                  setContentView(R.layout.test);

                  iv1 = (ImageView) findViewById(R.id.ImageView01);
                  iv2 = (ImageView) findViewById(R.id.ImageView02);
                  bitmap1 = ((BitmapDrawable) (iv1.getDrawable())).getBitmap();
                  bitmap2 = ((BitmapDrawable) (iv2.getDrawable())).getBitmap();
                  
                  iv1.setOnClickListener(new OnClickListener(){
                      @Override
                      public void onClick(View v) {
                          // TODO Auto-generated method stub
                          if(iv1Transparent)
                          {
                              Log.i("test", "圖1透明區(qū)域");
                          }
                          else
                          {
                              Log.i("test", "圖1點(diǎn)擊");                    
                          }
                      }
                      
                  });
                  
                  iv1.setOnTouchListener(new OnTouchListener()
                  {
                      @Override
                      public boolean onTouch(View arg0, MotionEvent arg1) 
                      {
                          // TODO Auto-generated method stub
                          if(bitmap1.getPixel((int)(arg1.getX()),((int)arg1.getY()))==0)
                          {
                              Log.i("test", "圖1透明區(qū)域");
                              iv1Transparent = true;    //透明區(qū)域設(shè)置true                    
                          }
                          else
                          {
                              Log.i("test", "圖1實(shí)體區(qū)域");
                              iv1Transparent = false;
                          }
                          return false;
                      }            
                  });
                  
                  iv2.setOnClickListener(new OnClickListener()
                  {
                      @Override
                      public void onClick(View v) {
                          // TODO Auto-generated method stub
                          if(iv2Transparent)
                          {
                              Log.i("test", "圖2透明區(qū)域");
                          }
                          else
                          {
                              Log.i("test", "圖2點(diǎn)擊");                    
                          }
                      }
                      
                  });
                  
                  iv2.setOnTouchListener(new OnTouchListener()
                  {
                      @Override
                      public boolean onTouch(View v, MotionEvent event) {
                          // TODO Auto-generated method stub
                          if(bitmap2.getPixel((int)(event.getX()),((int)event.getY()))==0)
                          {
                              Log.i("test", "圖2透明區(qū)域");
                              iv2Transparent = true;    //透明區(qū)域設(shè)置true
                              iv1.dispatchTouchEvent(event);
                          }
                          else
                          {
                              Log.i("test", "圖2實(shí)體區(qū)域");
                              iv2Transparent = false;
                          }
                          return false;
                      }
                  });
              }
          }


          posted on 2012-08-16 22:28 張慧 閱讀(3382) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 永济市| 张家港市| 宜宾市| 峡江县| 昔阳县| 特克斯县| 衢州市| 思南县| 噶尔县| 辉南县| 石渠县| 基隆市| 吉安市| 徐州市| 陇西县| 承德市| 苗栗市| 双峰县| 荔浦县| 砀山县| 香港| 微博| 元阳县| 招远市| 新沂市| 临潭县| 平乐县| 和平区| 洪雅县| 富蕴县| 南通市| 老河口市| 额敏县| 尉氏县| 盐边县| 元江| 池州市| 永德县| 甘肃省| 临沧市| 琼结县|