2012-11-21 47 views
1

我更改了Android BluetoothChat示例項目以通過藍牙傳輸文件。我成功傳輸了文本文件並將其打印在ListActivity上。我想用圖像做同樣的事情,但不能使它工作。有一個Handler對象將InputStream接收到的字節數組發送到UserInterface。我需要將這個bytearray轉換成圖像。我試着以下但不工作:將字節數組轉換爲位圖Android

@Override 
    public void handleMessage(Message msg) { 
     switch (msg.what) { 
     case MESSAGE_STATE_CHANGE: 
      if(D) Log.i(TAG, "MESSAGE_STATE_CHANGE: " + msg.arg1); 
      switch (msg.arg1) { 
     case MESSAGE_READ: 
      byte[] readBuf = (byte[]) msg.obj; 
      // construct a string from the valid bytes in the buffer 
      myImg.setImageBitmap(BitmapFactory.decodeByteArray(readBuf, 0, readBuf.length)); 
      //the following lines would actually display the text of the file in the ListActivity 
      //String readMessage = new String(readBuf, 0, msg.arg1); 
      //mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMessage); 
      break; 
     } 
    } 
}; 

將消息發送到用戶界面處理程序的代碼看起來像以下:

mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes, -1,buffer).sendToTarget(); 

ANSWER 我看了很多其他職位,我發現有人其他成功的工作。他用一個小技巧救了我。因爲它是一種更好的方式解釋了問題的頁面Sending image from android to PC via bluetooth

謝謝大家的幫助,雖然

+0

定義「不起作用」 – njzk2

+0

myImg具有對我在UI上使用的圖像的引用。我點擊發送後,圖像消失。我想沒有正確的位圖替換。 – bboydflo

+0

是否有錯誤或異常?你確定它是一個圖像?你是否試圖將它保存在某個地方並用普通的圖像查看器打開它? – njzk2

回答

0

嘗試使用BitmapFactory.decodeByteArray(byte[] data, int offset, int length)方法從字節數組位圖我就不在這裏給出答案。

+0

我讀了很多關於我面臨的問題的帖子,可能是因爲我沒有在發送到UI之前讀取bytearray中的整個輸入流。希望我會回來一個解決方案。 – bboydflo