Если targetAPI вашего приложения 23+ (Android 6.0+), вам следует запросить разрешение на чтение, прежде чем читать файл с SD-карты хранилища.Мой совет, вы можете использовать rxpermission для запроса разрешения.
implementation com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar//for add rxpermissions
implementation io.reactivex.rxjava2:rxjava:2.1.4//for add rxjava
// вам нужно добавить код из двух строк выше в файле app / build.gradle.
public class MainActivity extends Activity {
ImageView processedImgA;
static String imgSouce = Environment.getExternalStorageDirectory()+ "/folder/image.jpg";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RxPermissions rxpermission = new RxPermissions(this);
rxpermission.
processedImgA = (ImageView)findViewById(R.id.processedimg_a);
request(Manifest.permission.READ_EXTERNAL_STORAGE)
.subscribe(grated->{
if (!grated) {
//toast permission denied
}else{
//read bitmap in here
Bitmap bitmap_Source = BitmapFactory.decodeFile(imgSouce);
processedImgA.setImageBitmap(bitmap_Source);
}
});
}
}