2016-03-15 11 views
5

Ich bin neu in Android-Programmierung. Kürzlich hatte ich mit einem Projekt begonnen und möchte einen Startbildschirm für die Android-App erstellen. Ich hatte den Begrüßungsbildschirm nach following this tutorial gelesen und erfolgreich implementiert. Aber ich merke, dass meine App-Logo aus meinem Bildschirm erstreckt, wie folgt aus:Größe der Bilder in Bitmap in Xml

Stretched out app logo

Das folgende ist mein background_splash.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@drawable/splash_background" /> 

    <item> 
     <bitmap 
      android:gravity="center" 
      android:src="@drawable/tap" /> 
    </item> 
</layer-list> 

ich versucht habe

android:width="75sp" 
android:height="75sp" 

in <bitmap> aber es funktioniert nicht. Daher würde ich gerne wissen, ob es eine Möglichkeit gibt, das Bild zu verkleinern (vorzugsweise ohne Java-Code), außer dass ein ImageView verwendet wird. Jede Hilfe wäre willkommen!

+0

** android: Scaletype = "fitXY" ** es versuchen .... und Ihre Imageview gesetzt ** android: layout_width = "match_parent" android: layout_height = "match_parent" ** ich denke, es funktioniert –

+0

bitte Setze ** Höhe und Breite ** deiner Layer-Liste ... –

+0

@nandkishormewara Ich werde es versuchen und se e wenn es funktioniert ☺ –

Antwort

0

R Sie Image mit es versuchen, ich denke, es hilft Ihnen, ...

ImageView img=(ImageView)findViewById(R.id.ImageView01); 
Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.sc01); 
int width=200; 
int height=200; 
Bitmap resizedbitmap=Bitmap.createScaledBitmap(bmp, width, height, true); 
img.setImageBitmap(resizedbitmap); 

Oder überprüfen es

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="100dp" 
android:layout_height="100dp"> 
<item 
    android:drawable="@drawable/splash_background" /> 

<item> 
    <bitmap 
     android:gravity="center" 
     android:src="@drawable/tap" /> 
</item> 
</layer-list> 
+1

Nein Ich verwende kein ImageView. Ich verwende Bitmap, um es direkt anzuzeigen. Kein imageView verwendet. –

2

Ich stand vor der dito gleiche Problem beim Entwerfen Splash-Screen für meine App (folgte dem gleichen Link, den Sie geäußert haben oben und ein paar andere), und ein bisschen Googeln brachte mir meine Antwort.

Die Lösung ist einfach und erfordert keine Codierung. dh. Sie müssen Höhe und Breite in Ihrem XML nicht angeben. Aus diesem Grund ist Ihre Bildauflösung höher als wie unten angegeben.

LÖSUNG:

Sie benötigen Bild von verschiedenen Auflösungen zur Verfügung zu stellen, die auf verschiedene Bildschirmgrößen abzubilden.Es folgt eine Liste von Mindestbildschirmgröße für verschiedene Anzeigen von Google (alle in Pixel) zur Verfügung gestellt: -


Für Android Mobile Devices

LDPI- 426 x 320

MDPI- 470 x 320

HDPI- 640 x 480

XHDPI- 960 x 720


Für Android Tablet Devices

LDPI- 200 x 320

MDPI- 320 x 480

HDPI- 480 x 800

XHDPI - 720 x 1280


Also alles, was Sie tun müssen, ist Ihr Bild die Größe für alle Größen, Last die Bilder in Drawable nach ihren Größen (Ex: ziehbar-hdpi enthält die hdpi Bild) und übergeben Sie es an die background_splash.xml (Sie können den gleichen Namen natürlich beibehalten). Erstellen Sie das Projekt neu und führen Sie es aus. Sollte gemäß Ihrer Spezifikation sein.

Hinweis: Code muss nicht geändert werden. Für die Bildgrößenanpassung können Sie Adobe Photoshop verwenden (ich finde es einfacher, damit zu arbeiten).

Je nach Präferenz können Sie auch 9 Patchbild verwenden, damit der Rahmen des Bildes gedehnt werden kann, um der Größe des Bildschirms zu entsprechen, ohne den statischen Bereich des Bildes zu beeinträchtigen.

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

2

Gerade

ändern
android:gravity="center" 

Um

android:gravity="fill" 
-3

Wenn Sie die Bitmap in einem Element ändern möchten, sollten Sie nicht Bitmap verwenden, um die Abmessungen direkt Artikel verwenden zu ändern .. Beispiel:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@drawable/splash_background"/> 
    <item 
     android:src="@drawable/tap" 
     android:gravity="center" 
     android:width="150dp" 
     android:height="150dp"/> 
    </item> 
</layer-list> 

Bitmap erlaubt keine Änderung der Größe von Bildabmessungen Schwerkraft = „center“

1

Bitmap erlaubt keine Änderung der Größe von Bildabmessungen Schwerkraft = „center“ und ein separates Symbol mit bestimmten Größe für Splash Screen zu nehmen.

1

Versuchen Sie nicht dieses ziehbar verwenden

wenn Sie Hintergrundfarbe ändern, die es zu Relative Layout geben, wenn Sie die volle Bild auf Ihrem Geröll einstellen wollen (am besten für Splash-Screen), die

match_parent zur Bildansicht verwenden
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="fitXY" 
     android:layout_centerInParent="true" 
     android:src="@drawable/splash" /> 

</RelativeLayout> 
Verwandte Themen