我寫了一個小小的客戶端 - 服務器應用程序,它通過tcp傳輸Bitmaps。服務器部分就像一個魅力,但在客戶端我不知道如何顯示接收到的位圖。客戶端後端在每次收到新圖片時會調用該活動中的一個方法,該方法應該更新並顯示位圖...高達25 fps。 什麼是最好的解決方案?Android中的快速顯示位圖
我寫了自己的觀點,但呼籲setContentView
對我不起作用,它錯過了顯示位圖和屏幕保持黑色,直至服務器關閉,那麼一個圖像顯示正確。我甚至試過這樣的事情:
this.image = (ImageView) findViewById(R.id.imageView1);
和
public void setImage(BufferedImage bufImage) {
if (bufImage.hasBitmap()) {
this.image.setImageBitmap(bufImage.getBitmap());
}
}
(我寫了自己的BufferedImage類中,保持正確的位圖)
即使image.invalidate()沒有任何反應,直到服務器關閉連接...
感謝您的鏈接,我有這個想法幾乎張貼了這個問題之後的第二。現在,「後端」是一個自己的線程,並用新的Bitmaps調用ui,但我遇到了上述相同的問題:顯示的唯一一個圖片顯示在第二個關閉服務器的地方。 – christian667 2011-03-18 01:26:45
您可以發佈代碼更新的版本?也許還有別的東西讓位圖不被渲染。 – mikerowehl 2011-03-18 01:32:44
好了,我試了一下AsyncTask類:public class Backend extends AsyncTask {.... \t protected void void addInBackground(void ... arg0){load pictures,call ui to display}}和在ui中:public void setImage(BufferedImage bufImage){if(bufImage.hasBitmap()){this.image.setImageBitmap(bufImage.getBitmap());}} –
christian667
2011-03-18 01:39:44