Самый эффективный способ получить несколько изображений из базы данных MySQL на устройство Android - PullRequest
0 голосов
/ 20 июля 2011

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

До сих пор я пытался использовать только PHP-скрипт, который должен позволять приложению вытягивать изображения из таблицы в мою базу данных, но у меня не было никаких успешных результатов.

В моемapp - это то, что я использую для извлечения и декодирования потока в растровое изображение, которое может использовать телефон / приложение:

public static void createIcons(Resources res) throws IOException {
    String url1 = " http://mysite.iscool/file-get.php ";
    URL ulrn = new URL(url1);
    HttpURLConnection con = (HttpURLConnection)ulrn.openConnection();
    InputStream is = con.getInputStream();
   //end of lines added 

    markIcon=BitmapFactory.decodeStream(is);

Так как я не могу вернуть изображение на устройство из БДиспользуя это до сих пор, я задавался вопросом, в каком направлении я должен идти. Я видел множество различных методов, объясненных здесь, но я не слишком уверен, если метод, который я пытаюсь использовать, даже будет работать дляцель, в которой я нуждаюсь.

Кроме того, я видел упоминание о службе REST и других способах извлечения изображений из таблицы mysql db.Так есть ли у кого-нибудь предложения / учебные пособия / примеры извлечения нескольких изображений из базы данных MySQL?

Кстати, вот код, который я использую, чтобы попытаться вернуть изображение на устройство:

<?php
 //----------------------------------------------------------
//
//---------------------------------------------------------
// access server
//---------------------------------------------------------
include("fLADB.php");
//
$dbQuery = "SELECT File FROM mark_image_store where imageid =(SELECT MAX(imageid) from
 mark_image_store);";

//-----------------------------------------------------------
// selecting into a single element variable
// stores only the first field which is the file data
//-----------------------------------------------------------
$result = mysql_query($dbQuery) or die(mysql_error());
//-----------------------------------------------------------
//reserved for when there is file ext data available.
//to format http headers
//Do not need for use by the phone.
//header("Content-type: image/jpeg");
//if ($ext = "png")
//-------------------------------------------------------------
// use imagejpeg, imagepng?
//-------------------------------------------------------------
header("Content-type: image/png");
print mysql_result($result, 0);
mysql_close();
?>

Так что, посмотрев мой код на PHP и Android, кто-нибудь может дать мне совет, в каком направлении мне двигаться дальше.Должен ли я переделать свой код на стороне Android и использовать службу REST или Web-сервис или серверную часть PHP-сценария, достаточную для обработки возвращаемых изображений.

Буду очень признателен за любые советы / учебные пособия / примеры.

1 Ответ

1 голос
/ 20 июля 2011

Вы можете легко извлечь несколько изображений с помощью одного запроса. Но вы сможете передавать только одно изображение за раз, если только вы не используете своего рода инкапсуляцию, например .zip.

Если вы подаете изображения через HTTP, вы определенно сможете показывать только одно изображение за раз. Существуют некоторые приемы, при которых вы можете обработать одно изображение с несколькими небольшими изображениями, расположенными внутри него, и отобразить их в элементах ограниченного размера в виде плиток / спрайтов, но это потребует вмешательства клиента.

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