Вставка изображения в TextView (Java)

174
10 января 2018, 18:09

Пытаюсь вставить изображение в 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 не подходит?

Answer 1

Попробую пованговать. У вас вылетает исключение 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);
READ ALSO
Android анимация расходящихся кругов

Android анимация расходящихся кругов

Вообщем у меня есть кнопка круглая выглядит вот так:

159
SIP сервер формирование ответов

SIP сервер формирование ответов

Есть sip-сервер, написанный на java, он работает, но через раз, проблема в формировании ответных сообщений от сервераКак я понимаю, то мне приходит...

157
Переход от окна редактирования в окно run IDEintellij-idea

Переход от окна редактирования в окно run IDEintellij-idea

Добрый день, подскажите какими сочетаниями клавиш в intellij-idea можно перейти из окна редактирования в окно run для ввода данных с клавиатурыОбратно...

134