强烈的文字我试图从图库加载图片并在图片视图中显示,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>
答案 0 :(得分:1)
jpg太大而无法在ImageView中显示。由于内存不足,BitmapFactory无法为它们创建位图。亲眼看看chosenImage
变为空。
加载时重新缩放位图。
尝试使用小.jpg来查看尺寸是否重要。