动态创建PNG资源

时间:2012-03-05 10:46:35

标签: android dynamic resources png

我正在Android中尝试从我的服务器发送的XML文件中获取资源。它直接以Base64格式发送给我一个PNG文件。

喜欢这个:

lgrbehzlgrbezgbrhezugizgbrzbgre

我的问题是:

是否有一种方法可以将我服务器发送的PNG数据用作“R.drawable.MyNewResource”中的资源?

或者我可以在应用程序数据文件夹中的PNG文件中设置ImageResoure吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

好的,你的问题不正确,如果我没错,那么你想要的东西,

只需转换您的网络回复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);

答案 1 :(得分:0)

您可以使用此代码创建文件并在文件中编写位图。

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

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