繁体   English   中英

Android的argb方法有问题

[英]Having issues with argb method with Android

我试图从http://developer.android.com/reference/android/graphics/Color.html中找出如何使用argb方法。

我已经阅读了多次,但仍然无法使该应用程序正常工作。 我试图获取“视图”小部件以显示通过移动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;

}

}

您的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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM