各位大侠,先请看下面一段非常非常简单的代码:
package com.zsh;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TestAndroid3Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Button button=new Button(this);
button.setText("啊啊啊");
setContentView(button);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
button.setText("aa");
button.invalidate();
try{
Thread.sleep(5000);
}catch (Exception e) {
// TODO: handle exception
}
button.setText("bb");
}
});
}
}
整个系统就这么一个文件。想实现的功能是一点button,先替换自己的文字为aa,过5秒后再替换自己的文字为bb。可是实际运行效果为点了后没反应,过5秒后直接替换为bb(因为先替换为aa然后瞬间替换为bb看不到aa的缘故)。我想问一下android底层绘制的机制到底是什么呢?如果是在当前线程绘制的话应该按顺序执行先替换完然后invalidate显示给用户然后再去睡。。请问为什么?请详细讲解下android绘制,顺便问一下想实现我的功能应该怎么做。