¸ù¾ÝÉÏÃæµÄ˼·£¬ÎÒÃÇ¿ÉÒÔÔÚ¿ªÊ¼ÅÄÉãǰ»ñÈ¡ImageView¶ÔÏóÖеÄͼÏñ£¬ÔÚ±£´æÊý¾ÝµÄʱºò£¬ÔٴδӸÃImageView¶ÔÏóÖлñȡͼÏñ£¬È»ºó±È½ÏÏȺóËùµÃµ½µÄÏñ¸öͼÏñÊÇ·ñÒ»Ö£¬²¢½øÐнøÒ»²½µÄ´¦Àí¡£
´ÓImageView¶ÔÏóÖлñȡͼÏñµÄ·½·¨ÊÇÊ²Ã´ÄØ£¿
´ÓImageView¶ÔÏóÖлñȡͼÏñµÄ·½·¨£¬¾ÍÊÇImageViewÀàÖеÄgetDrawingCache()·½·¨£¬±ÈÈçÏÂÃæµÄ´úÂë¾ÍÊÇ´ÓÒ»¸öImageView¶ÔÏóiv_photoÖлñȡͼÏñ£º
Bitmap obmp = Bitmap.createBitmap (iv_photo.getDrawingCache());
µ«ÊÇÐèҪ˵Ã÷µÄÊÇ£º
1. ÔÚµ÷ÓÃgetDrawingCache()·½·¨´ÓImageView¶ÔÏó»ñȡͼÏñ֮ǰ£¬Ò»¶¨Òªµ÷ÓÃsetDrawingCacheEnabled(true)·½·¨£º
iv_photo.setDrawingCacheEnabled(true);
·ñÔò£¬ÎÞ·¨´ÓImageView¶ÔÏóiv_photoÖлñȡͼÏñ£»
2. ÔÚµ÷ÓÃgetDrawingCache()·½·¨´ÓImageView¶ÔÏó»ñȡͼÏñÖ®ºó£¬Ò»¶¨Òªµ÷ÓÃsetDrawingCacheEnabled(false)·½·¨£º
iv_photo.setDrawingCacheEnabled(false);
ÒÔÇå¿Õ»Í¼»º³åÇø£¬·ñÔò£¬ÏÂÒ»´Î´ÓImageView¶ÔÏóiv_photoÖлñÈ¡µÄͼÏñ£¬»¹ÊÇÔÀ´µÄͼÏñ¡£
ÏÂÃæ£¬ÎÒÃǾÍÓÃʵ¼ÊµÄÀý×ÓÀ´¸øÓè˵Ã÷¡£
1. Ê×ÏÈ´´½¨Ò»¸öAndroid Project£¬²¢Öƶ¨Éú³ÉÒ»¸öActivity£¬È¡ÃûΪCompare2Images
2. ½«Í¼Æ¬androidlogo.pngºÍxiaocheng.pngÍÏÈëres/drawable-mdpiÎļþ¼ÐÖУ¬ËüÃÇ·Ö±ðÊÇ£º
3. ÐÞ¸Ämain.xml£¬Ê¹Ö®ÈçÏÂ
< xml version="1.0" encoding="utf-8" >
"http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
"@+id/iv_photo"
android:layout_width="96dip"
android:layout_height="96dip"
android:src="@drawable/androidlogo"
/>
"@+id/btn_photo"
android:layout_width="93dip"
android:layout_height="40dip"
android:textSize="16dip"
android:text="OK"
/>
²»ÄÑ¿´³ö£¬ÔÚmain.xmlÖÐÓÐÒ»¸öImageView¶ÔÏ󣬸öÔÏóÖÐÏÔʾµÄͼƬÊÇ@drawable/androidlogo£¬ ÆäÏÂÊÇÒ»¸ö°´Å¥¡£Õâ¸öʵÑéµÄÒâͼÊÇ£º
a. µ±touch down ImageView¶ÔÏóʱ£¬Ê×ÏÈ»ñÈ¡ImageViewÖÐÏÔʾµÄͼÏñ£¬È»ºóÆô¶¯ÁíÍâÒ»¸öActivity(ÓÃÀ´Ä£ÄâÕÕÏà»ú³ÌÐò)£¬¸Ãactivity·µ»ØÁíÍâÒ»¸öͼƬ(ÓÃxiaocheng.pngÄ£Äâ)£¬Compare2ImagesÔÚOnActivityResult·½·¨ÖлñÈ¡·µ»ØµÄͼÏñºó£¬½«ÆäÏÔʾÔÚImageView¶ÔÏóiv_photoÖÐ
b. µ±touch down OK°´Å¥btn_photoʱ(ÓÃÀ´Ä£Äâ±£´æÊý¾ÝµÄ¶¯×÷)£¬ÔٴδÓiv_photoÖлñȡͼÏñ£¬È»ºóºÍaÖлñµÃµÄͼÏñ½øÐбȽϣ¬²¢½øÐнøÒ»²½µÄ´¦Àí¡£
4. Compare2ImagesµÄ´úÂëÈçÏ£º
package com.waveline.compare2images;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.os.Bundle;
import android.os.Environment;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ImageView.ScaleType;
public class Compare2Images extends Activity
implements
OnTouchListener
{
private Bitmap obmp;
private ImageView iv_photo;
private Button btn_photo;
@Override
public void onCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main );
iv_photo =(ImageView)findViewById(R.id.iv_photo );
iv_photo.setOnTouchListener(this);
btn_photo = (Button)findViewById(R.id.btn_photo );