0
我试图创建一个自定义视图,通过蓝牙从我的arduino中读取颜色,并在手机屏幕上显示该颜色。通过我创建的线程,我可以成功地从蓝牙设备读取颜色,以便不断从arduino读取数据。我也有一个环路上运行的另一个线程,看看是否颜色发生了变化,如果有,相应地改变全局变量chosenColor:Android重绘矩形填充白色
while(true){
int newColor = device.activeSensorColor;
if(chosenColor != newColor){
chosenColor = newColor;
invalidater.post(invalidating);
}
}
它已经做到了这一点之后,它使用一个处理器上的UI线程调用invalidate();并重新绘制表单。总是呼叫以下空白:
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawRect(bounds, boxPaint);
samplePaint.setColor(chosenColor);
canvas.drawRect(colorSample, samplePaint);
canvas.drawText(buttonText, (width - height)/2 + height, height/2, textPaint);
canvas.drawRect(sampleBorder, borderPaint);
}
而且这将无可避免地将框的颜色设置为白色。我一直试图弄清楚这个问题好几个小时,但是每次我尝试一些东西时,无论从arduino中拾取什么颜色,示例矩形的颜色都是白色的。有没有人有任何想法?谢谢。