張慧的博客

          張慧的博客

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            45 Posts :: 0 Stories :: 24 Comments :: 0 Trackbacks

          經常用到多個透明圖片層疊,但又需要獲取不同圖片的點擊事件,本文實現圖片透明區域穿透點擊事件。

          效果圖:

           歡迎轉載請說明轉自: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透明區域");
                          }
                          else
                          {
                              Log.i("test", "圖1點擊");                    
                          }
                      }
                      
                  });
                  
                  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透明區域");
                              iv1Transparent = true;    //透明區域設置true                    
                          }
                          else
                          {
                              Log.i("test", "圖1實體區域");
                              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透明區域");
                          }
                          else
                          {
                              Log.i("test", "圖2點擊");                    
                          }
                      }
                      
                  });
                  
                  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透明區域");
                              iv2Transparent = true;    //透明區域設置true
                              iv1.dispatchTouchEvent(event);
                          }
                          else
                          {
                              Log.i("test", "圖2實體區域");
                              iv2Transparent = false;
                          }
                          return false;
                      }
                  });
              }
          }


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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 鄂托克旗| 清原| 原阳县| 邢台县| 宁城县| 准格尔旗| 五寨县| 内乡县| 保定市| 平武县| 永泰县| 萨嘎县| 阳泉市| 岢岚县| 博兴县| 合川市| 承德县| 桦甸市| 岳阳县| 大悟县| 上饶县| 隆安县| 甘孜县| 安顺市| 乐陵市| 樟树市| 清河县| 隆安县| 阿克| 增城市| 沛县| 秦安县| 南乐县| 西宁市| 易门县| 法库县| 郧西县| 视频| 射阳县| 老河口市| 方山县|