#android #android-layout #android-drawable
#Android #android-layout #android-drawable
Вопрос:
У меня есть одно изображение размером 1,2 МБ и размером 2436 * 1539. Я добавил это изображение в одну drawable
папку вместо того, чтобы добавлять его в разные папки для рисования (drawable-hdpi, drawable-xdpi, drawable-xxdpi, drawable-xxxdpi)
.
Когда я запускаю свое приложение на устройстве Samsung SM-G7102, изображение не отображается. Устройства используют xhdpi
изображения. Также оно отображается на любом другом устройстве.
Но когда я добавляю изображение в drawable-xxxhdpi
папку, оно работает и для этого устройства Samsung SM-G7102.
Как мы знаем, после добавления изображения в xxxhdpi
Android runtime оно отключается для всех устройств с разрешением dpi.
Но мой вопрос в том, почему добавление его в простую drawable
папку не работает?
Мы будем признательны за любую помощь. Заранее спасибо.
Ниже приведен мой XML-код для настройки изображения:
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.AppCompatImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/background_image" />
</android.support.constraint.ConstraintLayout>
Ответ №1:
res/drawable/
это устаревший каталог, эквивалентный res/drawable-mdpi/
.
Следовательно, Android увеличит масштаб изображения при загрузке его на -xhdpi
устройство. Это увеличение в 2 раза для каждого размера, так что ваше результирующее изображение будет 4872 * 3078. ARGB_8888
Изображение занимает ~ 57 МБ, и у вас, вероятно, закончилась память.
Комментарии:
1. Итак, должен ли я добавить изображение в
res/drawable-xxxhdpi/
, поскольку Android уменьшит его выборку?2. @Kavita_p: Либо так, либо поместите его в
res/drawable-nodpi/
. Тогда Android не будет уменьшать его (или увеличивать), а вместо этого оставит его в покое.3. да, для обработки понижающей и повышающей дискретизации требуется время по мере выполнения операции. Поэтому лучше добавить изображение в
drawable-nodpi
папку. Спасибо за помощь.