我找到了这段代码并尝试在我的应用程序中实现,它打开了库,让我选择一张照片,然后应用程序停止工作并关闭。
这是我第一次尝试将图像上传到mysql,而且我一开始就陷入困境。
buttonChoose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
showFileChooser();
}
});
private void showFileChooser() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null)
{
Uri filePath = data.getData();
try
{
bitmap = MediaStore.Images.Media.getBitmap(MainActivity.this.getContentResolver(), filePath);
} catch (IOException e) {
e.printStackTrace();
}
imageView.setImageBitmap(bitmap);
}
}
答案 0 :(得分:1)
Uri filePath = data.getData();
对于大多数Uri
值,这将毫无意义。
从ImageView
填充Uri
的最佳解决方案是使用a third-party image loading library,例如Picasso。
如果您坚持自己这样做,则需要分叉后台线程,使用ContentResolver
和openInputStream()
获取InputStream
支持的内容Uri
使用BitmapFactory
和decodeStream()
获取Bitmap
,然后(在主应用程序线程上)使用ImageView
更新Bitmap
。