2010-07-25 3 views
5

Как уменьшить размер шрифта моего счетчика? Я уменьшил размер прядильщика до 35 пикселей, из-за чего мой текст обрезается пополам.Размер текста счетчика

Как это сделать? Также я не хочу, чтобы все было выбрано заранее.

Текст по умолчанию должен быть "select some value".

+0

Я не знаю много о spinner, но если я хорошо помню, он использует ArrayAdapter для отображения элементов. Тогда я полагаю, что вы можете подклассифицировать его и переопределить getView? Это просто идея, я ее не тестировал. Я пойду на это. – Sephy

ответ

22

после некоторых тестов существует более простой способ, чем подкласс ArrayAdapter. Изменение

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,android.R.layout.simple_spinner_item);//this is from the tutorial, adapt with your line 

этой линии:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.textview); 

Вы просто должны изменить дизайн TextView вы используете в Spinner. Я просто попытался с этим, как макет textview.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:text="@+id/TextView01" android:id="@+id/TextView01" 
android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp"></TextView> 
10

Изменение

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,android.R.layout.simple_spinner_item); 

в ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.textview);

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

adapter.setDropDownViewResource(android.R.layout.simple_spinner_item) to 


adapter.setDropDownViewResource(R.layout.textview); 
4

определяют 2 XML: R.layout.spinner_item, R.layout.spinner_dropdown_item

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.spinner_item); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 

spinner_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="?android:attr/spinnerItemStyle" 
    android:singleLine="true" 
    android:ellipsize="marquee" 
    android:textSize="18sp" > 
</TextView> 

spinner_dropdown_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:ellipsize="marquee" 
    android:textSize="18sp" /> 

-------------------------------- Обновление --------------- -----------------------

код остальное:

final ActionBar actionBar = getActivity().getActionBar(); 
RelativeLayout relative = new RelativeLayout(getActivity()); 
Spinner spinner = new Spinner(getActivity()); 
spinner.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); 

relative.addView(spinner); 
actionBar.setDisplayShowCustomEnabled(true); 
actionBar.setCustomView(relative); 

// Set adapter and listener 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.spinner_item); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 
+1

Как только эти два файла XML определены, как они включаются в остальную часть кода? – Rich

0

Установка android:scaleX и anrdoid:scaleY кажется как легкий способ изменить размер шрифта.

Смежные вопросы