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.
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.
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
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
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.
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.
3. Verwenden Sie ImageButton
und legen Sie Ihre Bilder nach der Methode setImage*
(nicht setBackround*
) fest.
Tags und Links android android-drawable android-theme