//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(){
//这里面放耗时的
})