我想以編程方式改變webview(用於顯示html)的高度,看起來好像它是動畫/展開。我的代碼工作,但它是滯後的。有時它運行平穩,有時運行緩慢,通常速度會隨着運動而變化。我的代碼如下。有沒有人有任何好的方法來解決這個問題?以編程方式更改佈局高度,如何避免滯後? AsyncTask
class ViewDropDownASynch extends AsyncTask<String,Void,String>{
WebView wv;
int height = 0;
LinearLayout.LayoutParams params;
int stop;
int step;
public ViewDropDownASynch(WebView v, int a, int o, int e){
wv = v;
params = new LinearLayout.LayoutParams(wv.getLayoutParams());
height = a;
stop = o;
step = e;
textAnimateExecute = true;
}
public String doInBackground(String... para){
for(int i = height; i != stop+step; i+=step){
params.height = i;
SystemClock.sleep(4);
this.publishProgress();
}
return "";
}
protected void onPostExecute(String result){
textAnimateExecute = false;
}
protected void onProgressUpdate(Void...values){
wv.setLayoutParams(params);
}
我的問題不是動畫的固有滯後(實際上,滯後不夠,這就是爲什麼我有SystemClock.sleep )),這是不一致的。有時它運行得很快,有時運行緩慢,速度在調整大小時動態變化,並使其看起來非常不專業。 – 2011-02-25 20:03:40