ImageView.setImageURI НЕ работает при попытке назначить R.drawable.X Uri
связан с:
Требуется предложение о смешанном "Uri/int id" изображения окружающих
теперь моя проблема в том, что:
ImageView imgView=(ImageView)findViewById(R.id.imgView);
Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image);
imageView.setImageURI(imgUri);
НЕ работает. почему?
Я знаю, что
imgView.setImageDrawable(Drawable.createFromStream(
getContentResolver().openInputStream(imgUri),
null));
работа.
но это НЕ решает мою проблему. потому что я хочу установить изображение с помощью uri независимо, если это происходит из ресурса или из камеры ACTION_PICK намерения...
любые предложения приветствуются.
Спасибо.
Отношения
Ответы
Ответ 1
Попробуйте это
Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image);
imageView.setImageURI(null);
imageView.setImageURI(imgUri);
Это обходной путь для обновления ImageButton, который пытается кэшировать предыдущее изображение Uri. Передача null
эффективно сбрасывает его.
Решение, предложенное в этой книге: Sams Teach Yourself Разработка приложений для Android за 24 часа - Очень рекомендуется читать.
Ответ 2
imageView.postInvalidate()
работает. Или imageView.invalidate()
, если вы находитесь в потоке пользовательского интерфейса.