strong text我正在尝试从图库中加载图片并将其显示在 ImageView 中,PNG 图片显示正常,但 JPG 图像根本不显示,我不知道为什么
这是代码:
public void openGa(View view){
//create a ga||ery intent and set the action to pick an object
Intent galleryIntent = new Intent(Intent.ACTION_PICK);
//set the destination of the intent when it opens to pictures
File destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
//get the path as a string to cast to URI
String path = destination.getAbsolutePath();
//cast the path to uri
Uri pathUri = Uri.parse(path);
//set hte information of the intetn destination and types to |ook for
galleryIntent.setDataAndType(pathUri, "image/*");
//start activity for resu|t
startActivityForResult(galleryIntent, REQUEST_PHOTO_GALLERY);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_PHOTO_GALLERY && resultCode == RESULT_OK){
//get the image as uri
Uri imageUri = data.getData();
try {
//creat and input stream and send tp it the uri to be ab|e to access the image
InputStream inputStream = getContentResolver().openInputStream(imageUri);
//decode the image in the input stream into a bitmap
Bitmap chosenImage = BitmapFactory.decodeStream(inputStream);
ImageView i = (ImageView)findViewById(R.id.imageView);
i.setImageBitmap(chosenImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
这是我的 xml
TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dispImage"
android:src="@drawable/phone"
android:onClick="openGa"
android:layout_weight="1" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView" />
</TableRow>
</TableLayout>
最佳答案
jpg 太大,无法在 ImageView 中显示。由于内存不足,BitmapFactory 无法为它们创建位图。亲自看看 chosenImage
变为 null。
加载时重新缩放位图。
尝试使用较小的 .jpg 来查看大小的重要性。
关于android - ImageView 显示 PNG 但不显示 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38308292/