听起来可能很疯狂,但这是我需要做的.我想获取一个Bitmap对象,并使用XMLPullParser / XmlSerializer将此对象写入平面文件.显然,我需要将XML标签读回到Bitmap对象中.
Bitmap bitmap = ((BitmapDrawable) icon).getBitmap();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG,outputStream);
byte[] bitmapByte = outputStream.toByteArray();
我迷路的地方是,一旦我将其作为字符串写到XML文件中,就永远无法正确地将其转换回去.任何指针表示赞赏.
编辑:
我想提供更多信息.我出于备份目的而写大量XML数据,因此加载或写入时间无关紧要.这不是数据的主要来源(主要来源是sqlite数据库).如果我能帮忙的话,我也不想写一些非常小的(48x48pixel)图像.
我正在使用XMLPullParser读取XML,该XMLPullParser读取一个String:
if (name.equalsIgnoreCase("someXmlTag")){
String someString = parser.nextText();
我正在使用XmlSerializer写我的XML,它写一个String:
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
serializer.setOutput(writer);
serializer.startDocument("UTF-8",true);
serializer.startTag("","soMetag");
serializer.text(someString);
因此,我必须以某种方式将位图转换为字符串,然后将该字符串转换回位图.我将在Base64上进行一些搜索,看看是否有任何好的示例.
最佳答案
我建议使用类似Base64的编码.