gpt4 book ai didi

android - ImageView.setImageBitmap 为空白

转载 作者:行者123 更新时间:2023-11-30 03:29:39 27 4
gpt4 key购买 nike

我使用 MediaStore 拍了一张照片并保存了它。我可以在我的图库中看到图像。但是,当我尝试将图像位图设置到我的 ImageView 时,它变成空白。

String abspath;

public void getPicture(View view) {

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imageFile = new File(PATH + "/image.jpg");
abspath = imageFile.getAbsolutePath().toString();

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse(abspath)))

startActivityForResult(cameraIntent, RESULT_CAMERA);
}
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
setContentView(R.layout.activity);

if(requestCode == RESULT_CAMERA) {
// open the image file
Bitmap bitmap = BitmapFactory.decodeFile(abspath);
ImageView imageView = (ImageView)findViewById(R.id.imageView);

imageView.setImageBitmap(bitmap); //imageView is now blank, although my saved image is not a blank image
//imageView.setImageURI(Uri.fromFile(new File(abspath))); same result

}

最佳答案

我不知道,但在 API 版本 17 中作为 onActivityResult() 的一部分从相机获取图像时有一些变化。您正在尝试使用 imagePath 获取图像。但实际上相机并没有按名字存储它。它使用自己的机制来存储图像。你可以进入画廊看到。图片名称将与您提供的名称不同。作为建议 最好使用 ContentResolver 来查询上次捕获的图像。您可以根据需要修改查询。下面只是一个例子。

 protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PIC_CAMERA_IMAGE && resultCode == RESULT_OK) {

Uri selectedImage=null;
// Works on API 16 or Below
if(null!=data)
{
selectedImage = data.getData();
}
// For API 17
if(null==selectedImage)
{
final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");
if ( c1.moveToFirst() ) {
String uristringpic = "content://media/external/images/media/" +c1.getInt(0);
selectedImage = Uri.parse(uristringpic);
}
c1.close();

}


}

}

关于android - ImageView.setImageBitmap 为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com