Last-big-size-image-Problem in der Bildansicht . Bitmap zu groß, um hochgeladen werden zu einer textur
Habe ich 270 x 2693 pixel-Bild in den drawable Ordner . Wenn ich versuche zu setzen, wird das Bild im imagview ich habe Bitmap zu groß, um hochgeladen werden zu einer textur Warnung.
Bild-sets perfekt in android-Geräte < 4.0 aber nicht sieht > 4.0-Gerät.
Bitte helfen Sie mir dieses Problem zu beheben.
Code
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:contentDescription="@string/name"
android:src="@drawable/hindi" />
Hier hindi ist ein Bild im drawable-Ordner und seine Größe ist 270 x 2693 pixel.
Haben Sie versucht, zu laden, Bild mit advaces von developer.android.com/training/displaying-bitmaps/... ?
+1 -, OP -, wie wollen Sie Ihr problem lösen? Irgendwelche Vorschläge? Ich denke, es gibt zwei Lösungen: effiziente Verladung oder skalieren des Bildes durch eine externe java-Bibliothek für die Bildverarbeitung
+1 -, OP -, wie wollen Sie Ihr problem lösen? Irgendwelche Vorschläge? Ich denke, es gibt zwei Lösungen: effiziente Verladung oder skalieren des Bildes durch eine externe java-Bibliothek für die Bildverarbeitung
InformationsquelleAutor Chirag | 2013-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem
Dieses problem ist in der Regel entweder auf OpenGL maximale textur Größe oder den Speicher des Geräts. Die vollständige Fehlermeldung, die Sie bekommen ist wahrscheinlich so etwas wie
Speicher ist generell das problem mit einem großen Bild skalieren, aber in Ihrem Fall 270x2693 ist 727110 Pixel. Wenn Sie in RGBA, es ist 4 Byte pro pixel, so 727110 * 4 = 2908440 bytes, was etwa 2,7 Megabyte. Passen sollten die auf alle Geräte.
So, dein problem ist vermutlich im Zusammenhang mit OpenGL. Was passieren könnte ist, dass das Android-Gerät > 4.0 testen, erkennen, dass das Bild zu groß ist für OpenGL und Größe für Sie, während ältere Geräte nicht.
Edit:
In meinem Fall, das problem ist, dass meine 640x1136 splash-Bild scheint rezised automatisch zu einer 1280x2272 Bild-Größe passen zu meinem Gerät großen Bildschirm. Das löst auch die Fehlermeldung, die du hast.
Wenn dieser Fehler weiter auf, es ist in Bezug auf die dpi an, die verwendet wird, um das Bild laden. So finden Sie auf Android-Referenz-Gerät laden Bild in Bezug auf Ihre dpi verändern der Größe von Bildern, die im Speicher geladen ist.
Lösung
Ihnen nicht viel andere Wahl, als erkennen des Geräts Größe
laden Sie das Bild richtig.
Sehen, wie laden Sie große bitmap im Speicher.
Können Sie auch unterschiedliche Bild-Größen für unterschiedliche device-dpi, die
automatisch ausgewählt werden kann aus dem Drawable-Ordner von Android.
Sehen die Wie unterstützt Bildschirme, der Ihnen sagt, wie Sie Ihre setup
Ordner.
Als andere angegeben, verwenden Sie ein kleineres Bild oder die Größe zu verringern.
Verwandte Informationen
Ich schlage vor, Sie sehen es, wenn Sie brauchen, um Unterstützung Vielfache Bildschirme.
Android auch Daten sammeln, die aktualisiert werden alle 7 Tage auf Bildschirme Größe unter Ihren Nutzern.
Haben Sie auch einen Blick auf diese interessante Antwort welche Punkte Sie sich eine gute website zu verstehen, die Bildgröße im Speicher.
Schließlich, wenn Sie schon mit OpenGL in Ihre app, haben Sie einen Blick auf diese Antwort, die zeigt, wie das erkennen der max OpenGL-texture-Größe.
InformationsquelleAutor ForceMagic
Warum nicht reduzieren Sie die Größe des Bildes? Wenn Sie nicht wollen, zu tun, dann eher als geben Sie die bitmap in das XML-laden Sie es aus dem Programm-code, und skalieren, um zu passen das display. Sehen diese Anleitung weitere Informationen zum laden von großen bitmaps.
InformationsquelleAutor Clyde
versuchen, verwenden Sie diesen code
maxTextureSize speichert die maximale Größe für die dekodierten Bild, wie 4096x4096, 8192x8192 . Denken Sie daran, führen Sie dieses Stück code in der MainThread, oder Sie bekommen Null.
InformationsquelleAutor tinaJohnny