0

上下文:我正在创建一个简单的应用程序,用户单击一个按钮,他们从手机中选择一张图片,图像将显示在应用程序中。我通过启动用户选择图像的意图来实现这一点。

问题:用户选择图片时,如果是.jpg文件,则不显示。但是,如果它是 .png 文件,它会按预期工作。

注意:我已验证 Bitmap 结果不为空,并且 logcat 中没有错误或来自 decodefile 方法的任何消息

任何帮助将不胜感激

编码:

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == SELECT_PICTURE)
{
    Uri selectedImageUri = data.getData();
    selectedImagePath = getPath(selectedImageUri);
    Toast.makeText(getApplicationContext(), "path is " + selectedImagePath, Toast.LENGTH_LONG).show();
    ImageView image = (ImageView)findViewById(R.id.selectedImage);

    if (image == null)
        Toast.makeText(getApplicationContext(), "No image to update", Toast.LENGTH_SHORT).show();

    Bitmap result = BitmapFactory.decodeFile(selectedImagePath);

    if (result == null)
        Toast.makeText(getApplicationContext(), "Couldn't upload image because it's null", Toast.LENGTH_LONG).show();

    image.setImageBitmap(result);
}

}

4

2 回答 2

0

您可以尝试使用 InputStream。像这样:

 if (requestCode == SELECT_PICTURE){
    Uri selectedImageUri = data.getData();
    InputStream inputStream;
    try {
        inputStream = getContentResolver().openInputStream(selectedImageUri );
        BufferedInputStream bis = new BufferedInputStream(is);
        Bitmap bitmap = BitmapFactory.decodeStream(bis);            
        ImageView image = (ImageView)findViewById(R.id.selectedImage);
        image.setImageBitmap(bitmap);                       
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }   
}
于 2013-07-03T21:08:58.363 回答
-1

这很奇怪,但我的代码现在可以工作了,但我没有改变任何东西。

于 2013-07-08T18:09:42.390 回答