Android 面罩应倾斜在spedometer帆布上
我浏览了这座很棒的图书馆 他们在画布上创建了一个自定义速度表。简言之,他们在画布背景和前景上添加了两幅图像,并在速度值发生变化时移动前景图像的矩形遮罩 我已尝试自定义ImageLinearGauge的代码,以显示垂直方向的进度,并进行了以下更改:Android 面罩应倾斜在spedometer帆布上,android,android-layout,android-canvas,Android,Android Layout,Android Canvas,我浏览了这座很棒的图书馆 他们在画布上创建了一个自定义速度表。简言之,他们在画布背景和前景上添加了两幅图像,并在速度值发生变化时移动前景图像的矩形遮罩 我已尝试自定义ImageLinearGauge的代码,以显示垂直方向的进度,并进行了以下更改: 通过将alpha值减小到0来保持背景图像(仪表) 创建了由前景图像(填充)组成的移动矩形 在更改seekbar的进度值时,在步骤2中创建的遮罩矩形位于背景之上,这会给人一种进度的感觉 我的问题是: 我希望这个前景蒙版图像与粉红色区域上的黑线对齐/重叠
rect.set(0, heightPa - (heightPa * getOffsetSpeed()).toInt(), widthPa, heightPa)
val mat = Matrix()
mat.setRotate(-20f, (widthPa/2).toFloat(),(heightPa - (heightPa * getOffsetSpeed()).toInt()/2).toFloat());
mat.mapRect(rectF)
canvas.translate(padding.toFloat(), padding.toFloat())
canvas.drawBitmap(foregroundBitmap, rect, rectF, paint)
canvas.translate((-padding).toFloat(), (-padding).toFloat())
canvas.rotate(-20f);//, (widthPa/2).toFloat(),(heightPa - (heightPa * getOffsetSpeed()).toInt()/2).toFloat());
mat.mapRect(rectF)
canvas.translate(padding.toFloat(), padding.toFloat())
canvas.drawBitmap(foregroundBitmap, rect, rectF, paint)
canvas.translate((-padding).toFloat(), (-padding).toFloat())
canvas.restore();