我所做的如下。
public class getImage extends AsyncTask<String, Bitmap, Bitmap> {
protected void onProgressUpdate(Bitmap... values) {
Log.i("onProgressUpdate", "done");
imageDisplay.setImageBitmap(values[0]); //imageDisplay is an ImageView on UI
imageDisplay.invalidate();
}//end of onProgressUpdate
protected Bitmap doInBackground(String... params) {
//receive an image over socket
publishProgress(bitmapimage); //update on UI
return bitmapimage;
}//end of getImage
public void ConnectionButton(View v) {
Connect = (Button) findViewById(R.id.Connect);
//while(true) {
try {
clientsocket = new DatagramSocket(9999);
} catch (IOException e) {
Log.i("Connection", "exception while creating socket");
}
try {
getImage obj = new getImage();
receivedImage = obj.execute("9999").get(); //receive image and over stream
//obj.onProgressUpdate(receivedImage);
}
catch(Exception e){
e.printStackTrace();
}
//}//endof while
}//end of ConnectionButton
如果我反复按连接按钮,就会得到流式图像。我已经尝试了onProgress更新,但它很少更新图像,延迟相当大。如何使这些接收到的图像作为实时流显示在应用程序上。