XMLにおいて、色を変える方法については、次のサイトで紹介されています。
AndroidのProgressBar / SeekBarに画像を使う
Cool android SeekBar, custom made by me
これらを参考にさせて頂いて、下記のとおり、実行時に色を変えるプログラムを作ってみました。
sb = (SeekBar)llMain.findViewById(R.id.SeekBar_Volume);
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){
/*
* LightではSeekBarが見えにくいので、色を着ける。
* HONEYCOMB未満でこれを実行すると、即時の描画が行われない。
* ClipDrawableは、描き変えや、読み出しを行えないため、新規に作成する。
*/
LayerDrawable ld = (LayerDrawable)sb.getProgressDrawable();
ColorDrawable dBlue = new ColorDrawable(0xff4f4fdf);
ClipDrawable cd = new ClipDrawable(dBlue, 0x03, ClipDrawable.HORIZONTAL);
ld.setDrawableByLayerId(android.R.id.progress, cd);
}
Android3.0以上から、ホロというテーマが使われています。私はテーマをLightに変えました。すると、何故か、SeekBarに色が付かなくなりました。そこで、色を着けてやろうということです。
本来なら、テーマにおいて上記と同等の修正をすべきでしょう。テーマの技法を使って色を変える方法が分かる人は、各自のブログにでも載せておきましょう。
0 件のコメント:
コメントを投稿