[英]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.