开发者

Text Size of a Spinner

开发者 https://www.devze.com 2023-01-08 14:14 出处:网络
开发者_如何学运维How can I decrease the font size of my spinner?I have reduced the spinner size to 35 pix because of which my text gets cut in half.

开发者_如何学运维How can I decrease the font size of my spinner? I have reduced the spinner size to 35 pix because of which my text gets cut in half.

How do i do that? Also I dont want anything to be selected beforehand.

Default text should be "select some value".


after some tests, there is an easier way than subclassing ArrayAdapter. Change the

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

to this line :

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

You just have to change the design of the TextView you use of the Spinner. I just tried with this, as the layout of the 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>


Changing

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

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

will change only the item which is visible by default on the spinner. If we need the same style to be applied on all the items in the spinner, we need to change

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


adapter.setDropDownViewResource(R.layout.textview);


define 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" />

--------------------------------Update--------------------------------------

The rest code:

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);


Setting android:scaleX and anrdoid:scaleY seems like an easy way to change the spinner font size.

0

精彩评论

暂无评论...
验证码 换一张
取 消