在我的Android应用程序中,我正在使用旋转器,我已经从SQLite数据库加载数据到旋转器中,它工作正常。这是它的代码。
Spinner spinner = (Spinner) this.findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, list);
cursor.moveToFirst();
list.add("All Lists");
if (cursor.getCount() > 0) {
for (int i = 0; i < cursor.getCount(); i++) {
keyList[i] = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.KEYWORD));
list.add(keyList[i]);
cursor.moveToNext();
}
}
Database.close();
cursor.close();
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
现在我想要改变旋转数据的文本颜色和文本大小。我在XML文件上使用了以下XML行作为旋转标记,但它不起作用。
android:textColor="@android:color/white"
android:textSize="11dp"
我如何改变我的转轮的文本颜色和文本大小?
而不是做一个自定义布局来获得一个小尺寸,如果你想使用Android内部的小尺寸布局,你应该使用:
“android.R.layout。simple_gallery_item而不是“android. r.b ayout.simple_spinner_item”。
ArrayAdapter<CharSequence> madaptor = ArrayAdapter
.createFromResource(rootView.getContext(),
R.array.String_visitor,
android.R.layout.simple_gallery_item);
它可以减小纺纱器的布局尺寸。这只是个简单的把戏。
如果你想减小下拉列表的大小,使用以下命令:
madaptor.setDropDownViewResource(android.R.layout.simple_gallery_item);
为旋转器项创建自定义XML文件。
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"
android:textSize="20sp"
android:gravity="left"
android:textColor="#FF0000"
android:padding="5dip"
/>
现在使用这个文件来显示你的旋转项,比如:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);
您不需要设置下拉资源。它将只使用spinner_item.xml来在spinner中显示您的项目。
可以通过重写getView方法更改文本颜色,如下所示:
new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, list()){
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
//change the color to which ever you want
((CheckedTextView) view).setTextColor(Color.RED);
//change the size to which ever you want
((CheckedTextView) view).setTextSize(5);
//for using sp values use setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
return view;
}
}
而不是做一个自定义布局来获得一个小尺寸,如果你想使用Android内部的小尺寸布局,你应该使用:
“android.R.layout。simple_gallery_item而不是“android. r.b ayout.simple_spinner_item”。
ArrayAdapter<CharSequence> madaptor = ArrayAdapter
.createFromResource(rootView.getContext(),
R.array.String_visitor,
android.R.layout.simple_gallery_item);
它可以减小纺纱器的布局尺寸。这只是个简单的把戏。
如果你想减小下拉列表的大小,使用以下命令:
madaptor.setDropDownViewResource(android.R.layout.simple_gallery_item);
如果您使用的是android.support.v7.widget。AppCompatSpinner是使用样式的最简单的测试解决方案:
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spefcialFx"
style="@style/Widget.AppCompat.Spinner.Underlined"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:theme="@style/Spinner"
android:entries="@array/special_fx_arrays"
android:textSize="@dimen/text_size_normal"></android.support.v7.widget.AppCompatSpinner>
以及风格:
<style name="Spinner" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
<item name="android:paddingStart">0dp</item>
<item name="android:paddingEnd">0dp</item>
<item name="android:textColor">@color/white</item>
<item name="android:backgroundTint">@color/red</item>
<item name="android:textSize">14sp</item>
</style>
唯一的缺点是android:backgroundTint为下拉箭头和下拉背景设置颜色。
如果所有的旋转框对它们的TextView项可能有相同的文本颜色,另一种方法是为旋转框下拉项使用自定义样式:
在res /价值/ styles.xml:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
</style>
<style name="mySpinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
<item name="android:textColor">@color/my_spinner_text_color</item>
</style>
</resources>
并在res/values/colors.xml中定义自定义颜色:
<color name="my_spinner_text_color">#808080</color>