Подтвердить что ты не робот

Изменение компоновки/дизайна Android Spinner

Я пытаюсь изменить дизайн Spinner виджет. Я могу изменить фон, но я не могу найти способ изменить значок стрелки на правой стороне. Есть ли способ сделать это?

Спасибо!

4b9b3361

Ответ 1

Все это одно изображение patch p patch. Я изменил весь вид прядильщиков, заменив изображения. См. Эту страницу: http://androiddrawableexplorer.appspot.com/

В частности, посмотрите на btn_dropdown_normal.9, btn_dropdown_pressed.9, btn_dropdown_selected.9 и btn_dropdown_disabled.9

Вам просто нужно предоставить свои собственные версии этих изображений.

Ответ 2

Кроме того, вы можете разместить макет "прядильный бар" в FrameLayout вместе с реальным счетчиком, но установить его невидимым:

    <FrameLayout 
        android:layout_width="fill_parent"
        android:layout_height="32dip"
        >
        <Spinner
            android:id="@+id/theSpinner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:visibility="invisible"
           />

       <RelativeLayout
         android:layout_width="fill_parent"
         android:layout_height="32dip"
         android:background="@drawable/my_background"
         android:padding="6dip"
         android:clickable="true"
         android:onClick="spinnerBarReplacementClicked"
       >
       <ImageView 
          android:id="@+id/replacementSelectImg"
          android:layout_height="wrap_content"
          android:layout_width="wrap_content"
          android:layout_alignParentRight="true"   
          android:layout_centerVertical="true"     
          android:src="@drawable/my_drawable"
          />    

       <TextView
        android:id="@+id/replacementSelectText"        
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="4dip"
        android:layout_toLeftOf="@id/replacementSelectImg"
        android:textColor="#000000"
        android:textSize="14sp"
        android:ellipsize="marquee"
        android:singleLine="true"
        />

        </RelativeLayout>     
    </FrameLayout>

и передать клики с вашего макета на реальный счетчик

    private Spinner mSpinner;

    mSpinner = (Spinner) findViewById(R.id.theSpinner);

    public void spinnerBarReplacementClicked(View pV){
        mSpinner.performClick();
}