我通過套接字在字節數組中接收到一個位圖,然後我讀取它,然後我想在我的應用程序中將它設置爲os.toByteArray
爲ImageView
。我使用的代碼是:RuntimeException:緩衝區不夠大像素
try {
//bmp = BitmapFactory.decodeByteArray(result, 0, result.length);
bitmap_tmp = Bitmap.createBitmap(540, 719, Bitmap.Config.ARGB_8888);
ByteBuffer buffer = ByteBuffer.wrap(os.toByteArray());
bitmap_tmp.copyPixelsFromBuffer(buffer);
Log.d("Server",result+"Length:"+result.length);
runOnUiThread(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(bitmap_tmp);
}
});
return bmp;
} finally {
}
當我運行我的應用程序,並開始接收Byte[]
並期待ImageView
改變,事實並非如此。
logcat的說:
java.lang.RuntimeException: Buffer not large enough for pixels at
android.graphics.Bitmap.copyPixelsFromBuffer
我搜索類似的問題,但無法找到一個解決我的問題。
什麼是您的Android操作系統版本? – MengMeng
圖像字節與您的位圖(540x719)具有相同的維度嗎? – Henry
您是否需要使用ByteBuffer.allocate設置緩衝區大小? – JamesB