Изменение макета / дизайна Android Spinner - PullRequest
12 голосов
/ 14 января 2010

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

Спасибо!

Ответы [ 2 ]

12 голосов
/ 14 января 2010

Все это одно изображение PNG с 9 патчами. Я изменил весь внешний вид блесны раньше, заменив изображения. Смотрите эту страницу: http://androiddrawableexplorer.appspot.com/

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

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

0 голосов
/ 21 мая 2012

Кроме того, вы можете поместить макет «спиннер» в 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...