查看setBackgroundColor无法运行android

时间:2015-02-04 15:19:05

标签: android

我在设置视图的背景颜色时遇到问题(注意:所有元素都是View)

public class MainActivity extends ActionBarActivity {
    final Context context = this;

    //Original Colors (Hardcodeded for nice looks)
    int r1c = Color.parseColor("#ff00eeff");
    int r2c = Color.parseColor("#ff21ff2e");

    //Final Colors Random
    int r1f = randomColor();
    int r2f = randomColor();

    //Get int for progress
    int progress = 0;

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

        final View r1 = (View) findViewById(R.id.r1);
        final View r2 = (View) findViewById(R.id.r2);

        final SeekBar bar = (SeekBar) findViewById(R.id.seekBar);
        bar.setProgress(0);
        bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {}

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {}

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {                
                progress = bar.getProgress();
                updateColors(r1,r1c,r1f);
                updateColors(r2,r2c,r2f);

                //updateColors(r1,r1c,r1f); Grey in this case TODO automatic
            }

        });
    }

    public void updateColors(View v, int ogcolor, int fcolor) {
        ArgbEvaluator getColorAtPos = new ArgbEvaluator();

        float percent = (float) progress / 100; //Does this return float expected between 0.0 and 1.0 ???? Im new to java so not sure
        v.setBackgroundColor((Integer) getColorAtPos.evaluate(percent, ogcolor, fcolor));
        v.invalidate();
    }

    int randomColor() {
        Random rand = new Random();
        int r = (int) rand.nextInt(255);
        int g = (int) rand.nextInt(255);
        int b = (int) rand.nextInt(255);
        int color = Color.argb(255,r, g, b);
        return color;
    }

}

我在代码中的评论中描述最多,但是再一次,当我移动seekBar时,onProgressChanged被成功调用,同时调用updatecolors,但我无法调用看到活动的颜色变化。

0 个答案:

没有答案