Делаю приложение для фото. Сначала фотографирую, затем вывожу фотографию с карты памяти телефона на экран. На версии android 5.2 фото выводится как надо. На версии 7.1 фото не грузится совсем, при чем никакими способами.
Вот код:
File saveDir;
String _path = Environment.getExternalStorageDirectory() + File.separator + "/123/TakenFromCamera.jpg";
File file = new File(_path);
Uri outputFileUri = FileProvider.getUriForFile(MainActivity.this, BuildConfig.APPLICATION_ID + ".provider",file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, CAMERA_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
imageView.setImageDrawable(Drawable.createFromPath(_path));
}
Ошибка была в том, что на андроид 6+ картинка в большом разрешении не выводится в ImageView. По этому приходится рескейлить её. Осталось решить, как правильно её уменьшить относительно разрешения экрана телефона.
Продвижение своими сайтами как стратегия роста и независимости