Получить изображения с сервера PHP-MySql на Android с помощью json

я разрабатываю приложение, которое загружает изображение с php-сервера и отображает изображение в виде изображения … но когда я получаю изображение со страницы php

if (!empty($result)) {
if (mysql_num_rows($result) > 0) {

$result = mysql_fetch_array($result);

$user = array();
$user["image"] = base64_encode($result["image"]);
$response["success"] = 1;
$response["image_table"] = array();

array_push($response["image_table"], $user);
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "No Image found";
echo json_encode($response);
}

это дает мне ответ JSON, как это

03-30 04:43:44.013: D/Image:(2770): {"success":1,"image_table":   [{"image":"\/9j\/4VeRRXhpZgAASUkqAAgAAAAMAAABBAABAAAA..........
03-30 04:43:44.253: D/skia(2770): --- decoder->decode returned false

я декодирую эту строку изображения в растровое изображение, как это ….

json= jsonParser.makeHttpRequest(url_img_address, "GET", params);

Log.d("Image: ", json.toString());

try {
int success = json.getInt(TAG_SUCCESS);

if (success == 1) {
address = json.getJSONArray(TAG_IMAGE_TABLE);
for (int i = 0; i < address.length(); i++) {
JSONObject c = address.getJSONObject(i);
image = c.getString(TAG_IMAGE);
byte[] dwimage = Base64.decode(image.getBytes());
System.out.println(dwimage);
bmp = BitmapFactory.decodeByteArray(dwimage, 0, dwimage.length);
}
} else {

}
} catch (JSONException | IOException e) {
e.printStackTrace();
}

и я использую этот BM для другого класса, который устанавливает BMP для просмотра изображений

   ivProperty.setImageBitmap(bmp);

но он ничего не отображает …… мое задание asynck не завершено и оно продолжает выполняться …
мой вопрос заключается в том, как отобразить bmp в imageview и почему моя асинхронная задача не завершена …….. спасибо заранее ….

1

Решение

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

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector