Может показаться сумасшедшим, но это то, что мне нужно сделать. Я хочу взять объект Bitmap и использовать XMLPullParser/XmlSerializer, чтобы записать его в плоский файл. Очевидно, что мне нужно будет прочитать тег XML обратно в объект Bitmap.Как написать Bitmap в файл XML
Я пробовал разные вещи, похожие на то, как я пишу и читаю растровые изображения из базы данных.
Bitmap bitmap = ((BitmapDrawable) icon).getBitmap();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, outputStream);
byte[] bitmapByte = outputStream.toByteArray();
Где я заблудился это, когда я пишу это, чтобы мой файл XML в виде строки, я никогда не могу получить его преобразовать обратно правильно. Любые указатели приветствуются.
Редактировать: Я хочу предоставить немного больше информации. Я пишу много XML-данных для целей резервного копирования, поэтому загрузка или время записи не вызывает беспокойства. Это не является основным источником данных (основным источником является база данных SQLite). Я не хочу писать несколько очень маленьких (48x48pixel) изображений, если я могу помочь.
Я читаю в моем XML с помощью XMLPullParser, которая считывает строку:
if (name.equalsIgnoreCase("someXmlTag")){
String someString = parser.nextText();
Я пишу мой XML с помощью XmlSerializer, который записывает строку:
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.startTag("", "someTag");
serializer.text(someString);
Так или иначе Мне нужно превратить битмап в строку, а затем превратить эту строку в растровое изображение. Я сделаю некоторые поиски на Base64, чтобы узнать, есть ли у меня хорошие примеры.
Я обновил свое сообщение с дополнительной информацией, которая очищает несколько вещей. Я сделаю некоторые поиски на Base64, чтобы узнать, какие у меня варианты. – pcm2a