Androidはどのように写真を撮ったり、写真を選んだりしてカットしますか?


画像を裁断する必要があるとき、例えばアイコンを処理するとき、Androidは便利な方法を提供しています.
コアメソッドは次のとおりです.
/**
	 *      
	 * @param uri
	 * @param outPutX      
	 * @param outputY      
	 * @param requestCode       
	 */
	public void cropImage(Uri uri,int outPutX, int outputY,int requestCode){
		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setDataAndType(uri,"image/*");
		intent.putExtra("crop","true");
		intent.putExtra("aspectX",12);
		intent.putExtra("aspectY",5);
		intent.putExtra("outputX",outPutX);
		intent.putExtra("outputY",outputY);
		intent.putExtra("outputFormat","JPEG");
		intent.putExtra("noFaceDatection",true);
		intent.putExtra("return-data",true);

		startActivityForResult(intent,requestCode);

	}

注意しなければならないのは、aspectX aspectYの2つの値は幅と高さの比で、もしあなたの目標の画像が100*100の2つの値がすべて1であれば、あなたが裁断する時に見た枠は正方形です.
この例のように12:5の割合であれば長方形です.
呼び出し方法:
Uri uri = null;
					if(data != null){
						uri = data.getData();
					}else {
						String fileName = getSharedPreferences("temp",ShopEdit.MODE_MULTI_PROCESS).getString("tempName","");
						uri = Uri.fromFile(new File(DuParm.XxipPATH,fileName));
					}
					cropImage(uri,720,300,CROP_PICTURE);

この例で使用する必要があるのは、次のとおりです.
@Override
	protected void onActivityResult(int requestCode,int resultCode,Intent data){
		super.onActivityResult(requestCode,resultCode,data);
		MyLog.i(TAG,"requestCode=" + requestCode + "; resultCode=" + resultCode);

呼び出し方法はuri=dataである.getData()のdataのソースはこのメソッドを書き換えることです.
本人の具体的な順序は次のとおりです.
1.クリックイベント
2.ポップアップ・ボックス(アルバムまたはカメラを選択)
3.画像を取得した後、パラメータを持って彼のActivityを呼び出し、ActivityではonActivity Resultを使って戻りパラメータを受信する
4.返されたdataに基づいてピクチャを取得し、新しいActivity呼び出しトリミングピクチャの機能を開いてピクチャをトリミングする
5.もう一度onActivity Resultまで実行して今回はカットした画像を返しましたが、
[原句]画像をどう処理するかは、あなた自身のことです.
(完)