Отображение ImageView в макете, но не на самом устройстве

У меня есть ImageView, который я хочу отобразить, сопоставляя всю ширину устройства, я понял, что вот так:

<ImageView
    android:id="@+id/home_bar_newvault"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:scaleType="centerCrop"
    android:layout_alignParentBottom="true"
    android:src="@drawable/home_bar" />

Home_bar - это файл изображения PNG со следующими размерами: 2399x254. Когда я выбираю просмотр графического макета пользовательского интерфейса, он отображает изображение правильно в нижней части действия. Однако, когда я запускаю приложение на своем устройстве, он вообще не отображает Imageview.

Ответы

Ответ 1

Хорошо, я попытался изменить разрешение изображения (разрезая его наполовину, сделав его 1000x130), и как-то это устранило проблему. Я думаю, что Android не может отображать большие изображения, подобные этому прямо? Я не знаю, если вы знаете больше о предмете, пожалуйста, не стесняйтесь отвечать! Во всяком случае, уменьшилось изображение.

Ответ 2

У меня была такая же проблема, она отображается только на вкладке "Дизайн" для Android Studio 2.2.

Что я сделал, чтобы заставить его работать, - изменить назначенный автоматический ключ (заполненный с помощью Drag/Drop ImageView) с app:srcCompat="@drawable/logo" до android:src="@drawable/logo" на вкладке "Текст", чтобы он отображался как на эмуляторе, так и на устройстве, например

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logo"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="75dp"
    android:id="@+id/logoImageView"
    android:scaleType="fitXY"
    android:scaleX="1.5"
    android:scaleY="1.5" />

Ответ 3

вы можете использовать:

android:background="@drawable/home_bar"

вместо:

android:src="@drawable/home_bar"

Ответ 4

Используйте папку drawable-nodpi в res если изображение слишком большое.

Ответ 5

У меня была та же проблема, и я смог решить ее, используя следующую.

Моя проблема заключалась в том, что направление извлекаемого архива было scrCompact во втором поле scrCompact.

Я вставил копию в поле up, и проблема решена.

enter image description here

Ответ 6

У меня была проблема с телефоном Samsung, который не отображал мой drawable, но он работал нормально на другом телефоне. Картинка не была в каких-то больших размерах или иным образом ненормальной.

Чтобы решить эту проблему, я просто помещаю свой ресурс изображения в прорисовываемую подпапку, а не помещаю его в основную папку для рисования. Например, от res/drawable до res/drawable-mdpi сработало для меня. Если у вас есть картинка для всего, у кого нет определенного dpi, поместите его в res/drawable-nodpi. Вот еще немного о папках dpi.

Ответ 7

Ничто из вышеперечисленного не сработало, это было действительно большое изображение, нашло это решение: в вашем файле манифеста

<application
        //this solve it for me.
        android:hardwareAccelerated="false"
        // Add this if the previuos line didn't solve tge problem
        android:largeHeap="true"
        android:theme="@style/AppTheme">

Решите это для меня.

Надеюсь, это кому-нибудь поможет.

Ответ 8

Для меня проблема заключалась в том, что я использовал

tools:src=...

а не

android:src=...

Он генерируется автоматически при попытке использовать уже существующее изображение шаблона.