Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android圖像編輯和處理(一)

android圖像編輯和處理(一)

編輯:關於Android編程

1.使用內置Gallery應用程序選擇圖像:

 


package com.example.testphotoedit;

import java.io.FileNotFoundException;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener {

	private ImageView chosenImageView,copyPicture;
	private Button choosePicture;
	private Uri imageFileUri;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.fragment_main);
		choosePicture = (Button) findViewById(R.id.button_chose);
		chosenImageView = (ImageView) findViewById(R.id.chose_picture);
		copyPicture=(ImageView) findViewById(R.id.copy_picture);
		choosePicture.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		if (v.getId() == R.id.button_chose) {
			Intent chooseIntent = new Intent(
					Intent.ACTION_PICK,
					android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//啟動Gallery應用程序
			startActivityForResult(chooseIntent, 0);
		}
	}


	/* (non-Javadoc)
	 * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
	 * 
	 * 在返回的意圖數據中,返回選擇的圖像的URI
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode == RESULT_OK) {
			imageFileUri = data.getData();

			Display currentDisply = getWindowManager().getDefaultDisplay();
			int dw = currentDisply.getWidth() / 2 - 100;
			int dh = currentDisply.getHeight() / 2 - 100;
			try {

 

				BitmapFactory.Options bmpFactory = new BitmapFactory.Options();
				bmpFactory.inJustDecodeBounds = true;//加載圖像的尺寸而非圖像本身
				Bitmap bmp = BitmapFactory.decodeStream(getContentResolver()
						.openInputStream(imageFileUri), null, bmpFactory);

				int heightRatio = (int) Math.ceil(bmpFactory.outHeight
						/ (float) dh);
				int widthRatio = (int) Math.ceil(bmpFactory.outWidth
						/ (float) dw);

				if (heightRatio > 1 && widthRatio > 1) {
					if (heightRatio > widthRatio) {
						bmpFactory.inSampleSize = heightRatio;
					} else {
						bmpFactory.inSampleSize = widthRatio;
					}
				}

				bmpFactory.inJustDecodeBounds = false;//加載真實的圖像
				bmp = BitmapFactory.decodeStream(getContentResolver()
						.openInputStream(imageFileUri), null, bmpFactory);
				chosenImageView.setImageBitmap(bmp);

			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
	}
}

 

 

2.在位圖上繪制位圖

 

Bitmap alteredBitmap = Bitmap.createBitmap(bmp.getWidth(),bmp.getWidth(), bmp.getConfig());
Canvas canvas=new Canvas(alteredBitmap);
Paint  paint=new Paint();
canvas.drawBitmap(bmp, 0,0, paint);
copyPicture.setImageBitmap(alteredBitmap);

注:有什麼不懂的可以留言。。


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved