入门android开发--实例--提取部分图片

来自《疯狂android讲义》
效果图:咦,胸呢
入门android开发--实例--提取部分图片_第1张图片

主要代码:

    final ImageView imageView1=(ImageView)findViewById(R.id.setAlphaLow);
    final ImageView imageView2=(ImageView)findViewById(R.id.theTruePart);
     //setAlpha过时了。。先setImageAlpha代替一下。
        if(imageView1!=null){//不加判断,会有很奇怪的空指针警告,AS2.0之后有的
            imageView1.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    BitmapDrawable bitmapDrawable=(BitmapDrawable)imageView1.getDrawable();
                    //获取imageView1中的位图
                    Bitmap bitmap=bitmapDrawable.getBitmap();
                    //bitmap图片实际大小与第一个ImageView的缩放比例
                    double scale=1.0*bitmap.getHeight()/imageView1.getHeight();
                    //获取需要显示的图片的开始点
                    int x=(int)(event.getX()*scale);
                    int y=(int)(event.getY()*scale);
                    if(x+480>bitmap.getWidth()) {
                        x = bitmap.getWidth() - 480;
                    }
                    if(y+480>bitmap.getHeight()){
                        y=bitmap.getHeight()-480;
                    }
                    if(imageView2!=null) {
                        if (Build.VERSION.SDK_INT > 16) {
                            imageView1.setImageAlpha(155);
                        }
                        imageView2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 480, 480));
                    }
                        return false;
                }
            });
    }

xml

<ImageView
    android:id="@+id/setAlphaLow"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/bg"
    android:alpha="255"/>
<ImageView
    android:id="@+id/theTruePart"
    android:layout_centerInParent="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

你可能感兴趣的:(入门android开发--实例--提取部分图片)