私のアプリケーションにうまく収まる簡単なhsvカラーピッカーを実装したいと思います。既知のフォームカラーピッカーのように、他のseekBarsの値に従ってseekBarsの背景を変更したいと思います。SeekBar:ProgressDrawableは最初の進捗の後にのみ表示されます。
しかし、私は活動を開始したとき、私はこの見ています:レイアウト滞在seekBarsの1、私はこの結果を得る(関係なく)の最初のタッチ後と最初のタッチの後
をこのように、さらにタッチで変更されません(私は私のレイアウトに応じて期待しているだろうかでもある、上部の2 seekBarsは20dipであり、以下の図1は、親指ほど高いです):
2番目の画像に見られるように、私はseekBarを最初から持っていたいと思います。ここで
私のレイアウト:onProgressChanged(中OnSeekBarChangeListenerで
<SeekBar
android:id="@+id/SbColorPickerHue"
android:layout_width="match_parent"
android:layout_height="20dip"
android:max="360"
android:thumb="@drawable/colorpickerthumb" />
<SeekBar
android:id="@+id/SbColorPickerSaturation"
android:layout_width="match_parent"
android:layout_height="20dip"
android:max="255"
android:thumb="@drawable/colorpickerthumb"/>
<SeekBar
android:id="@+id/SbColorPickerValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:thumb="@drawable/colorpickerthumb"/>
)と私は安全なあなたに(次の関数を呼び出しています(seekBarsをinitalizeする)のonCreate内のコースの多くのコードのみ色相グラデーション)が示されている:私はすでに多くの異なるものを試してみました
private void setGradients() {
mHueGradient = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,mColors);
mHueGradient.setGradientType(GradientDrawable.LINEAR_GRADIENT);
mHueGradient.setCornerRadius(mRadius);
mHueGradient.setStroke(mStrokeWidth, mStrokeColor);
mSbHue.setBackgroundDrawable(mHueGradient);
}
:
- セット目を私はwrap_contentするために一定の高さ(20dp)等にシークバーのいくつかを設定したレイアウトXMLに見られるように倍のonCreate
- の電子勾配はonRescume
- 再び勾配を設定します。行動は少し変わった(写真に見られるように)。しかし、まだ満足していない。
- フォースレイアウト
- シークバーやDrawableの のどちらかを無効に描画可能
結果は常に同じである測定します。
私はここで間違っていますか?私は何かが欠けていますか?
編集1:次のように
はシークバーとのChangeListenerが定義されています
mSbHue = (SeekBar)findViewById(R.id.SbColorPickerHue);
setGradients();
mSbHue.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
setGradients();
}
});
シークバー、リスナー、リスナーコードを宣言するコードを投稿できますか? – slayton
質問に追加しました。 – KarlKarlsom
いくつかのことを試しました。スレッドによってoncreateしてから1秒後にdrawableを更新します。変更はありません。 seekbarをプログラムでビューに追加します。変更はありません。今は完全にアイデアです... – KarlKarlsom