如何在android中运行时增加或减少scrollview的高度和宽度?

时间:2012-07-10 13:45:33

标签: android

我有一个在xml文件中定义高度和宽度的scrollview,但是我想在运行时动态地增加或减少scrollview的高度和宽度。

实际上我想将每秒10 px的滚动视图的高度和宽度增加10秒。但是使用这段代码的scrollView.getLayoutParams()。height = GivenHeight我可以只增加一次运行时间。我们可以增加一个以上。

提前致谢。

2 个答案:

答案 0 :(得分:5)

scrollView.getLayoutParams().height = yourNewHeight; // in pixels
scrollView.getLayoutParams().width = yourNewWidth; // in pixels

编辑您的新问题: 如果你想随着时间的推移增加它,你可以通过使用TimerTask并在UI线程上运行它来轻松实现这一点,因为我们正在触摸它的视图。 我会给你代码,因为它非常简单。

int secondCounter = 0;
int delay = 0;   // delay for 0 sec.
int period = 1000;  // repeat every sec.
final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
    public void run() {
        // do work inside ui thread
        runOnUiThread(new Runnable() {
            public void run() {
                // do your work right here
                secondCounter++;
                yourNewHeight += 10;
                yourNewWidth += 10;
                scrollView.getLayoutParams().height = yourNewHeight; // in pixels
                scrollView.getLayoutParams().width = yourNewWidth; // in pixels
                //stop the timer when 10 seconds has passed
                if(secondCounter == 10){
                    timer.cancel();
                }
            }
        });
    }
}, delay, period);

编辑: 强制查看刷新..

ViewGroup vg = findViewById (R.id.rootLayout);
vg.invalidate();

在设置新的高度和宽度后,您需要在run方法中调用invalidate。

答案 1 :(得分:1)

scrollView.getLayoutParams().height = assignHeight;
scrollView.getLayoutParams().width  = assignWidth;