Guten Tag, ich bin ein wenig verwirrt und tut mir leid, wenn es veröffentlicht wird, aber ich kann nicht die richtige Antwort finden. Meine Aufgabe ist es, Widget (RadioButton, RatingBar) mit benutzerdefinierten Zeichenvorlagen zu erstellen + sie qualitativ hochwertig und nicht zu verwischen.Drawable Auflösung in benutzerdefinierten Widgets
Hier kommt meine Probleme und was ich versucht habe. So zum Beispiel habe ich benutzerdefinierte ziehbar für Radio-Buttons:
radioButtonArray[i].setButtonDrawable(R.drawable.radio_button_selector);
radio_button_selector:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/rb_unchecked" android:state_checked="false"/>
<item android:drawable="@drawable/rb_checked" android:state_checked="true"/>
</selector>
Das Problem ist jetzt in der Qualität des Drawables. Wenn ich rb_unchecked.png
und rb_checked.png
in verschiedenen Ordnern (hdpi, mdpi, xhdpi ...) mit verschiedenen px Größe hinzufügen werde, dann werden meine Radioknöpfe auf einigen Telefonbildschirmen sehr groß sein. Ok, das nächste, was ich ausprobiert habe, war die programmatische Breite und Höhe meiner Optionsfelder, aber ich fand, dass es hart und uneffizient ist (zum Beispiel habe ich die gleiche Situation mit RatingBar und ich finde nicht, wie man benutzerdefinierte Breite und Höhe einstellen kann Gegenstände darin). Eine andere Lösung, die ich versuchte, ist hinzuzufügen rb_unchecked.png
und rb_checked.png
nur drawable
Ordner mit der Größe von 18px * 18px und auf der einen Seite löste das Problem, die Größe ist korrekt, aber die Radio-Tasten sind jetzt niedrige Auflösung und Art von Unschärfe.
Meine Quastion ist was ich falsch mache? Ich habe erwartet, dass auf Geräten mit verschiedenen dp Android wird bestimmte Bild im Ordner hdpi/xhdpi und skalieren Sie es auf bestimmte Größe, aber anstelle dieser Bilder aus bestimmten Ordnern nur wrap_content | in meinem benutzerdefinierten Widget zuschneiden?