较新的Android API不会绘制负值矩形
问题描述:
我有一个正确显示在旧API上的画布。但是,当我在我的新平板电脑上运行它时,图形未被绘制。较新的Android 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]
答
似乎drawRect不再适用于新API中的负值。为了解决这个问题,除非你有特定的理由不希望他们使用新的API,否则确保值总是从低到高。