Получить изображения с сервера 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);

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


person Tufan    schedule 30.03.2015    source источник
comment
друзья мне нужна ваша помощь.......помогите мне   -  person Tufan    schedule 30.03.2015
comment
Используйте это: stackoverflow.com/a/29341566/4693713   -  person Avishek Das    schedule 30.03.2015
comment
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);   -  person Signare    schedule 30.03.2015
comment
Привет @signare, это не работает....   -  person Tufan    schedule 30.03.2015


Ответы (1)


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

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
person Rohit Suthar    schedule 30.03.2015
comment
Привет, Зинал. Используете ли вы класс Base64 Util или собственный разработанный класс? - person Tufan; 30.03.2015