Zeichenhaftes Problem mit dem Thema

8

Beim Erstellen meiner App habe ich einfach das Thema Theme.Light.NoTitleBar.Fullscreen verwendet. Ich habe alle meine Layouts für die gesamte App so aufgebaut und die Dinge so aussehen lassen, wie ich sie haben möchte. Einige Zeichen, die in den Layouts verwendet werden, sind in ihrer Größe speziell festgelegt, während andere auf wrap_content festgelegt sind.

Ich habe mich dann entschieden, zum Holo-Light-Thema zu wechseln. Wenn Sie dies tun, werden alle Zeichen in Layouts, die auf "wrap_content" festgelegt sind, größer. Fast so, als würden sie aus einem größeren Eimer ziehen. Manche sehen sogar so aus, als wären sie gestreckt.

Ich weiß, dass der Hintergrund im älteren Design schwarz ist, aber das ist kein Problem (das ist eigentlich eine Layoutdatei, die in einem anderen Layout enthalten ist). Offensichtlich gibt es einen Größenunterschied zwischen den beiden.

    
Ryan 31.12.2013, 23:09
quelle

4 Antworten

1

Hier ist nur meine Schätzung basierend auf was ich in diesem Thread gelesen habe.

Das kann daran liegen, dass Sie diese Bilder als Hintergrundeigenschaft von Button views verwenden. Dies ist nicht sicher, da Buttons abhängig von den Standard-Margin-Werten, die im Theme definiert sind, Hintergrundbilder nach Bedarf ausdehnen kann. Wenn dies der Fall ist, müssen Sie stattdessen ImageButton views verwenden und die Methode setImage*() verwenden, um Bilder zuzuordnen. Dort können Sie scaleType property verwenden, wie es von Carlos Robeles erwähnt wurde.

    
sergej shafarenka 19.01.2014 18:22
quelle
0

Das Einzige, was mir in den Sinn kommt, ist, dass die verschiedenen Themen unterschiedliche Werte für das Standardattribut android:scaleType der Bildansichten haben.

Bitte versuchen Sie, das Attribut als etwas zu spezifizieren, das gut für Sie ist, und sehen Sie, was mit den zwei verschiedenen Themen passiert. Zum Beispiel können Sie android:scaleType="center" verwenden, so dass Ihre ImageViews etwa so aussehen würden wie

%Vor%

Sie können sich die verschiedenen Skalentypen in der ImageView-Referenz ansehen: Ссылка

Es ist nicht leicht zu verstehen, was jeder Typ bedeutet, also ist es das Beste, sich eine Minute Zeit zu nehmen, um mit ihnen zu spielen

    
Carlos Robles 15.01.2014 01:12
quelle
0

Ich nehme an, dass das Holo-Thema aus irgendeinem Grund Ihre Bilder in einer niedrigeren Auflösung als Licht darstellt. Ich meine, dass Sie zum Beispiel Ihre Zeichen in drawable-xhdpi haben und Holo sie als drawable-hdpi behandelt. In der Tat habe ich keine Beweise dafür, aber in letzter Zeit habe ich mich mit Auflösungen herumgeschlagen und der Unterschied kommt mir sehr bekannt vor.

Wenn Sie Ihre Zeichen nicht im Ordner drawable-xxhdpi (die größte Auflösung) haben, können Sie versuchen, sie in einen Ordner mit höherer Auflösung zu legen, um zu sehen, was passiert.

    
nKn 17.01.2014 20:30
quelle
0

Aus dem Quellcode von android finden Sie Ссылка
Der Stil, den Ihre Schaltfläche in Holo.Light verwendet, ist

%Vor%

Siehe die letzten zwei Zeilen. Es hat standardmäßig minHeight und minWeight . Deshalb ist dein Knopf gestreckt.

Lösungen
1. Setzen Sie minHeight und minWidth Ihrer Button auf 0.
2. Verwenden Sie einen benutzerdefinierten Stil wie diesen.

%Vor%

3. Verwenden Sie ImageButton und legen Sie Ihre Bilder nach der Methode setImage* (nicht setBackround* ) fest.

    
Zhenghong Wang 21.01.2014 16:20
quelle