Android拍照,剪切,并放入SD卡
android拍照之后,先對圖片進行一次剪切,最后將圖片保存到指定的目錄。在項目需要用戶拍照,并對圖片進行剪切后,發送到服務器端做驗證。這里貼出來一個小例子,能夠實現基本的功能。文章最后會給出來demo。界面上就是一個點擊事件。
1.首先點擊事件中啟動拍照,這里寫死了圖片的名稱。實際上可以通過在公用的類中定義一個靜態變量來操作。
public void tackPhoto() {
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
try {
File filePath = Environment.getExternalStorageDirectory();
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File f = new File(filePath, "test.jpg");
Uri u = Uri.fromFile(f);
intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
intent.putExtra(MediaStore.EXTRA_OUTPUT, u);
startActivityForResult(intent, FLAG_CHOOSE_PHONE);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
}2.在onActivityResult方法中獲得值
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
File filePath = Environment.getExternalStorageDirectory();
File f = new File(filePath, "test.jpg");
if (requestCode == FLAG_CHOOSE_PHONE) {
Toast. makeText( this, "FLAG_CHOOSE_PHONE", Toast.LENGTH_SHORT )
.show();
String path = f.getAbsolutePath();
Intent intent = new Intent();
intent.setAction( "com.android.camera.action.CROP" );
intent.setDataAndType(Uri. fromFile( newFile(path)), "image/*" );// mUri是已經選擇的圖片 Uri
intent.putExtra( "crop", "true");
intent.putExtra( "aspectX", 3); // 裁剪框比例
intent.putExtra( "aspectY", 3);
intent.putExtra( "outputX", 150); // 輸出圖片大小
intent.putExtra( "outputY", 150);
intent.putExtra( "return-data", true);
startActivityForResult(intent,FLAG_CROP_PHONE);
} else if (requestCode == FLAG_CROP_PHONE) {
Bitmap bmap = data.getParcelableExtra( "data");
if (bmap != null) {
try {
bmap.compress(Bitmap.CompressFormat. JPEG, 0,
newFileOutputStream(f));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
}3.最后要添加一些權限
< uses-permission android:name = "android.permission.CAMERA" /> <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />下載地址: http://www.oschina.net/action/code/download?code=44069&id=61639
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!