Может звучать безумно, но это то, что мне нужно сделать. Я хочу взять объект Bitmap и использовать XMLPullParser / XmlSerializer, чтобы записать это в плоский файл. Очевидно, мне нужно будет прочитать тег XML обратно в объект Bitmap.
Я пробовал разные вещи, похожие на то, как я пишу и читаю битовые карты из базы данных.
Bitmap bitmap = ((BitmapDrawable) icon).getBitmap();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, outputStream);
byte[] bitmapByte = outputStream.toByteArray();
Когда я теряюсь, когда я записываю это в свой XML-файл как строку, я никогда не смогу преобразовать его обратно должным образом. Любые указатели приветствуются.
Edit:
Я хочу предоставить немного больше информации. Я записываю много XML-данных для резервного копирования, поэтому время загрузки или записи не имеет значения. Это не основной источник данных (основным источником является база данных SQLite). Я не хочу выписывать пару очень маленьких (48х48 пикселей) изображений, если смогу помочь.
Я читаю в своем 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, чтобы посмотреть, получу ли я какие-нибудь хорошие примеры.