У меня есть изображение 1080x1920px
, которое я хочу использовать в качестве фонового изображения в своем приложении.Растровое изображение слишком большое
На моем Galaxy S6 i
т работает отлично, но как я иду вниз к меньшему размеру экрана (S4 т.е.) Я получаю это:
W/OpenGLRenderer﹕ Bitmap too large to be uploaded into a texture (3240x5760, max=4096x4096)
помимо изображения не отображается на всех.
Это мой макет:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}"
android:background="@drawable/bg">
<EditText android:id="@+id/username_textfield"
android:layout_width="270dp"
android:layout_height="40dp"
android:hint="Username"
android:textColorHint="#ffffff"
android:textColor="#ffffff"
android:ellipsize="start"
android:gravity="center_horizontal"
android:singleLine="true"
android:layout_marginTop="50dp"
android:layout_marginLeft="60dp"
android:background="@drawable/textfield_bg"/>
<EditText android:id="@+id/password_textfield"
android:layout_width="270dp"
android:layout_height="40dp"
android:hint="Password"
android:textColorHint="#ffffff"
android:textColor="#ffffff"
android:ellipsize="start"
android:gravity="center_horizontal"
android:singleLine="true"
android:layout_marginTop="10dp"
android:layout_marginLeft="60dp"
android:background="@drawable/textfield_bg"/>
И мой MainActivity пуст за исключением OnCreate. Я прочитал другие сообщения об этой проблеме, но никто не предоставил мне никаких реальных решений.
Возможный дубликат [ "Bitmap слишком большой, чтобы быть загружено в текстуру"] (http://stackoverflow.com/questions/10271020/bitmap-too-large-to- be-uploaded-in-a-texture) – Shark
См. RomainGuy's [ответ здесь] (http://stackoverflow.com/questions/7428996/hw-accelerated-activity-how-to-get-opengl-texture-size-limit) – Shark
Изображение масштабируется в зависимости от плотности пикселей вашего устройства. Изображение на самом деле слишком велико. Вы можете определить максимальный размер OpenGL позволит и изменить размер растрового изображения, чтобы он соответствовал, если вы хотите, чтобы он работал для всех растровых изображений, в том числе динамически добавленных. Что касается ссылки @Shark, сделанной на ответ Ромена, вы, вероятно, захотите также посмотреть на это: http://stackoverflow.com/questions/26985858/gles10-glgetintegerv-returns-0-in-lollipop-only/27092070#comment59878380_27092070 – zgc7009