我希望数字选择器中的值为白色。 我做了下面的代码,使其默认为黑色。
XML代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@layout/gradient_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="25sp"
android:textColor="#fff"
android:textStyle="bold"
android:text="Please select difficulty level"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@drawable/category_seperator"/>
<LinearLayout
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<NumberPicker
android:id="@+id/numberPicker1"
android:layout_width="wrap_content"
android:minWidth="100dp"
android:layout_margin="10dp"
android:layout_height="wrap_content"/>
<!--#019687-->
<Button
android:background="#019687"
android:id="@+id/setting_confirm"
android:layout_width="wrap_content"
android:layout_margin="10dp"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textColor="#fff"
android:padding="15dp"
android:text="OK"/>
</LinearLayout>
</LinearLayout>
Javacode:
final Dialog d = new Dialog(context);
d.requestWindowFeature(Window.FEATURE_NO_TITLE);
d.setContentView(R.layout.dialog_settings);
final NumberPicker n = (NumberPicker) d.findViewById(R.id.numberPicker1);
String easy = Html.fromHtml("<font color=\"white\">EASY</font>").toString();
String medium = Html.fromHtml("<font color=\"white\">MEDIUM</font>")+"";
String hard = Html.fromHtml("<font color=\"white\">HARD</font>")+"";
String tough = Html.fromHtml("<font color=\"white\">TOUGH</font>")+"";
// String[] a = {"EASY", "MEDIUM", "HARD", "TOUGH"};
String [ ] a = {easy,medium,hard,tough};
n.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
n.setDisplayedValues(a);
n.setMaxValue(3);
n.setMinValue(0);
n.setWrapSelectorWheel(true);
d.show();
我尝试使用html更改颜色,如代码所示。 我还尝试使用getChildAt更改颜色并将其转换为TextView,这会使应用程序崩溃。
答案 0 :(得分:3)
根据我们在评论中的讨论,代码here需要Color
类中的参数。使用此类传递颜色。
答案 1 :(得分:1)
只需在style.xml文件中使用 textColorPrimary 属性:
<style name="Theme.MyTheme" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
<item name="android:textColorPrimary">#FFFFFF</item>
答案 2 :(得分:1)
复制 Change the text color of NumberPicker
颜色参数应来自Color
类,例如Color.WHITE
import java.lang.reflect.Field;
public static boolean setNumberPickerTextColor(NumberPicker numberPicker, int color)
{
final int count = numberPicker.getChildCount();
for(int i = 0; i < count; i++){
View child = numberPicker.getChildAt(i);
if(child instanceof EditText){
try{
Field selectorWheelPaintField = numberPicker.getClass()
.getDeclaredField("mSelectorWheelPaint");
selectorWheelPaintField.setAccessible(true);
((Paint)selectorWheelPaintField.get(numberPicker)).setColor(color);
((EditText)child).setTextColor(color);
numberPicker.invalidate();
return true;
}
catch(NoSuchFieldException e){
Log.w("setNumberPickerTextColor", e);
}
catch(IllegalAccessException e){
Log.w("setNumberPickerTextColor", e);
}
catch(IllegalArgumentException e){
Log.w("setNumberPickerTextColor", e);
}
}
}
return false;
}
答案 3 :(得分:0)
我正在使用 Kotlin:
只需以编程方式设置数字选择器的颜色:
numberPicker.textColor = 0xAARRGGBB.toInt()
示例:
numberPicker.textColor = 0xAA3068D8.toInt()