【问题标题】:How can i programatically move a view in android?我如何以编程方式在android中移动视图?
【发布时间】:2011-08-28 14:21:36
【问题描述】:

这是布局 (XML) 结构。



滚动视图>
......
           ScrollView>
线性布局>
...(按钮)...

我正在尝试使 ScrollView 滚动缓慢(例如某种滑块),以便它滚动例如一个像素而不是等待 10 毫秒并滚动另一个像素……直到它滚动了 100 像素。 如果我调用 scrollBy(100,0) (例如)它只是切换到指定位置,但两者之间没有可见的移动。

public void move(int x, int y)
{
    Activity context = (Activity)getContext();

    context.runOnUiThread(new Runnable() 
    {   
        @Override
        public void run() 
        {
            for(int i=0;i<100;i++)
            {
                scrollBy(-1,0); try{ Thread.sleep(20); } catch(Exception e){}
            }

        }
    });
}

我一直在 ScrollView(我扩展了它)和 Activity 中尝试线程(像这样)。如果有任何方法可以让它慢慢移动,我很高兴知道。谢谢!

【问题讨论】:

    标签: java android multithreading scrollview slide


    【解决方案1】:

    您可以使用 Timer 和 TimerTask 类并将 scrollTo 方法更新 1 直到达到 100。

    https://github.com/blessenm/SlideshowDemo

    以上是一个连续的滑块示例,展示了上述方法的使用。

    【讨论】:

    • 效果很好!非常感谢!我不知道如何使用 Timer。干得好!
    • 很高兴知道它有帮助。请设置答案,以便将问题从未回答列表中删除。
    【解决方案2】:

    您是否尝试过使用smoothScrollBy

    【讨论】:

    • 是的,我试过了,但它没有以正确的方式工作(只是垂直)。我将仔细研究第二种可能性。到目前为止非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多