我有一個滾動視圖的高度和寬度是在xml文件中定義的,但我想在運行時動態增加或減少scrollview的高度和寬度。如何在android中增加或減少運行時的scrollview的高度和寬度?
其實我想在10秒內增加每秒10幀的高度和寬度。但是scrollView.getLayoutParams()。height =使用此代碼的GivenHeight我只能增加一次運行時間。我們可以增加多個嗎?
在此先感謝。
我有一個滾動視圖的高度和寬度是在xml文件中定義的,但我想在運行時動態增加或減少scrollview的高度和寬度。如何在android中增加或減少運行時的scrollview的高度和寬度?
其實我想在10秒內增加每秒10幀的高度和寬度。但是scrollView.getLayoutParams()。height =使用此代碼的GivenHeight我只能增加一次運行時間。我們可以增加多個嗎?
在此先感謝。
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方法裏面,新的高度和寬度已經設置之後。
scrollView.getLayoutParams().height = assignHeight;
scrollView.getLayoutParams().width = assignWidth;
使用上面的代碼我可以增加高度和寬度只有一次,但我想逐漸增加滾動查看。例如,我想增加每10秒像素增加10秒的滾動視圖高度和寬度。我們可以在android中做到這一點。 – Banshi 2012-07-12 07:02:53
效果並不在模擬器表示,但是當我打印滾動視圖的高度然後它表明高度增加[Log.v(「」,「」 + sv.getLayoutParams()的高度。);] – Banshi 2012-07-12 08:11:10
嗯..嘗試通過調用invalidate()強制刷新它。 – Carnal 2012-07-12 08:15:41