繁体   English   中英

Android重绘矩形填充白色

[英]Android Repainting Rectangle Fills White

我正在尝试创建一个自定义视图,该视图通过蓝牙从arduino中读取颜色并将其显示在手机屏幕上。 我能够通过创建的线程从蓝牙设备成功读取颜色,以不断从arduino读取数据。 我还让另一个线程在循环上运行,以查看该颜色是否已更改以及是否已更改,以相应地更改全局变量selectedColor:

       while(true){
            int newColor = device.activeSensorColor;
            if(chosenColor != newColor){
                chosenColor = newColor;
                invalidater.post(invalidating);
            }
        }

完成此操作后,它将在UI线程上使用Handler来调用invalidate();。 并重新绘制表格。 始终调用以下void:

@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拾取什么颜色,示例矩形的颜色都将变为白色。 有人知道吗? 谢谢。

我知道了! 我简直不敢相信自己如此愚蠢! 从我的arduino中读取颜色后,我使用Color.argb(a,r,g,b)将其保存为整数。 方法。 设备没有向我发送Alpha值,因此该值为零,而我创建的颜色变得透明。 我现在正在使用Color.rgb(r,g,b)方法,这很好用:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM