2014年10月31日金曜日

Android : NumberPicker の Divider の色を変える


こんな感じに、緑色にしてみました。
java.lang.reflect を使って NumberPicker の mSelectionDivider に独自の drawable を設定することで実現します。

Class<?> numberPickerClass = null;
try{
    numberPickerClass = Class.forName("android.widget.NumberPicker");
} catch (ClassNotFoundException e) {
    Log.e(LOGTAG, e.toString());
}

if(numberPickerClass != null){
    java.lang.reflect.Field selectionDivider;
    try {
        selectionDivider = numberPickerClass.getDeclaredField("mSelectionDivider");
        selectionDivider.setAccessible(true);
        Drawable drawable = getResources().getDrawable(R.drawable.numberpicker_selection_divider);
        selectionDivider.set(number_picker, drawable);
    } catch (NoSuchFieldException e) {
        Log.e(LOGTAG, e.toString());
    } catch (IllegalAccessException e) {
        Log.e(LOGTAG, e.toString());
    }
}

drawable には元の drawable のように右のような 9.patch を使っています →

広告 : 良いAndroidアプリを作る139の鉄則

0 件のコメント:

コメントを投稿