Schreckliche ImageView-Bitmap-Qualität?

Ich habe einen Splash-Screen mit einem ImageView das den Teil eines Hintergrundes spielt. Unabhängig davon, ob ich meine Bitmap skaliert habe (was ich tue), ist die Bildqualität schrecklich. Ich denke, es reduziert die Farbtiefe. Ich habe mich schon so gut drawable , und ein Vorschlag war, mein Bild in raw statt zu drawable aber das half auch nicht. Hier ist ein Screenshot:

Bildbeschreibung hier eingeben

Was genau ist hier los und wie kann ich das beheben?

EDIT: Ich habe diese Bitmap nicht programmgesteuert angewendet, also gibt es keinen relevanten Java-Code. Hier ist der XML-Code für diese Aktivität:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/RelativeLayoutSplash" android:layout_width="match_parent" android:layout_height="match_parent" android:drawingCacheQuality="high" android:orientation="vertical" android:padding="@dimen/splash_padding" android:scrollbarAlwaysDrawVerticalTrack="true" tools:context=".SplashActivity" > <ImageView android:id="@+id/ImageViewBg" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/logo_description" android:scaleType="centerCrop" android:src="@drawable/splash_bg_register" /> <ImageView android:id="@+id/ImageViewLogo" android:layout_width="match_parent" android:layout_height="wrap_content" android:contentDescription="@string/logo_description" android:maxHeight="@dimen/logo_maxheight" android:maxWidth="@dimen/logo_maxwidth" android:layout_centerVertical="true" android:src="@drawable/logo" /> <TextView android:id="@+id/TextViewCopyright" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:text="@string/copyright" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/white_50" android:textSize="@dimen/copyright_size" /> </RelativeLayout> 

EDIT: Ich habe versucht getWindow().setFormat(PixelFormat.RGBA_8888); Wie vorgeschlagen, was einen sichtbaren Unterschied gemacht hat, aber die Streifenbildung ist noch vorhanden. Dies ist das Bild, das ich als Hintergrund verwende.

  • Wie lade ich ein ImageView mit einer png-Datei ohne "setImageBitmap ()"?
  • Wie bekomme ich eine Reihe von Bildern?
  • Platzierung einer Textansicht oben auf Bildansicht in Android
  • Android ändern Hintergrundbild mit Fade In / Out Animation
  • Rotation und Skalierung mit Multi Touch in Android
  • Android - Wie zirkular zoom / vergrößern Teil des Bildes?
  • Machen Sie Bild erscheinen die Hälfte des Bildschirms
  • Bild mit hoher Auflösung - OutOfMemoryError
  • 8 Solutions collect form web for “Schreckliche ImageView-Bitmap-Qualität?”

    Banding tritt meist auf, wenn das Seitenverhältnis des Bildes gestört wird.

    Sie könnten versuchen, eine der folgenden:

    1. Machen Sie Ihr Bild .9.png . In diesem Fall wird es automatisch beheben alle Strecken und kümmern sich um Streifenbildung.

    2. Tragen Sie oberflächliche Dithering auf Ihr Bild, die eine ungewöhnliche Streifenbildung verhindern könnte.

       <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/b1" android:tileMode="repeat" android:dither="true" /> 

    Was sind die Dimensionen deines Bildes? Und was ist das Gerät? Was ich vermute, ist, dass die Bildgröße nicht mit der Größe des Displays übereinstimmt und es sich um einen falschen Ressourcen-Zeichnungsordner handelt. Das Bild sieht ziemlich skaliert aus. Diese Artikel sollen Ihnen helfen, die Bildauflösung und den Ressourcenordner für verschiedene Bildschirme auszuwählen.

    http://developer.android.com/guide/practices/screens_support.html

    http://developer.android.com/training/multiscreen/index.html

    Sie müssen das Fensterfarbformat einstellen. In deiner Aktivität sage so etwas:

     getWindow().setFormat(PixelFormat.RGBA_8888); 

    Ich vermute, die Größe des Bildes ist kleiner als der Bereich, in dem das Bild angezeigt wird. So kann das Bild skalieren und die Qualität verlieren.

     What you can try is: 1. Either put the image of similar dimension 2. use 9 patch image ( good idea ) 

    Du musst dein Bild in verschiedene Größen verkleinern und diese in entsprechende Zeichnungsordner unter res/

    Versuche Antialias, das dir das Problem lösen kann.

    Erstellen Sie eine Bitmap, die mit der unten stehenden xml zeichnen kann.

     <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/background" android:antialias="true" android:dither="true" /> 

    Was du tust, ist, das Bild in xml zu setzen, das viel mehr davon abhängt, was diese Bildauflösung unterstützt.

    Es gibt eine Reihe von Ordnern für jede unterstützte Dichte von mehreren Geräten, legte dein Bild auf einen geeigneten Ordner von dpi.

    Bitte verweisen Sie auf diesen Link http://developer.android.com/guide/practices/screens_support.html

    Siehe selben App-Symbol, wie sich verhalten sich in verschiedenen Ordner

    Beispielanwendung ohne Unterstützung für unterschiedliche Dichten, wie auf niedrigen, mittleren und hochdichten Bildschirmen gezeigt

    Beispielanwendung ohne Unterstützung für unterschiedliche Dichten, wie auf niedrigen, mittleren und hochdichten Bildschirmen gezeigt.

    Bildbeschreibung hier eingeben

    Beispielanwendung mit guter Unterstützung für unterschiedliche Dichten (es ist dichteunabhängig), wie auf niedrigen, mittleren und hochdichten Bildschirmen gezeigt.

    Tweak es einfach, indem ich das Bild ein Hintergrundbild mache. Hier ist ein Beispielcode

      <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/your_image" /> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.