gpt4 book ai didi

java - Androidplot 方向传感器中的条形图旋转

转载 作者:行者123 更新时间:2023-12-01 09:11:31 25 4
gpt4 key购买 nike

我在尝试将方向传感器示例中的级别图旋转 90 度以使条形图指向(或远离)历史图时遇到困难。

我已在 xml 文件 中尝试了 android:orientation="",但没有得到积极的结果。

这似乎不仅仅是交换 X 和 Y 的问题,因为条必须从不同的边缘开始。

在我自己的代码中,我替换了:-SimpleXYSeries.ArrayFormat.Y_VALS_ONLYSimpleXYSeries.ArrayFormat.XY_VALS_INTERLEAVED 因为我实际上是在 java 文件中绘制 Histogram 而不是 Single bar

但是我无法有效地旋转该图(历史图需要保持原样。)

最佳答案

编辑:
Androidplot 1.3.1 已发布,增加了对旋转图形小部件的支持:

xml:

ap:graphRotation="ninety_degrees"

java

plot.getGraph().setRotation(Widget.Rotation.NINETY_DEGREES);

除非您正在使用它们,否则您还需要禁用域/范围光标(通常隐藏在原点线后面):

plot.getGraph().setDomainCursorPaint(null);
plot.getGraph().setRangeCursorPaint(null);

原始答案(对于尚未使用 1.3.1 的任何人):

目前尚不直接支持它,但可以很容易地添加。

目前,您可以通过在每个渲染周期之前将 Canvas 旋转 90 度并在之后恢复来实现基本效果。如果你的绘图空间恰好是完美的正方形,这将完美地工作。否则, Canvas 的不可变高度和宽度将需要进行调换以适应改变的纵横比,这可能是可能的,但可能不值得所涉及的头痛。

这是一种快速但肮脏的旋转绘图的方法:

 plot.addListener(new PlotListener() {
@Override
public void onBeforeDraw(Plot source, Canvas canvas) {
final float h = canvas.getHeight()/2;
final float w = canvas.getWidth()/2;
canvas.save();
canvas.rotate(90, w, h);

@Override
public void onAfterDraw(Plot source, Canvas canvas) {
canvas.restore();
}
});*/

这种方法的所有缺点都可以通过扩展 XYGraphWidget 并重写 doOnDraw(Canvas, RectF) 来解决,因为我们可以根据需要改变 RectF。不过,将新实例连接回 XYPlot 并将 xml 属性重新应用到小部件还需要做很多工作。

关于java - Androidplot 方向传感器中的条形图旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com