十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
使用Android怎么從相冊中選取照片?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

(1)直接選擇相冊后返回
第一步就是主要跳轉的相冊
//在這里跳轉到手機系統(tǒng)相冊里面 Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, IMAGE_REQUEST_CODE);
第二步就是返回的時候獲取相冊的路徑
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//在相冊里面選擇好相片之后調回到現(xiàn)在的這個activity中
switch (requestCode) {
case IMAGE_REQUEST_CODE://這里的requestCode是我自己設置的,就是確定返回到那個Activity的標志
if (resultCode == RESULT_OK) {//resultcode是setResult里面設置的code值
try {
Uri selectedImage = data.getData(); //獲取系統(tǒng)返回的照片的Uri
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);//從系統(tǒng)表中查詢指定Uri對應的照片
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
path = cursor.getString(columnIndex); //獲取照片路徑
cursor.close();
Bitmap bitmap = BitmapFactory.decodeFile(path);
iv_photo.setImageBitmap(bitmap);
} catch (Exception e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
break;
}
}(2) 選擇圖片后裁剪先上圖

首先也是要調起相冊
// 使用意圖直接調用手機相冊 Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); // 打開手機相冊,設置請求碼 startActivityForResult(intent, IMAGE_REQUEST_CODE);
然后這里增加了一步就是用戶選擇了相冊之后然后再增加裁剪功能
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
} else {
switch (requestCode) {
case IMAGE_REQUEST_CODE:
resizeImage(data.getData());
break;
case RESIZE_REQUEST_CODE:
if (data != null) {
showResizeImage(data);
}
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
//這里增加裁剪
public void resizeImage(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//裁剪的大小
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
//設置返回碼
startActivityForResult(intent, RESIZE_REQUEST_CODE);
}
private void showResizeImage(Intent data) {
Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
//裁剪之后設置保存圖片的路徑
String path = getFilesDir().getPath() + File.separator + IMAGE_FILE_NAME;
//壓縮圖片
ImageUtils.saveImage(photo, path);
new BitmapDrawable();
Drawable drawable = new BitmapDrawable(photo);
iv_photo.setImageDrawable(drawable);
}
}看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。