簡體   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