动态创建PNG资源



我正在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();
}

位图将保存在应用程序文件中,然后您可以读取它。

最新更新