在Android的ActivityResult()上获取图片的实际大小,可以通过以下步骤实现:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
private static final int REQUEST_IMAGE = 1;
private void openGallery() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE && resultCode == RESULT_OK && data != null) {
Uri imageUri = data.getData();
String imagePath = getImagePath(imageUri);
int imageSize = getImageSize(imagePath);
// 在这里可以使用获取到的图片路径和大小进行后续操作
}
}
private String getImagePath(Uri uri) {
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String imagePath = cursor.getString(columnIndex);
cursor.close();
return imagePath;
}
return null;
}
private int getImageSize(String imagePath) {
if (imagePath != null) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imagePath, options);
return options.outWidth * options.outHeight;
}
return 0;
}
openGallery()
方法用于打开图库应用,你也可以根据需要修改为打开相机应用。onActivityResult()
方法用于处理返回的结果,获取选中的图片的Uri,并通过getImagePath()
方法获取图片的实际路径。然后,通过getImageSize()
方法获取图片的实际大小,以像素为单位。请注意,以上代码仅涉及获取图片的实际大小,如果需要进行其他操作,例如压缩、裁剪等,你可以根据具体需求进行相应的处理。
领取专属 10元无门槛券
手把手带您无忧上云