私はいくつかのスライダ付きのアプリを持っています。目的は、接続しているLEDライトの色を変更することです。私はLEDの色の近似を与えるために放射状の勾配の色を変更する関数を持つUIを実装しています。Android:GradientDrawableちょうど黒を描く
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:id="@+id/radGrad"
android:centerColor="#ecd473"
android:centerY="0%"
android:centerX="0%"
android:endColor="#000000"
android:gradientRadius="600"
android:innerRadiusRatio="2"
android:startColor="#f9f7a8"
android:type="radial" >
</gradient>
</shape>
と私の活動のレイアウトで:
私はこのようなデフォルトの背景を定義することができ
これは、このようになります背景として表示されます。enter image description here
私がしようとしていますピクチャ内のスライダで選択された値で背景を上書きします。基本的に、左上隅に放射状のグラデーションを持つ同じ背景イメージをさまざまな色で作成したいが、私は立ち往生している。ここで
私のJavaコードがOnCreate関数(後に、である)
View backgroundView;
GradientDrawable background;
background = this.getWindow().getDecorView();
とコードの残りの部分私は、送信ボタンを選択:どんなに私はbackground.setColorsを養う何色
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
color = new int[3];
color[0]=0xecd473; //these values will eventually be changed by the slider
color[1]=0xf9f7a8;
color[2]=0xffffff;
background = new GradientDrawable(GradientDrawable.Orientation.BL_TR, color);
background.mutate();
background.setGradientType(GradientDrawable.RADIAL_GRADIENT);
background.setGradientRadius(600);
background.setGradientCenter(0,0);
background.setShape(GradientDrawable.RECTANGLE);
background.setCornerRadius(50f);
background.setColors(color);
backgroundView.setBackground(background);
progressTextView.setText("Hue: " + hueValue + " Brightness: " + brightValue + " Saturation: " + satValue);
}
});
}
を(色)をクリックすると背景が黒く表示されます。私は何か重要なことを見逃しているように感じ、他の例は助けになりませんでした。私はこれがはっきりしていることを望む