Java 优化渲染画布
我努力解决代码(渲染)优化的问题。 我在屏幕上有650个六边形,我需要将它们一起移动并自由缩放。 据我所知,我有2d地图,它存储六边形对象,其中包含一些参数,如顶点、中心点等。 我的onDraw方法如下所示:Java 优化渲染画布,java,android,canvas,drawing,Java,Android,Canvas,Drawing,我努力解决代码(渲染)优化的问题。 我在屏幕上有650个六边形,我需要将它们一起移动并自由缩放。 据我所知,我有2d地图,它存储六边形对象,其中包含一些参数,如顶点、中心点等。 我的onDraw方法如下所示: @Override public void onDraw(final Canvas canvas) { if(hexMap == null || hexMap.length <= 0) { populateHexMap();
@Override
public void onDraw(final Canvas canvas) {
if(hexMap == null || hexMap.length <= 0) {
populateHexMap();
}
if(radiusChanged) {
changeRadius();
}
for(int i = 0; i < hexMap.length; i++) {
for(int j = 0; j < hexMap[i].length; j++) {
if(hexMap[i][j] != null && hexMap[i][j].isToDraw()) {
paint.setColor(hexMap[i][j].getColor());
drawPath.rewind();
drawPath.moveTo(hexMap[i][j].getPoint(0).x, hexMap[i][j].getPoint(0).y);
drawPath.lineTo(hexMap[i][j].getPoint(1).x, hexMap[i][j].getPoint(1).y);
drawPath.lineTo(hexMap[i][j].getPoint(2).x, hexMap[i][j].getPoint(2).y);
drawPath.lineTo(hexMap[i][j].getPoint(3).x, hexMap[i][j].getPoint(3).y);
drawPath.lineTo(hexMap[i][j].getPoint(4).x, hexMap[i][j].getPoint(4).y);
drawPath.lineTo(hexMap[i][j].getPoint(5).x, hexMap[i][j].getPoint(5).y);
drawPath.lineTo(hexMap[i][j].getPoint(0).x, hexMap[i][j].getPoint(0).y);
canvas.drawPath(drawPath, paint);
}
}
}
}
@覆盖
公共空白onDraw(最终画布){
如果(hexMap==null | | hexMap.length drswLines应该比一次又一次地创建路径快是的,我尝试过绘制线,虽然速度更快,但仍然不够快。绘制线的另一个问题是,我需要用颜色填充我的十六进制,但我不知道如何实现。将“绘制样式”设置为“填充”不起作用。