Пытаюсь вставить изображение в TextView. По нажатию на кнопку выполняется следующий код:
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, PICK_IMAGE_CODE);
После чего пользователь выбирает изображение и оно должно отобразиться в элементе TextView
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == PICK_IMAGE_CODE) {
Uri imgURI = data.getData();
Drawable drawable;
try {
drawable = Drawable.createFromPath(imgURI.getPath());
drawable.setBounds(0, 0, 50, 50);
noteBody.setCompoundDrawables(drawable, null, null, null);
} catch (NullPointerException ex){
Toast.makeText(this, "По какой-то причине не удалось найти изображение. Попробуйте снова.", Toast.LENGTH_SHORT).show();
}
//Toast.makeText(this, "Success!\n" + imgURI.toString(), Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Abort operation", Toast.LENGTH_SHORT).show();
}
}
В строке drawable = Drawable.createFromPath(imgURI.getPath());
объект drawable
становится null
. В чём проблема? Или получаемый путь от imgURI не подходит?
Попробую пованговать. У вас вылетает исключение FileUriExposedException
С недавних пор, Uri
файла/изображения полученного из файлового браузера положено оборачивать в FileProvider
, иными словами uri типа file:///
теперь под запретом, должно быть что-то типа content:///
Подробнее здесь
Update
С учетом, того, что content://
может указывать не на физический файл, а запись в БД или сетевой ресурс, так что вам надо превращть Uri
в Drawable
другим способом, например так:
InputStream is=getContentResolver().openInputStream(uri);
Bitmap b = BitmapFactory.decodeStream(is);
Drawable drawable=new BitmapDrawable(getResources(), bitmap);
Есть sip-сервер, написанный на java, он работает, но через раз, проблема в формировании ответных сообщений от сервераКак я понимаю, то мне приходит...
Добрый день, подскажите какими сочетаниями клавиш в intellij-idea можно перейти из окна редактирования в окно run для ввода данных с клавиатурыОбратно...