Intereting Posts
Android: есть произвольный просмотр слайда под другим представлением, как и клавиатура программного обеспечения Добавьте галочку (✔) в string.xml Статус Asynctask всегда показывает запуск Ошибка AsyncTask и Looper.prepare () Может ли Android-приложение иметь другое имя в зависимости от языка / носителя? Android Nine-patch эквивалент для других платформ В Android, как измерять трафик данных для каждого приложения на приложение Невозможно обновить build.gradle для использования библиотеки поддержки 23.0.1 Неизвестная кодировка для матрицы данных, закодированная с помощью сканера штрих-кода Google (видение) Отправка полезной нагрузки пар ключ-значение в Google Analytics Как приложение Android SuperUser обнаруживает, что приложение запрашивает root? Время компиляции Android с гнездом чрезвычайно медленное Как сохранить изображение в общих предпочтениях в Android | Общая проблема с предпочтением в Android с изображением Android NotificationManager, дающий мне ошибку "no valid small icon" Android Studio 2.0 работает очень медленно

Как добавить изображение в spinner в Android

Я хочу добавить изображение в spinner. Я пробовал:

<Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/myImage" /> 

Но с этим кодом знак стрелки вниз на spinner становится невидимым, пожалуйста, скажите мне, как решить эту проблему !! Я хочу сделать точно как на этом изображении

Введите описание изображения здесь

Solutions Collecting From Web of "Как добавить изображение в spinner в Android"

Создайте row.xml в /res/layout/ . Чтобы настроить макет для каждой строки.

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon"/> <TextView android:id="@+id/weekofday" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> 

И в файле Java добавьте этот код как

  Spinner mySpinner = (Spinner)findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, YourArrayHere); mySpinner.setAdapter(adapter); 

В моем случае я только что использовал стандартную компоновку для элементов spinner и немного переопределить ArrayAdapter.

 private class PaymentTypeArrayAdapter extends ArrayAdapter<PaymentType> { public PaymentTypeArrayAdapter(Context context) { super(context, android.R.layout.simple_spinner_item); addAll(PaymentType.getPaymentTypes()); } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView label = (TextView) super.getView(position, convertView, parent); PaymentType paymentType = getItem(position); label.setText(paymentType.getStringResourceId()); label.setCompoundDrawablesWithIntrinsicBounds(0, 0, paymentType. getImageResourceId(), 0); return label; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { TextView label = (TextView) super.getDropDownView(position, convertView, parent); PaymentType paymentType = getItem(position); label.setText(paymentType.getStringResourceId()); label.setCompoundDrawablesWithIntrinsicBounds(0, 0, paymentType. getImageResourceId(), 0); return label; } } 

Затем настройте адаптер для вашего счетчика:

 mPaymentTypeArrayAdapter = new PaymentTypeArrayAdapter(getContext()); setAdapter(mPaymentTypeArrayAdapter); 

В этом подходе ключевым моментом было использование setCompoundDrawablesWithIntrinsicBounds для метки