як створити власний обертальник, як-от кордон навколо гойдалки з трикутником вниз на правій стороні?

i want to develop custom spinner like line around spinner with triangle at right bottom corner
like following image

enter image description here

for above fig I wrote my custom spinner like a
spinner.xml

 

spinner_background.xml

<?xml version="1.0" encoding="UTF-8"?>

    

        

        

        

         
    
 
 <!-- spinner_ab_default_new_theme_bs -> this image for corner triangle -->

    
        
        

        

        
         
    

and i got output like following image
enter image description here

Я пробував багато, але не досягнувши своєї мети, будь-хто має рішення розробити спініндер як на першому одному зображенні.

Спасибі заздалегідь

38

6 Відповіді

Spinner


style.xml

    

gradient_spinner.xml (in drawable folder)

<?xml version="1.0" encoding="utf-8"?>


    
            
                    

                    

                    

                    
                
            
            
        

  

@drawable/spinner_arrow is your bottom right corner image

99
додано
якщо довжина гвинтівки триває, то трикутник ховається.
додано Автор Anitha, джерело
досконалий це працює!!!
додано Автор Avinash Kumar Pankaj, джерело
Чому форма в селекторі, якщо вона містить лише один елемент?
додано Автор 2Dee, джерело
@KaranThakkar Ви можете встановити будь-яке зображення згідно з вашими потребами, це зображення має відображатись лише стрілкою зі списком
додано Автор Samadhan Medge, джерело
<? xml version = "1.0" encoding = "utf-8"?> android = " schemas.android.com/apk/res/android" ;
додано Автор Samadhan Medge, джерело
@Anitha Будь ласка, перевірте оновлений відповідь на цьому android: додано paddingRight, яке дозволить вирішити вашу проблему
додано Автор Samadhan Medge, джерело
@SatanEnglish це був інший стиль, я його перемістив і об'єднав у spinner_style
додано Автор Samadhan Medge, джерело
@ drawable/spinner_arrow - де ця річ? Я вважаю, що зображення потрібно встановити всередині цього блоку. Не могли б ви допомогти з цим?
додано Автор Karan Thakkar, джерело
Що таке fillWidth_wrapHeight це ще один стиль?
додано Автор SatanEnglish, джерело
Коли мій текст занадто довгий, він перекривається стрілкою спінінера. Будь-які пропозиції про те, щоб уникнути цього?
додано Автор tanay tandon, джерело
@SatanEnglish Я думаю, це стиль із заздалегідь не включено. Він, ймовірно, визначає атрибути layout_width і layout_height і встановлює їх match_parent (а не застарілий fill_parent ) і < code> wrap_content відповідно.
додано Автор ar34z, джерело
Якщо я хочу видалити кордон, просто наведіть стрілку та горизонтальну лінію нижче тексту, які зміни мені потрібно зробити тут?
додано Автор Suhas Patil, джерело
Працює чудово, дякую.
додано Автор Davie, джерело
Я хочу задавати питання, коли при натисканні спінінера цей колір селектора має змінюватися означає змінити стиль. ти маєш уявлення про те, щоб це зробити.
додано Автор nilesh wani, джерело
спасибі Самадхан, твоя відповідь працювала.
додано Автор nilesh wani, джерело

Це просто.

your_layout.xml


У розібраній папці spinner_background.xml

<?xml version="1.0" encoding="utf-8"?>

  
    
        
            
            

            

            
            
        
    
    
        
    
  

Попередній перегляд:

Spinner example

10
додано
Дякую за цей чудовий код
додано Автор bebosh, джерело

You can achieve the following by using a single line in your spinner declaration in XML: enter image description here

Just add this: style="@android:style/Widget.Holo.Light.Spinner"

Цей стиль створено за умовчанням в Android. Однак він не містить кордонів навколо нього. Для цього ви б краще шукати щось на google.

Сподіваюся, це допоможе.

UPDATE: AFter a lot of digging I got something which works well for introducing border around spinner.

<?xml version="1.0" encoding="utf-8"?>

    
        
            
            
            
            
        
    

Помістіть його в розтягувальну папку та використовуйте її як фон для поворотника. Подобається це:



        

    
4
додано

Є два способи цього досягти.

1 - Як вже запропоновано, ви можете встановити фон вашого веретена як користувальницький 9 патч-зображення з усіма внесеними в нього коригуваннями.

android:background="@drawable/btn_dropdown" 
android:clickable="true"
android:dropDownVerticalOffset="-10dip"
android:dropDownHorizontalOffset="0dip"
android:gravity="center"

If you want your Spinner to show With various different background colors i would recommend making the drop down image transparent, & loading that spinner in a relative layout with your color set in.

btn _dropdown як:










де різні стани pngвизначать ваші різні держави spinner seleti

1
додано

Щоб змінити тільки "фон" (додати кути, змінити колір, ....), ви можете помістити його в FrameLayout з розшукуваним фоном, інакше вам потрібно зробити дев'ять фонових патчів, щоб не втратити стрілку для стрілки. Фон Spinner прозорий.

0
додано

Ви можете спроектувати простий дев'ятипатч png зображення і використовувати його як фон спініндер Використовуючи GIMP, ви можете помістити обидві границі та правий трикутник у зображення.

0
додано
оголосити зображення дев'яти піктограмами у вигляді фону . Або якщо вам потрібні два фони для режиму натискання/вгору, ви можете оголосити свої дев'ять патчів у форматі xml, як тут: tech.chitgoks.com/2011/06/25/change-spinner-style-in-android
додано Автор alrama, джерело
спасибі, але чи можу я зробити через код?
додано Автор nilesh wani, джерело
android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.