大家好我想问你一件事,我有一个转移字符串的聊天,我甚至可以附加JPEG图像,然后发送它们将其转换为字符串,然后在BITMAP中解码只是当我解码时崩溃了应用程序。我想知道解码它是否是正确的代码。
NOME = (TextView) row.findViewById(R.id.comment);
NOME.setText(coment.comment);
String a = NOME.getText().toString();
if(a.length() > 1024 )
{
byte[] image = Base64.decode(a, 0);
int lung = a.length();
Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, lung);
Image = (ImageView) row.findViewById(R.id.image);
Image.setImageBitmap(bitmap);
}
答案 0 :(得分:0)
代码看起来很好,如果我不得不猜我会说你得到内存不足的错误,这在加载图片时很常见。看看
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
了解加载图片时的一些最佳做法。
答案 1 :(得分:0)
将图像编码为字符串Base64的方法:
public static String encodeToString() {
String imageString = null;
try {
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
imageString = Base64.encodeToString(b, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
return imageString;
}
将字符串Base64解码为图像的方法:
public static void decodeToImage(String imageString) {
try {
byte[] imageByte = Base64.decode(imageString, Base64.DEFAULT);
Bitmap bm = BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length);
image_view.setImageBitmap(bm);
} catch (Exception e) {
e.printStackTrace();
}
}