我正在使用我已定义并正在工作的三个数字选择器,从0到255,代表R G和B值。我无法让它改变背景颜色。以下是我到目前为止的情况:
package com.example.colorpicker;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.NumberPicker;
import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.TextView;
import android.graphics.Color;
public class MainActivity extends ActionBarActivity
{
NumberPicker NPR, NPG, NPB;
TextView textRed, textGreen, textBlue;
int BGColor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NPR = (NumberPicker) findViewById(R.id.numberPicker1);
NPR.setMinValue(0); NPR.setMaxValue(255);
NPR.setOnValueChangedListener(null);
NPB = (NumberPicker) findViewById(R.id.numberPicker2);
NPB.setMinValue(0); NPB.setMaxValue(255);
NPB.setOnValueChangedListener(null);
NPG = (NumberPicker) findViewById(R.id.numberPicker3);
NPG.setMinValue(0); NPG.setMaxValue(255);
NPG.setOnValueChangedListener(null);
BGColor = Color.rgb(NPR.getValue(), NPB.getValue(), NPG.getValue());
//.setBackgroundColor(BGColor);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
我感觉我使用的是onValueChangeListener错误。我之前评论过的那行是
v.setBackgroundColor(BGColor)
与
View.v;
主要定义。然而,这只会导致我的应用程序在启动时立即崩溃。我也觉得我的布局缺少一些东西可以使背景颜色初始化?如果有人愿意帮助我开展这项工作,并向我解释,我将非常感激。提前谢谢。