即時通訊實現從用戶單元庫中獲取圖片的一段代碼,但我希望用戶能夠使用Android默認裁剪UI裁剪圖像,因此我使用的代碼如下:獲取圖像裁剪
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 280);
intent.putExtra("outputY", 280);
intent.putExtra("scale", true);
startActivityForResult(intent , RESULT_CODE_PICK_FROM_LIBRARY);
,並獲得該圖像返回我使用的onActivityResult代碼:
Uri selectedImage = data.getData();
String tempPath = getPath(selectedImage);
Bitmap pickedImage = BitmapFactory.decodeFile(tempPath);
的getPath():
private String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA }; // MediaColumns.DATA // MediaStore.Images.Media.DATA
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(projection[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
return filePath;
} else {
return null;
}
}
但我得到一個空指針異常的線:
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
有沒有人有任何線索呢? 此外,將代碼是拍照,呈現選項來裁剪,然後檢索簡單的圖像的..沒有必要對原始文件..
感謝, 牛頓
感謝您的建議,但本教程將拍攝的照片保存到文件中,並且我不需要這些,我只需要小尺寸的照片即可使用......此外,它還使用無證/私密代碼(com.android。 camera.action.CROP),可能很快就會失去支持,並且不適用於每個設備/ osVersions! –