首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android pinch缩放比例视图滚动条移动

android pinch缩放比例视图滚动条移动
EN

Stack Overflow用户
提问于 2013-01-12 17:19:37
回答 1查看 1.3K关注 0票数 0

我有一个线性布局的视图。这个应用程序是音乐符号,这是一系列的音乐条,换行,所以他们总是小于屏幕的宽度(没有水平滚动)。当乐谱变得太大而无法显示时,会有一个垂直滚动条。到目前一切尚好。我可以很好地上下滚动。

现在我正在实现收缩缩放,我在ScaleGestureDetector中设置了一个onScale,保存比例因子,使其无效,并在onDraw中使用比例因子,像这样的canvas.scale(mScaleFactor,mScaleFactor);

它可以缩放视图,但它并不完全符合我的要求。我想让画布的绘图区域像它一样缩放,但滚动条留在原地,但缩放会把它移到一边,看不见。

你知道如何缩放视图而不是滚动条吗?

顺便说一句,我可以通过将比例因子应用于宽度来重新计算音乐条的换行位置,这真的只是滚动条显示的问题。

有人能帮上忙吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-01-13 10:58:14

我想通了路。我需要将滚动条的绘制与主音乐符号视图的绘制解耦。这样我就可以在不影响滚动条的情况下缩放主符号视图。

所以我使用线性布局来创建两个视图-

代码语言:javascript
复制
layout.setLayoutParams(new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT, 
                    100));
            layout.setOrientation(LinearLayout.HORIZONTAL);

            Globals.mMainView = new MainView(context);
            Globals.mMainView.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 60));
            layout.addView(Globals.mMainView);

            Globals.mScrollbarView = new ScrollbarView(context);
            Globals.mScrollbarView.setLayoutParams(new LinearLayout.LayoutParams(20, LinearLayout.LayoutParams.WRAP_CONTENT, 0));
            layout.addView(Globals.mScrollbarView);

然后,我从MainView中删除滚动条的显示,并将它们放入ScrollbarView中。

然后,我在ScrollbarView中使用onScroll事件来控制MainView中的滚动。我必须记得从ScrollbarView.computeVerticalScrollRange返回MainView的实际显示长度,这样滚动条大小才能正常显示。

由于我引用了保存为全局变量的两个视图,因此它们很容易在必要时相互通信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14291942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档