ImageButton не отображает определенную возможность рисования

Это довольно забавная проблема, с которой я когда-либо сталкивался,

У меня есть таблица с 9 кнопками изображения, по 3 строки. У каждого ImageButton есть другое изображение, связанное с ним. Я установил фон кнопки изображения прозрачным (# 00000000). Теперь вот где происходит забавный материал. Одно из изображений не отображается на эмуляторе (Gingerbread), а также устройство, на котором работает Froyo. Редактор макета показывает все изображения на месте.

Вот еще несколько вещей:

  • Я использовал RelativeLayout вместо TableLayout, эта же проблема сохраняется.
  • Я изменил положение изображения (использовал его на разных кнопках), и все же он не отображается.
  • Когда я использую другое изображение, которое они отображают, но когда я использую этот конкретный образ, это не будет.
  • Все изображения имеют одинаковое разрешение (90x72) и плотность (72ppi)
  • Все изображения находятся в папке drawable-mdpi.

Любые указатели?

ИЗМЕНИТЬ Оказалось, что это ошибка, и эта проблема решена. Проверьте эту ссылку .

Ответ 1


У вас все еще есть проблема. У меня была подобная ошибка - конкретный доступный не отображался, независимо от того, что ImageView.
Это так, что ваш образ является первым (в алфавитном порядке) в папке с возможностью переноса? По какой-то странной причине возникает проблема с первой способной, "решенной" проблемой, с добавлением фиктивного вывода на первое место. Тем не менее мне очень любопытно, где проблема.

Надеюсь, это поможет! И я с нетерпением жду дальнейших объяснений:)

Ответ 2

Я могу подтвердить добавление фиктивного изображения, которое отображает первую букву в алфавитном порядке.

У меня было изображение (под названием about.png, так, конечно, рядом с верхней частью выпадающей папки), которое не отображалось, когда используемое тестовое устройство было mdpi.

В моем случае, однако, изображение не было первым в каталоге. На самом деле у меня был образ, который в алфавитном порядке сначала назывался about_icon.png - который, как ни странно, выглядел отлично. Кроме того, hdpi-версия изображения хорошо отображалась в устройстве hdpi.

Я добавил фиктивное изображение заполнителя под названием "aaaa.png", и теперь mdpi об изображении отображается в устройстве.

Очень странно, и, честно говоря, довольно паршивая ошибка.

Ответ 3

Попробуйте использовать android:src="@drawable/my_resource" вместо app:srcCompat="@drawable/my_resource".

Ответ 4

Этот пост довольно старый, но у меня возникла аналогичная проблема. Выполняя 4.4.2, мое изображение будет показывать некоторые изображения правильно, но другие будут меняться. Например, мой белый "ic_camera.png" будет выглядеть следующим образом. enter image description here

Что казалось случайным образом превратить изображения в их темную часть счетчика. (Я дважды и трипл проверял, что я вставляю нужный цвет). Все изображения взяты из пакета значков Android. Я пробовал удалять и копировать все изображения несколько раз безрезультатно. Наконец, я просто изменил соглашение об именах, сбросив все "ic" и "_" , чтобы изображения, где были все простые слова и строчные буквы. т.е.... "camera.png", "upload.png" и "newimage.png"

BINGO! enter image description here

Очень странно, но просто исправить. Надеюсь, это поможет кому-то еще!

Ура!

Ответ 5

Для меня это была другая проблема. Изображения отображались на nexus4 и nexus5, но не на nexus3. Я уменьшил изображение с ширины 2000 пикселей до ширины 1000 пикселей и работал как шарм.

Ответ 6

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

Ответ 7

Когда вы сделаете это в DESIGN PANEL, вы получите что-то вроде этого:

<ImageButton
        android:id="@+id/translate_button"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:srcCompat="@drawable/translate_button"/>

Измените последнюю строку вручную на:

<ImageButton
        android:id="@+id/translate_button"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/translate_button"/>

Это сработало для меня.