JRa*_*ond 3 charts android android-canvas
我正在尝试在android中创建一个实时图表实用程序,并且在大多数情况下它可以工作,除了当我在其中一个路径中获得太多数据点时它会破坏openGL.我正在使用路径,因为当传入的值超出图形的当前边界时,我正在通过矩阵转换整个数据集.我是以错误的方式来做这件事的吗?是否有更好/更合适的API用于此类事情?如果可能/我知道怎么做,我会很高兴修剪当前界限的路径.谢谢!
onDraw有:
@Override
protected void onDraw(Canvas canvas) {
scaleX = getWidth() / (maxX - minX);
scaleY = getHeight() / (maxY - minY);
// TODO: Use clips to draw x/y axis, allow color to be defined in attributes, etc.
canvas.drawColor(0xFF000000);
for (DataLine line : mPathList.values()) {
canvas.drawPath(line, line.getPaint());
}
}
Run Code Online (Sandbox Code Playgroud)
(DataLine是Path的子类,包含Paint对象)
有问题的错误是来自OpenGLRenderer的警告:"形状路径太大而无法渲染到纹理中"
Dan*_*yan 19
如果您查看日志,您会发现如下错误:
04-04 10:39:06.314:W/OpenGLRenderer(6092):形状路径太大而无法渲染到纹理中
自打开硬件加速后,所有内容都会呈现为纹理,并且纹理有一个大小限制.如果将较大的形状分解为较小的形状,那将解决您的问题.或者只是关闭硬件加速:
android:hardwareAccelerated="false"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3164 次 |
| 最近记录: |