0

http://developer.android.com/reference/android/graphics/Color.htmlからargbメソッドを使用する方法を理解しようとしています。

何度も読みましたが、まだこのアプリを動作させることができません。View ウィジェットに 4 つのスライダーを動かして作成した色を表示させようとしていますが、スライダーをどこに置いても色が表示されません。argb メソッドが値を返し、colorValueそれを色として使用できると思いましたか? 任意の提案をいただければ幸いです!

私のメインクラスは次のようになります。

public class ColorChooserActivity extends Activity
implements OnSeekBarChangeListener {
    //variables
private SeekBar redSeekBar;
private SeekBar greenSeekBar;
private SeekBar blueSeekBar;
private SeekBar alphaSeekBar;
private View colorView;
private TextView colorTextView;

//instanced variables
private static int colorValue = 0;
private int RedValue = 0;
private int GreenValue = 0;
private int BlueValue =0;
private int AlphaValue =0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_color_chooser);

    //reference to widgets
    redSeekBar = (SeekBar) findViewById(R.id.redSeekBar);
    greenSeekBar = (SeekBar) findViewById(R.id.greenSeekBar);
    blueSeekBar = (SeekBar) findViewById(R.id.blueSeekBar);
    alphaSeekBar = (SeekBar) findViewById(R.id.alphaSeekBar);
    colorView = (View) findViewById(R.id.colorView);
    colorTextView = (TextView) findViewById(R.id.colorTextView);

    //listener
    redSeekBar.setOnSeekBarChangeListener(this);
    greenSeekBar.setOnSeekBarChangeListener(this);
    blueSeekBar.setOnSeekBarChangeListener(this);
    alphaSeekBar.setOnSeekBarChangeListener(this);
}

@Override
public void onProgressChanged(SeekBar seekBar, int progress, 
            boolean fromUser) {
    int RedValue = redSeekBar.getProgress();
    int GreenValue = greenSeekBar.getProgress();
    int BlueValue = blueSeekBar.getProgress();
    int AlphaValue = alphaSeekBar.getProgress();

    argb(AlphaValue, RedValue, GreenValue, BlueValue);

    colorView.setBackgroundColor(colorValue);

    String rgbValue = Integer.toString(progress);

    colorTextView.setText(rgbValue);

}
@Override 
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar){
}

public static int argb (int alpha, int red, int green, int blue){
    return colorValue;

}

}

4

1 に答える 1

1

あなたcolorValueは常に0です!

交換argb(AlphaValue, RedValue, GreenValue, BlueValue);

colorValue = argb(AlphaValue, RedValue, GreenValue, BlueValue);

編集:

私は今気づきました:あなたのargbメソッドは何もしません!パラメータを適切に使用していません。

それを次のように置き換えます。

public int argb (int alpha, int red, int green, int blue) {
    return Color.argb(alpha, red, green, blue);
}
于 2014-03-10T00:11:16.447 に答える