我无法使用下面的代码改变旋转控件的文本大小和颜色:
<Spinner
android:id="@+id/spinner1"
style="@style/submitspinner"
android:layout_weight="2"
android:entries="@array/a_code"
android:prompt="@string/p_code" />
风格:
<style name="submitspinner" parent="@android:TextAppearance.Widget.TextView.SpinnerItem">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_margin">10sp</item>
<item name="android:textColor">@android:color/holo_blue_dark</item>
<item name="android:textSize">@dimen/pt</item>
</style>
它看起来一样,我怎么能增加文本大小和改变旋转器的颜色?
Via XML Only
只是为了帮助其他人,以防他们在XML中静态设置他们的微调项。
上面的答案工作,如果你是通过代码创建你的Spinner,但如果你设置你的Spinner条目通过XML,即使用android:entries
,那么你可以调整文本大小和其他属性与以下两个主题设置:
在res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- For the resting Spinner style -->
<item name="android:spinnerItemStyle">
@style/spinnerItemStyle
</item>
<!-- For each individual Spinner list item once clicked on -->
<item name="android:spinnerDropDownItemStyle">
@style/spinnerDropDownItemStyle
</item>
</style>
<style name="spinnerItemStyle">
<item name="android:padding">10dp</item>
<item name="android:textSize">20sp</item>
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="spinnerDropDownItemStyle">
<item name="android:padding">20dp</item>
<item name="android:textSize">30sp</item>
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
对于自定义Spinner,您应该创建一个XML,作为Spinner中字符串的模板,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/standard_spinner_format"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/pt"
android:textColor="@android:color/holo_blue_dark"/>
然后,当你在java中创建Spinner适配器时,执行以下操作:
ArrayAdapter<CharSequence> typeAdapter = ArrayAdapter.createFromResource(getActivity(),
R.array.my_spinner_array, R.layout.custom_xml_spinner_layout); //change the last argument here to your xml above.
typeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
自定义旋转器
有一个很好的教程,我曾经用过
http://stephenpengilley.blogspot.be/2013/01/android-custom-spinner-tutorial.html它有你需要的一切。
同样在你的"风格"中有:
<item name="android:layout_margin">10sp</item>
改为10dp
sp = text size
在这里你可以找到更多关于单位的测量
"px", "dp", "dip"one_answers";sp"在Android上吗?
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="@style/spinnerItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5"
android:ellipsize="marquee"
android:layoutDirection="ltr"
android:padding="@dimen/padding_5"
android:singleLine="true"
android:textSize="@dimen/textsize_base" />
adapter?.setDropDownViewResource(R.layout.spinner_text)
spSourceAccount.adapter = adapter