SeekBarの見た目をコードで設定
SeekBarの見た目(style)を変更については以前書いたことがありますが、
過去記事
それをJavaのソースコードから設定してやりましょう。といった内容です。
本来は、デフォルトの一部をうわがいてやるといった手法がとれればいいのですが・・・
そのデフォルトが常に同じ構造をもっているのか?が心配なのでやめておきます。
※getProgressDialogして、LayerDrawableにキャストして・・・って手順
結局はxmlで定義していた部分をそれぞれ対応したクラスを使って設定していく。
そんな内容です。
Volumerの要望であったのですが、指定させるのが面倒っぽいので、どうせならパターンを用意して選択
といったほうが無難かなぁと落ち着いたのですが、せっかくなので。
グラデーションが少しわかりにくいかもしれませんが、こんな感じ
Tweet
過去記事
それをJavaのソースコードから設定してやりましょう。といった内容です。
本来は、デフォルトの一部をうわがいてやるといった手法がとれればいいのですが・・・
そのデフォルトが常に同じ構造をもっているのか?が心配なのでやめておきます。
※getProgressDialogして、LayerDrawableにキャストして・・・って手順
結局はxmlで定義していた部分をそれぞれ対応したクラスを使って設定していく。
そんな内容です。
Volumerの要望であったのですが、指定させるのが面倒っぽいので、どうせならパターンを用意して選択
といったほうが無難かなぁと落ち着いたのですが、せっかくなので。
SeekBar bar = new SeekBar(this);
//背景部分を定義
GradientDrawable baseGradientDrawable = new GradientDrawable(
Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#FF0000") ,
Color.parseColor("#CC0000"), Color.parseColor("#FF0000")});
baseGradientDrawable.setCornerRadius(5);
//進捗部分を定義
GradientDrawable surfaceGradientDrawable = new GradientDrawable(
Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#FFFF00") ,
Color.parseColor("#CCCC00"), Color.parseColor("#FFFF00")});
surfaceGradientDrawable.setCornerRadius(5);
ClipDrawable clipDrawable = new ClipDrawable(surfaceGradientDrawable, Gravity.LEFT, ClipDrawable.HORIZONTAL);
LayerDrawable ld = new LayerDrawable(new Drawable[]{baseGradientDrawable, clipDrawable});
グラデーションが少しわかりにくいかもしれませんが、こんな感じ
- 関連記事