package com.example.ws;import java.io.FileNotFoundException;import android.app.Activity;import android.content.ContentResolver;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.net.Uri;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableString;import android.text.style.ImageSpan;import android.util.DisplayMetrics;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class Main extends Activity { private EditText edit; private Button btn; Bitmap bmp; private int displayWidth,displayHeight; private float scaleWidth=1,scaleHeight=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //取得屏幕分辨率 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); displayWidth=dm.widthPixels; displayHeight=dm.heightPixels; System.out.println("displayWidth"+displayWidth); System.out.println("displayHeight"+displayHeight); edit = (EditText) this.findViewById(R.id.edit); btn = (Button) this.findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent picture = new Intent(Intent.ACTION_GET_CONTENT); picture.setType("image/*"); picture.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(Intent.createChooser(picture, "选择图片"), 0); } }); } public void srcrem(Bitmap bmps) { System.out.println("bWidth"+bmps.getWidth()); System.out.println("bHeight"+bmps.getHeight()); Drawable drawable = new BitmapDrawable(bmps); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); String str = "0"; SpannableString spannable = new SpannableString(str); ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); spannable.setSpan(span, 0, 0, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); edit.setText(spannable); //bmp.recycle(); scaleWidth = 1; scaleHeight =1; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); /*if (resultCode == RESULT_OK) { Uri uri = data.getData(); String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, proj, // Which columns to return null, // WHERE clause; which rows to return (all rows) null, // WHERE clause selection arguments (none) null); // Order-by clause (ascending by name) int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String path = cursor.getString(column_index); bmp = BitmapFactory.decodeFile(path); System.out.println("the path is :" + path); //srcrem(bmp); smallMap(bmp); } else { Toast.makeText(Main.this, "请重新选择图片", Toast.LENGTH_SHORT).show(); }*/ if(resultCode == RESULT_OK){ //选择图片 Uri uri = data.getData(); ContentResolver cr = this.getContentResolver(); try { if(bmp != null)//如果不释放的话,不断取图片,将会内存不够 bmp.recycle(); bmp = BitmapFactory.decodeStream(cr.openInputStream(uri)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } //smallMap(bmp); //srcrem(bmp);; zoomBitmap(bmp,200,200); }else{ Toast.makeText(Main.this, "请重新选择图片", Toast.LENGTH_SHORT).show(); } } public void smallMap(Bitmap bmp){ int bWidth = bmp.getWidth(); int bHeight = bmp.getHeight(); System.out.println("yuanWidth"+bWidth); System.out.println("yuanHeight"+bHeight); double scale = 0.1; scaleWidth =(float)(scaleWidth * scale); scaleHeight = (float)(scaleHeight* scale); System.out.println("scaleWidth"+scaleWidth); System.out.println("scaleHeight"+scaleHeight); Matrix matrix = new Matrix(); matrix.postScale(scaleHeight, scaleWidth); Bitmap createMap = Bitmap.createBitmap(bmp, 0, 0, bWidth, bHeight, matrix, true); srcrem(createMap); } public void zoomBitmap(Bitmap bitmap,int w,int h){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); float scaleWidht = ((float)w / width); float scaleHeight = ((float)h / height); matrix.postScale(scaleWidht, scaleHeight); Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); srcrem(newbmp); }}