【问题标题】:sd card photos not displayed when picking them from Image gallery , Android studio,从图片库、Android 工作室、
【发布时间】:2018-04-23 19:32:16
【问题描述】:

我正在使用此代码从图库中选择图像并将其显示在 imageView 中,这个问题仅适用于内部存储中的照片,并且当我从我的 sd 卡中选择图像时它没有显示在我的 imageView 中

希望你有解决办法。

public class MainActivity extends AppCompatActivity {
ImageView img ;
Button btn ;
Uri imageUri ;
private static final int PICK_IMAGE = 1 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    img = findViewById(R.id.imageView) ;
    btn = findViewById(R.id.button) ;
    btn.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            openGallery() ;
        }
    });
}
public void openGallery(){
    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) ;
    startActivityForResult(intent,PICK_IMAGE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK &&  requestCode==PICK_IMAGE && data != null){
        imageUri = data.getData() ;


        img.setImageURI(imageUri);
    }else{
        Toast.makeText(this," you haven't selected",Toast.LENGTH_LONG).show();
    }
}

}

我在清单文件中使用这些权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

【问题讨论】:

  • 比较图片的分辨率。报告。

标签: android image-gallery android-external-storage


【解决方案1】:

我问了我会回答,问题是我的大部分sd卡照片都是2.0 MB或更大,它们不能被imageView直接处理所以我在onActivityResult()中添加了一些行

public class MainActivity extends AppCompatActivity {
ImageView img ;
Button btn ;
Uri imageUri ;
private static final int PICK_IMAGE = 1 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       img = findViewById(R.id.imageView) ;
       btn = findViewById(R.id.button) ;
       btn.setOnClickListener(new View.OnClickListener(){

@Override
public void onClick(View v) {
        openGallery() ;
    }
});
}
public void openGallery(){
        Intent intent = new Intent(Intent.ACTION_PICK, 
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI) ;
        startActivityForResult(intent,PICK_IMAGE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent 
 data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK &&  requestCode==PICK_IMAGE && data != null){
    imageUri = data.getData() ;
    Bitmap bitmap  ;
     try {
       bitmap=MediaStore.Images.Media
                   .getBitmap(this.getContentResolver(),imgUri);
       Bitmap mBitmap = Bitmap.createScaledBitmap(bitmap, 160, 160, true);
       img.setImageBitmap(mBitmap);
     } catch (IOException e) {
            e.printStackTrace();
        }


}else{
    Toast.makeText(this," you haven't selected",Toast.LENGTH_LONG).show();
}
}

希望对遇到同样问题的人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    相关资源
    最近更新 更多