android中surfaceview画布中颜色控制,Android SurfaceView Canvas呈现错误的颜色

在Android SurfaceView中,开发者遇到颜色控制问题,SurfaceView Canvas的颜色实际渲染与预期不符。尽管颜色代码设置为#28252C,但实际显示为#292429。尝试了各种方法,包括改变PorterDuff.Mode和使用不同颜色方法,但问题仍未解决。当设置SurfaceView的LAYER_TYPE时,颜色显示正确,但触摸事件的线条绘制不再工作。开发者寻求解决方案。
摘要由CSDN通过智能技术生成

Hej伙计们,所以这是大约7年来我第一次找不到编程问题的答案,也没有接近问题所在的问题.

好吧,让我们从一开始就开始吧.我已经在Android SurfaceView上关注了一些教程和示例,以及如何在另一个线程中绘制其Canvas.到目前为止,没有问题,一切都像我期望的那样.我正在研究一个场景,我在SurfaceView周围有一些填充,这意味着父视图的背景(一个FrameLayout)呈现在前面提到的SurfaceView周围.事情变得有趣,因为我使用与父背景相同的颜色来清除SurfaceView的Canvas.

root(= parent)FrameLayout在主题中设置了背景

< item name =“android:windowBackground”> @ color / palette_primary_dark< / item>

这在colors.xml中定义

< color name =“palette_primary_dark”>#28252C< / color>

在我的线程构造函数中,我将相同的颜色检索到全局变量mClearColor中

mClearColor = ContextCompat.getColor(context,R.color.palette_primary_dark);

上下文是我从SurfaceView收到的上下文.

以下代码是在我的线程中运行的渲染循环

@Override

public void run() {

while (mShouldRun) {

Canvas canvas = null;

try {

canvas = mSurfaceHolder.lockCanvas();

synchronized

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值