1

我正在尝试编写具有水平滚动能力的自定义视图。我在论坛上浏览了很多帖子,但我仍然无法得到我想要的东西。我想要一个自定义视图,在其上绘制音频记录的音高轮廓。音高轮廓很长,以适应屏幕。所以,我想为此添加一个水平滚动。到目前为止,我已经创建了一个自定义视图,扩展HorizontalScrollView. 一旦窗口获得焦点,我invalidate()就会在屏幕上查看并绘制音高轮廓。完成绘图后,我尝试通过调用 跳到最右边的位置scrollTo(getRight(), 0)。这不会改变任何东西,轮廓是完全相同的位置。当我尝试使用 打印值getRight()时,它给了我值1794。我正在使用 Nexux 5 进行测试。任何人都可以给我任何提示吗?

PS:轮廓中最后一个值的 x 像素值为Last value of x for is:5499.3.

4

1 回答 1

1

onMeasure()我犯的错误是没有在我的 custom中提供实现View。如果自定义视图有layout_width提到的 as wrap_content(在 a 的情况下HorizontalScrollView),我们需要在里面设置自定义视图的宽度onMeasure()。一个很好的解释是here。希望这对其他人有帮助。

于 2015-12-04T15:06:26.827 回答