Создать ресурс PNG динамически - PullRequest
0 голосов
/ 05 марта 2012

Я пытаюсь в Android получить ресурсы из файла XML, отправленного с моего сервера. Он отправляет мне файл PNG напрямую в формате Base64.

Как это:

lgrbehzlgrbezgbrhezugizgbrzbgre

Мой вопрос:

Есть ли способ использовать данные PNG, отправленные с моего сервера, в качестве ресурса, как в "R.drawable.MyNewResource"?

Или я могу установить ImageResoure из файла PNG в папке данных моего приложения?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Хорошо, ваш вопрос неверный. Если я не ошибаюсь, вы хотите что-то вроде

Просто преобразуйте ваш веб-ответ base64 png string into bitmap, а затем используйте это растровое изображение для установки в режиме просмотра изображений.

Bitmap bitmap;          
ImageView imgView;
byte[] decodedString;       

decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
imgView.setImageBitmap(bitmap);
0 голосов
/ 05 марта 2012

Вы можете создать файл и записать свое растровое изображение в файл, используя этот код.

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

Растровое изображение будет сохранено в файле приложения, а затем вы сможете прочитать его.

...