Comment puis-je définir la taille de l'un drawable dans le fichier de style?
Je tiens à préciser qu'une fois dans res/values/styles.xml la taille de deux cases, et leurs quatre forme un drawable
- res/drawable/cb1_checked.xml
- res/drawable/cb1_unchecked.xml
- res/drawable/cb2_checked.xml
- res/drawable/cb2_unchecked.xml.
De cette façon, la taille semble un temps dans le style plutôt que quatre dans l'un drawable.
Aucun des deux tentatives, ci-après. Pouvez-vous suggérer une solution? (Si vous voyez quel est le problème avec ces deux tentatives, s'il vous plaît ne le mentionner.)
----------------------------------------------------------------Tentative 1----------------------------------------------------------------
Remplacer
res/drawable/cb1_checked.xml
<size android:width="24dp"
android:height="24dp" />
avec
res/values/styles.xml
<item name="android:layout_width">24dp</item>
<item name="android:layout_height">24dp</item>
----------------------------------------------------------------Tentative 2----------------------------------------------------------------
Ajouter
res/values/styles.xml
<item name="android:background">cb_background</item>
et de définir un arrière-plan dessiné
res/drawable/cb_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00FF00"/>
<size android:width="24dp"
android:height="24dp" />
</shape>
----------------------------------------------------------------Added----------------------------------------------------------------
Ici est le jeu complet de fichiers XML:
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyLL"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/cb1"
style="@style/CB_style"
android:button="@drawable/cb1_selector"
android:height="@dimen/my24sp" />
<CheckBox
android:id="@+id/cb2"
style="@style/CB_style"
android:button="@drawable/cb2_selector"
android:height="@dimen/my24sp" />
</LinearLayout>
res/values/styles.xml
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
<style name="CB_style" parent="@android:style/TextAppearance.Medium">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:gravity">center</item>
<item name="android:checked">false</item>
</style>
res/drawable/cb1_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="true">
<item android:state_checked="true"
android:drawable="@drawable/cb1_checked" />
<item android:state_checked="false"
android:drawable="@drawable/cb1_unchecked" />
</selector>
res/drawable/cb1_checked.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF0000"/>
<size android:width="24dp"
android:height="24dp" />
</shape>
res/drawable/cb1_unchecked.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#880000"/>
<size android:width="24dp"
android:height="24dp" />
</shape>
(et de même pour les récepteurs cb2 sélecteur et coché/décoché un drawable)
OriginalL'auteur Calaf | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Il existe une solution faible, faible, dans le sens que android:largeur et android:hauteur apparaissent encore quatre fois, mais au moins la dimension peut être ajustée par réglage d'un seul paramètre.
Pour chacun des quatre un drawable, ajouter
et également de définir la dimension
res/values/dimens.xml
Alors la question demeure: Peut la taille de ne pas être spécifiée dans l'un drawable?
J'ai fait la même chose, mais ce n'est pas le travail. J'ai l'erreur suivante
Error:Error: Width (0) and height (0) cannot be <= 0
. J'ai min skd tarket définie à 19.Cela paraît simple, mais quelque chose que l'on pourrait suggérer ici serait juste une supposition. Double-vérifier et de poster une question.
OriginalL'auteur Calaf
vous pouvez stocker votre taille comme une ressource dans le
res/values/dimens.xml
commeet de mettre cette valeur à vos mises en page comme
vraiment? quelle est l'erreur? après la création de la nouvelle dimens.xml vous devriez nettoyer votre projet.. que java est la création de l'id de référence pour obtenir la valeur avec votre @dimen/checkbox_width
Il n'y a pas d'erreur. Rien ne s'affiche dans Eclipse ou de l'appareil. Pourriez-vous regarder l'ensemble des fichiers que j'ai maintenant ajouté et voir si il y a quelque chose qui fait que votre solution fonctionne pas de mon côté?
OriginalL'auteur longilong