我希望可以从我的手机图库中上传图片到我的应用程序中。在我的应用程序中有一个名为“上传”的按钮。当我点击这个按钮时,它应该跳转到图库中,如果我选择了一张图片,那么这张图片就会在应用程序中显示为缩略图。我想要从图库中上传10张图片到我的应用程序中。
我希望可以从我的手机图库中上传图片到我的应用程序中。在我的应用程序中有一个名为“上传”的按钮。当我点击这个按钮时,它应该跳转到图库中,如果我选择了一张图片,那么这张图片就会在应用程序中显示为缩略图。我想要从图库中上传10张图片到我的应用程序中。
点击图库按钮后,按以下方式开始startActivityForResult:
startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), GET_FROM_GALLERY);
因此,在onActivityResult中检测GET_FROM_GALLERY(它是一个静态整数,您可以选择任何请求编号,例如public static final int GET_FROM_GALLERY = 3;
)。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Detects request codes
if(requestCode==GET_FROM_GALLERY && resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
Bitmap bitmap = null;
try {
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
查看画廊:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),REQUEST_CODE);
并在您的应用程序中使用它:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
switch (requestCode) {
case REQUEST_CODE:
if (resultCode == Activity.RESULT_OK) {
//data gives you the image uri. Try to convert that to bitmap
break;
} else if (resultCode == Activity.RESULT_CANCELED) {
Log.e(TAG, "Selecting picture cancelled");
}
break;
}
} catch (Exception e) {
Log.e(TAG, "Exception in onActivityResult : " + e.getMessage());
}
}
这是正确的方法:
startActivityForResult(
new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
),
GET_FROM_GALLERY
);
startActivityForResult
已经被弃用。这里有一种替代方法来实现此功能链接(向下滚动)。效果非常好。 - Clay