android-如何将位图写出到XML文件

前端之家收集整理的这篇文章主要介绍了android-如何将位图写出到XML文件 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

听起来可能很疯狂,但这是我需要做的.我想获取一个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的编码.

猜你在找的Android相关文章