2012-07-10 37 views
3

我有一個滾動視圖的高度和寬度是在xml文件中定義的,但我想在運行時動態增加或減少scrollview的高度和寬度。如何在android中增加或減少運行時的scrollview的高度和寬度?

其實我想在10秒內增加每秒10幀的高度和寬度。但是scrollView.getLayoutParams()。height =使用此代碼的GivenHeight我只能增加一次運行時間。我們可以增加多個嗎?

在此先感謝。

回答

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方法裏面,新的高度和寬度已經設置之後。

+0

使用上面的代碼我可以增加高度和寬度只有一次,但我想逐漸增加滾動查看。例如,我想增加每10秒像素增加10秒的滾動視圖高度和寬度。我們可以在android中做到這一點。 – Banshi 2012-07-12 07:02:53

+0

效果並不在模擬器表示,但是當我打印滾動視圖的高度然後它表明高度增加[Log.v(「」,「」 + sv.getLayoutParams()的高度。);] – Banshi 2012-07-12 08:11:10

+0

嗯..嘗試通過調用invalidate()強制刷新它。 – Carnal 2012-07-12 08:15:41

1
scrollView.getLayoutParams().height = assignHeight; 
scrollView.getLayoutParams().width = assignWidth; 
相關問題