2016-10-17 21 views
0

Ich habe einen Spinner in meiner App, die ich eine benutzerdefinierte Hintergrundfarbe UND benutzerdefinierte Dreiecksfarbe haben möchte.Android Spinner Hintergrundfarbe und Dreieck Farbe

Einstellung ist nicht das Problem, aber die Kombination funktioniert nicht. Dies ist mein aktueller Code

Layout:

<Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/languageSpinner" 
     android:textAlignment="center" 
     /> 

Aktivität:

Spinner languageSpinner = (Spinner) findViewById(R.id.languageSpinner); 
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(this, 
               R.layout.item_spinner_lang, 
               new String[] { "DE", "EN", "SP" }); 
spinnerArrayAdapter.setDropDownViewResource(R.layout.item_spinner_dropdown_lang); 

languageSpinner.setAdapter(spinnerArrayAdapter); 
languageSpinner.setSelection(spinnerArrayAdapter.getPosition(prefLang), false); 
//languageSpinner.setBackgroundColor(someColor); // if I use this, even the triangle has that color and vanishes 
languageSpinner.getBackground().setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP); 
languageSpinner.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); 

item_spinner_lang.xml:

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" 
    android:gravity="center" 
    android:textColor="#000000" 
    android:padding="5dip" 
    /> 

Der Spinner ist zur Zeit weiß. Aber ich möchte, dass es grau, das Dreieck weiß und der Text auch weiß ist. Wie es geht?

Antwort

0

Versuchen Sie einen benutzerdefinierten Hintergrund und Stil für den Spinner mit:

adapter.setDropDownViewResource(R.layout.spinner_item_drop_down); 

spinner_item_drop_down.xml:

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="@style/SpinnerItemStyle"/> 

SpinnerItemStyle:

<style name="SpinnerItemStyle"> 
    <item name="android:background">@drawable/spinner_bgd</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:layout_centerVertical">true</item> 
    <item name="android:gravity">center_vertical|start</item> 
</style> 

spinner_bgd.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:width="10dp" 
     android:height="10dp"> 

     <bitmap 
      android:gravity="center_vertical|right" 
      android:src="@drawable/ic_custom_arrow" 
      android:tint="@color/gray" /> 

    </item> 

</selector> 
+0

Leider zeigt es kein Dreieck :( –

+0

Was zeigt es gerade? Haben Sie '@ drawable/ic_custom_arrow' ersetzt oder eine Ressource mit diesem Namen hinzugefügt? –

+0

Ja, habe ich. Und es zeigt keinen Pfeil oder ein Dreieck. –

Verwandte Themen