나는 프로그래밍 방식으로 애니메이션보기/확대하는 것처럼 보이는 방식으로 웹보기 (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 ()), 그것은 일관성이 없다. 때로는 빠르게 실행되고, 때로는 느리게 실행되며, 속도가 동적으로 변경되어 매우 전문적이지 않은 것처럼 보입니다. –