2016-07-01 12 views
2

Ich habe eine Schaltfläche, die ich in einer meiner Aktivitäten in meinem Android-Projekt implementiert habe - die Schaltfläche soll sowohl ein Logo (ein Zeichen) als auch einen darauf folgenden Text enthalten , aber ich habe ein sehr eigenartiges Problem. In der Vorschau-Ansicht meiner Aktivitäts-XML-Datei sieht die Schaltfläche völlig in Ordnung aus, aber wenn ich meine App auf meinem Handy starte, wird es absurd groß.Kombinierter Text- und Bild-Button, skalierbare Größe für die Zeichnung

Ich importiere das Zeichen aus einer .xml Zeichnungsdatei, die ich selbst gemacht habe. Ich versuchte importiert ein .png direkt in meine Tätigkeit, aber es war zu groß - so mache ich ein neues XML, wo ich Größe ändern und , dass XML ist, was ich als meine Zeichen importieren. Code:

Activity.xml

<Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/title_activity_facebookInvite" 
    android:id="@+id/btnInviteFacebook" 
    android:layout_alignParentBottom="false" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/mainActivityInviteText" 
    android:background="@drawable/bh_red_button" 
    android:layout_marginTop="@dimen/bh_input_element_margin" 
    android:textSize="@dimen/bh_button_font_size" 
    android:drawableLeft="@drawable/fb_resize" 
    android:layout_marginLeft="45dp" 
    android:layout_marginRight="45dp" 
    android:minHeight="0dp" /> 

fb_resize.xml (My ziehbar)

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

<item 
    android:id="@+id/fb_resizeBtn" 
    android:drawable="@mipmap/fb_logo" 
    android:width="15dp" 
    android:height="15dp" 
    /> 

</layer-list> 

fb_logo ist mein PNG, die ich gemacht habe. Eine andere sehr seltsame Sache ist, dass, wenn ich es auf einem virtuellen Gerät in Android Studio emulieren, sieht es völlig in Ordnung, aber nicht auf meinem Handy (Habe auch ein anderes Handy ausprobiert).

Antwort

1

Gelöst es! Anstelle eines .png habe ich ein Vektor-Bild (.svg-Datei) verwendet und das hat sich aus irgendeinem Grund gut geändert.

+1

Froh hier zu sein! –

1

wie folgt aussieht ist Ihr Problem:

android:layout_width="fill_parent" 

Versuchen fill_parent mit wrap_content

ersetzen könnten Sie auch versuchen, diese in Ihrem Element hinzuzufügen:

android:scaleType="fitCenter" 
android:adjustViewBounds="true" 

Okay, hier ist eine Abhilfe , versuchen Sie, Ihre Taste mit dieser zu ersetzen:

<FrameLayout 
    android:id="@+id/NavigateRightButtonLayout"   
    android:layout_below="@+id/mainActivityInviteText" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="45dp" 
    android:layout_marginRight="45dp" 
    android:gravity="center"> 
    <Button 
    android:textSize="@dimen/bh_button_font_size" 
    android:textColor="#FFFFFF" 
    android:textAlignment="gravity" 
    android:text="@string/title_activity_facebookInvite" 
    android:gravity="center" 
    android:background="@drawable/bh_red_button" 
    android:layout_marginTop="@dimen/bh_input_element_margin" 
    android:textSize="@dimen/bh_button_font_size" 
    android:layout_gravity="center" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
     <ImageView 
     android:layout_width="15dp" 
     android:layout_height="15dp" 
     android:layout_gravity="left" 
     android:id="@+id/fb_resizeBtn" 
     android:background="@mipmap/fb_logo" /> 
</FrameLayout> 
+0

Danke für die Antwort, versuchte Ihr Tipp, aber es hat sich nicht wirklich viel geändert - es machte nur den Knopf ein wenig schmaler, aber das Logo ist immer noch sehr groß –

+0

Code hinzugefügt –

+0

Funktioniert immer noch nicht - ich wirklich kann nicht sehen, wie das so schwer zu beheben ist. Wirklich dankbar für deine Bemühungen! –