我正在Android中尝试从服务器发送的XML文件中获取资源。它直接以Base64格式向我发送一个PNG文件。
像这样:
lgrbehzlgrbezgbrhezugizgbrzbgre
我的问题是:
有没有一种方法可以像"R.drawable.MyNewResource"中那样将从我的服务器发送的PNG数据用作资源?
或者,我可以从应用程序数据文件夹中的PNG文件设置ImageResolure吗?
提前感谢!
好的,你的问题不正确,如果我没有错,那么你想要类似的东西
只需转换您的网络响应base64 png string into bitmap
,然后使用该位图在imageview中进行设置。
Bitmap bitmap;
ImageView imgView;
byte[] decodedString;
decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
imgView.setImageBitmap(bitmap);
您可以使用此代码创建文件并在文件中写入位图。
File file = new File(imageDirectory,image_name);
OutputStream outStream = null;
try {
outStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
Toast.makeText(cameraActivity.this, "Saved", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(cameraActivity.this, e.toString(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(cameraActivity.this, e.toString(), Toast.LENGTH_LONG).show();
}
位图将保存在应用程序文件中,然后您可以读取它。