2017-07-19 4 views
0

auf der Anforderung, versuche ich, einen benutzerdefinierten Spinner in meiner Anwendung zu implementieren. Siehe das Bild unten:Benutzerdefinierte Spinner mit anderer Hintergrundfarbe für benutzerdefinierte Dropdown-Symbol

enter image description here

Was ich habe versucht, ist:

<Spinner 
    android:layout_width="@dimen/quoteEntryDialogItemSpinnerWidth" 
    android:layout_height="match_parent" 
    style="@style/spinner_style" 
    /> 

In style.xml:

<style name="spinner_style" > 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:background">@drawable/gradient_spinner</item> 
    <item name="android:layout_margin">10dp</item> 
    <item name="android:paddingLeft">8dp</item> 
    <item name="android:paddingRight">20dp</item> 
    <item name="android:paddingTop">5dp</item> 
    <item name="android:paddingBottom">5dp</item> 
    <item name="android:popupBackground">#DFFFFFFF</item> 
</style> 

In ziehbar/gradient_spinner.xml:

<item><layer-list> 
    <item><shape> 
     <gradient android:angle="90" android:endColor="#535353" android:centerColor="#484848" android:startColor="#323232" android:type="linear" /> 

     <stroke android:width="1dp" android:color="#000000" /> 

     <corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" /> 

     <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> 
    </shape></item> 
    <item ><bitmap android:gravity="end" android:src="@drawable/spinner_arrow" /> 
    </item> 
</layer-list></item> 

Alles, was ich bin immer ein Spinner mit dem gleichen Hintergrund ähnlich dem Drop-Down-Symbol.

Der Hintergrund sowohl der Spinner und das Symbol hat, anders zu sein. Ich kann dieses spezielle Design nicht erreichen. Die meisten anderen Designs haben denselben Hintergrund für den Spinner und den Dropdown-Anker. Bitte helfen Sie. Danke im Voraus.

+1

was haben Sie versucht ?? –

+0

@PriteshVadhiya: warte ich meine Frage bin Aktualisierung –

Antwort

0

In Spinner-Tag Ihrer XML-Datei, setzen

android:background="@drawable/ic_dropdown" 

und ic_dropdown können Ihre PNG-Datei sein.

+0

Eigentlich versuche ich, separate Hintergrundfarben für das Symbol und Spinner Inhaltsteil zu zeigen. –

+0

Zum Einstellen des Hintergrunds können Sie das oben beschriebene tun. Für bestimmte Artikel if (mySpinners aktueller Wert == (item1 || item4)) { mySpinner.setBackgroundColor (red); } –

0

Try left mit dem zweiten Element Hinzufügen der bitmap

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item><layer-list> 
     <item 
      ><shape android:layout_width="wrap_content"> 
      <gradient android:angle="90" android:endColor="#535353" android:centerColor="#484848" android:startColor="#323232" android:type="linear" /> 

      <stroke android:width="1dp" android:color="#000000" /> 

      <corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" /> 

      <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> 
     </shape></item> 
     <item 
      android:left="130dp" 
      > 
      <bitmap android:gravity="end" android:src="@drawable/spinner_arrow" /> 
     </item> 
    </layer-list></item> 
</selector> 

Einwickeln Das heißt, wenn Sie immer noch versuchen wollen diesen Weg zu tun.

Eine weitere gute Möglichkeit ist, zu tun, wie GAGAN vorgeschlagen, die eine 9patch Bild zu machen ist, wo der Pfeil mit fester Größe ist, und der linke Teil ist veränderbar.

Verwandte Themen