我有一个在旧API上正确显示的画布。但是,当我在较新的平板电脑上运行它时,图形没有被绘制。
这是一个最小的测试示例:
protected void onDraw(Canvas canvas) {
// .....
// skipped paint initialization code ...
canvas.drawRect(0, 0, 100, 100, redPaint);
canvas.drawRect(100, 100, 200, 0, greenPaint);
canvas.drawRect(200, 0, 300, 100, bluePaint);
canvas.drawRect(300, 0, 400, 100, redPaint);
canvas.drawRect(500, 0, 400, 100, bluePaint);
canvas.drawRect(500, 0, 600, 100, greenPaint);
}
在旧版和新版平板电脑上运行此功能会产生截然不同的效果。
旧设备: [RED] [GREEN] [蓝色] [RED] [BLUE] [GREEN]
较新的设备: [RED] [SPACE] [蓝色] [RED] [SPACE] [GREEN]
答案 0 :(得分:2)
似乎drawRect不再适用于较新的API中的负值。要解决此问题,请确保值始终从较低到较高,除非您有特殊原因不希望它们使用新API。