スピナーのフォント サイズを小さくするにはどうすればよいですか? テキストが半分にカットされるため、スピナーのサイズを 35 ピクセルに縮小しました。
それ、どうやったら出来るの?また、事前に何も選択したくありません。
デフォルトのテキストは"select some value"
.
いくつかのテストの後、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);
Spinner で使用する TextView のデザインを変更するだけです。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>
変化
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);
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);