【问题标题】:Having issues with argb method with AndroidAndroid 的 argb 方法存在问题
【发布时间】:2014-03-10 00:06:12
【问题描述】:

我试图弄清楚如何使用来自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;

}

}

【问题讨论】:

    标签: java android argb android-seekbar


    【解决方案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);
    }
    

    【讨论】:

    • 试过没有用。我在想也许我需要在 setBackgroundColor 将它视为颜色之前对 colorValue 做一些事情? ...我不知道,我完全不知所措!
    猜你喜欢
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多