как я могу изменить внешний вид кнопки счетчика? Пока мне просто нужно уменьшить размер шрифта. Просто кнопка, список в порядке. Спасибо
Изменить стиль кнопки Spinner в Android
Ответы (3)
Как изменить стиль шрифта для элемента счетчика
person
Community
schedule
21.03.2011
Не предметы, а только кнопка
- person xain; 21.03.2011
Это правильный ответ. Реализуйте собственный адаптер и переопределите getView. Пример здесь: gist.github.com/897233 (отредактировано ApiDemos)
- person Sergey Glotov; 01.04.2011
Для этого вам нужно создать новый макет, который определяет внешний вид вашего счетчика, а именно. spinner_item. Вы можете использовать его следующим образом. Таким образом, свойства, такие как фон, виды, включенные в счетчик, могут быть изменены.
ImageSpinnerAdapter adapterForImageSpinner = new ImageSpinnerAdapter(this, true,
spinnerData, R.layout.spinner_view, new String[] { "Name",
"Icon" }, new int[] {R.id.imageNameSpinner,
R.id.imageIconSpinner }, spinnerImages);
Это будет использоваться в адаптере следующим образом:
public class ImageSpinnerAdapter extends SimpleAdapter {
LayoutInflater mInflater;
private List<? extends Map<String, ?>> dataRecieved;
private int[] spinnerImagesReceived;
@SuppressWarnings("unused")
private HashMap<String, Object> data;
private boolean displayItems;
private int imageId;
private String imageText;
public ImageSpinnerAdapter(Context context, boolean displayItems,
List<? extends Map<String, ?>> data, int resource, String[] from,
int[] to, int[] spinnerImages) {
super(context, data, resource, from, to);
this.displayItems = displayItems;
dataRecieved = data;
mInflater = LayoutInflater.from(context);
spinnerImagesReceived = spinnerImages;
}
@SuppressWarnings("unchecked")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.spinner_view, null);
}
data = (HashMap<String, Object>) getItem(position);
if (displayItems) {
setImageId(spinnerImagesReceived[position]);
setImageText((String) dataRecieved.get(position).get("Name"));
} else {
setImageText("");
setImageId(R.drawable.invalid);
}
((ImageView) convertView.findViewById(R.id.imageIconSpinner))
.setBackgroundResource(getImageId());
((TextView) convertView.findViewById(R.id.imageNameSpinner))
.setText(getImageText());
return convertView;
}
}
person
Vicky Kapadia
schedule
29.03.2011
Если вы хотите изменить фактический размер счетчика, сделать его менее высоким, просто используйте layout_height в своем xml:
Android: layout_height = "40dip"
Меньше того, кнопка со стрелкой будет выглядеть не очень хорошо.
person
Horaceman
schedule
25.03.2011