android编号选择器文本颜色

时间:2015-11-11 07:28:30

标签: android textcolor numberpicker

我希望数字选择器中的值为白色。 我做了下面的代码,使其默认为黑色。

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,这会使应用程序崩溃。

Number picker text colour

4 个答案:

答案 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()