我想要实现的目标:
(此图像应代表打印机打印图像的进度)
顶部
顶部栏应代表屏幕上安装的整套作业。较暗的块将告诉您屏幕底部当前可见的内容。根据底部的总宽度,这应该更小或更大。白色条带将告诉您打印机当前正在打印的位置。并且黄色条带会告诉您打印机何时发出警告。
底部
在底部,您可以看到打印图像的全尺寸表示。因为它的全尺寸它将继续在屏幕边框之外。大的白色条带与顶部相同,告诉您打印机的距离。那就是那一刻它正在做什么。
你可以滚动它们,当滚动时,另一个也需要滚动。但是当然如果顶部滚动1px,那么底部需要滚动一点,因为宽度更大。
到目前为止我试图做的事情:
因为两者都需要同步滚动我使用了2个自定义HorizontalScrollviews
。我修改了onScrollChanged
,因此它将应用此效果。代码如下所示:
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
int newX = (int) ((int) x*multiplier);
super.onScrollChanged(x, y, oldx, oldy);
scrollView.scrollBy(newX, y);
}
乘数的计算取决于宽度:widthBottom/WidthTop=multiplier
但这并没有产生预期的效果,因为当底部完成滚动时,顶部不会结束。我认为这与顶部的宽度有关,目前它有一个固定的大小,它需要到达屏幕外,否则它不会听到滚动(更改x值)。对于顶部我尝试使用Views
创建指标,但我无法动态移动它们。
<View
android:id="@+id/currentPostition"
android:layout_width="4dp"
android:layout_height="match_parent"
android:layout_marginLeft="40dp"
android:background="@color/Coconut" />
我尝试通过更改marginleft来移动它们。但这使我的应用程序崩溃。
我想问一下:
HorizontalScrollviews
是解决问题的最佳方法吗?Views
是最佳解决方案?如果我需要添加更多信息,或者某些内容不明确。要求它,我会尽快回复。
答案 0 :(得分:0)
获取HorizontalScrollviews中内容的总宽度并将scrollX除以它。 这将为您提供滚动位置的分数值(滚动多少)。
如果您使用的是进度条,请将进度设置为此值。