2013-08-06 1 views
8

Je veux concevoir un spinner comme indiqué dans l'image ci-dessous:Comment concevoir une fileuse dans Android

Enter image description here

Je ne reçois pas la baisse de pointage symbole flèche dans spinner. Comment puis-je faire ceci? Si je fais un design de bouton comme montré ci-dessus alors je dois écrire du code supplémentaire pour obtenir une fonctionnalité similaire à celle d'un spinner, comme Spinner n'a pas android:drawableRight="@drawable/arraodown", mais dans le bouton nous avons cette méthode.

+0

J'utilise ArrayAdapter adapter_subject = new ArrayAdapter (ActivityName.this, android.R.layout. simple_spinner_dropdown_item, ArrayListData); \t spinner_name.setAdapter (adaptateur_subject); –

Répondre

11

Ne dérangez pas avec les tiroirs droit/gauche/....

Il suffit de définir un dessin de 9 patches comme arrière-plan qui limite le contenu interne.

<Spinner 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/you_spinner_drawable" /> 

En ce qui concerne la drawable 9-patch ont un regard sur les ressources Android ou cet exemple photo prise de this blog post (qui montre peu plus de détails sur la façon de faire une fileuse personnalisée):

spinner drawables example

Pour des informations sur dessinables 9-patch, consultez la documentation Android: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch http://developer.android.com/tools/help/draw9patch.html

Bien sûr, vous pouvez également spécifier un fichier xml de liste d'états comme dessinable, par exemple.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When disabled --> 
    <item android:state_enabled="false" 
     android:drawable="@drawable/your_disabled_spinner_drawable" /> 
    <!-- When selected --> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/your_selected_spinner_drawable" /> 
    <!-- When not selected--> 
    <item 
     android:drawable="@drawable/your_default_spinner_drawable" /> 
</selector> 

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

+0

Merci beaucoup .. Je n'ai même pas vraiment pensé à ce sujet. Chapeaux Off .. –

1

Vous devrez créer une disposition personnalisée pour le spinner. Je pense que le XML suivant pourrait vous donner une idée.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="3dip"> 

    <TextView 
     android:id="@+id/number" 
     android:padding="3dip" 
     android:layout_marginTop="2dip" 
     android:layout_marginLeft="5dip" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 
+0

L'exception illégale est levée et demande la mise en page 'TextView' uniquement. Avez-vous un échantillon de travail par hasard? – rupinderjeet

0

Il suffit d'utiliser GIMP comme éditeur d'image et changer la couleur d'arrière-plan et la frontière avec une couleur que vous aimez.

Par exemple, je l'ai fait cette image en éditant un existant que je trouve sur Internet: http://sdrv.ms/1lRkTbG

3
<Spinner 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/you_spinner_drawable" /> 

**You can use the below mentioned Drawable to set as background for this spinner**. 

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When disabled --> 
    <item android:state_enabled="false" 
     android:drawable="@drawable/your_disabled_spinner_drawable" /> 
    <!-- When selected --> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/your_selected_spinner_drawable" /> 
    <!-- When not selected--> 
    <item 
     android:drawable="@drawable/your_default_spinner_drawable" /> 
</selector> 
Questions connexes