当前位置: 代码迷 >> Android >> android更新ui有关问题
  详细解决方案

android更新ui有关问题

热度:72   发布时间:2016-04-28 06:50:52.0
android更新ui问题
//java 代码
public class Main extends Activity {
    public EditText msgLog;
    public Button gatherImg;
    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
                msgLog = (EditText) findViewById(R.id.EditTextReception);
                gatherImg = (Button) findViewById(R.id.ButtonGatherImg);
gatherImg.setOnClickListener(new OnClickListener() {

int[] ImgW_H = new int[2];
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
msgLog.append("开始采图\n");
errno = myUsbSensor.UploadImg("/sdcard/mybmp.bmp", ImgW_H,
UploadImgCmd, UploadImgData);
if (errno != 0) {
ackShow.showErrorlog(errno);
}
mbBitmap = BitmapFactory.decodeFile("/sdcard/mybmp.bmp");
myView.setImageBitmap(mbBitmap);
msgLog.append("采集完成\n" );
}
});
     }
}
希望的效果是:点击gatherImg ,然后在屏幕上显示 开始采图,然后调用 errno = myUsbSensor.UploadImg("/sdcard/mybmp.bmp", ImgW_H,
UploadImgCmd, UploadImgData);该函数, 接着 mbBitmap = BitmapFactory.decodeFile("/sdcard/mybmp.bmp");
myView.setImageBitmap(mbBitmap);,最后完成后,屏幕显示  采集完成

但是,实际是先执行完 gatherImg.setOnClickListener(new OnClickListener() {

int[] ImgW_H = new int[2];
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
msgLog.append("开始采图\n");
errno = myUsbSensor.UploadImg("/sdcard/mybmp.bmp", ImgW_H,
UploadImgCmd, UploadImgData);
if (errno != 0) {
ackShow.showErrorlog(errno);
}
mbBitmap = BitmapFactory.decodeFile("/sdcard/mybmp.bmp");
myView.setImageBitmap(mbBitmap);
msgLog.append("采集完成\n" );
}
});
这个里面的,最后才在屏幕更新开  始采图  和  采集完成  ,怎样才能让点了后马上就在屏幕上显示???
就是不要让这个线程执行完,再去更新UI显示
顺便付个图:

大过年的,还在敲代码,请各位大神支支招,提前祝大家新年快乐!
------解决方案--------------------
activity.runOnUIThread(){
//这里面放立马要执行的,
}
new Thread(new Runnable(){
//这里面放耗时的
})
  相关解决方案