В моем приложении для Android я загружаю текстовое содержимое с моего сайта и сохраняю его в своей базе данных mysql. Теперь я хочу загружать и кэшировать изображения с одного и того же веб-сайта. С помощью AndroidVolley's <com.android.volley.toolbox.NetworkImageView
, загрузка обычных фотографий работает очень хорошо. Но я хочу загрузить SVG-векторные изображения, кешировать их и отображать в своем приложении. Пока это невозможно в Android Volley ...Android Volley display SVG image
Я уже пытался загрузить SVG с помощью AndroidVolley в качестве строки, а затем поместить их в элемент svg-android (See here), но svg-android никогда не показывал мои образ. Кажется, что он не может отображать SVG, созданные Inkscape ...
Кто-нибудь знает простой способ, как загрузить эти файлы и отобразить их в виде?
Благодаря
// UPDATE 27.3.2015 //
Так что это мое решение: С Android Volley я поставил StringRequest
, чтобы получить доступ к своей SVG-изображения в виде строки. Библиотека AndroidSVG (не смешивается с библиотекой svg-android) может преобразовать эту строку в SVG-объект и поместить ее в файл SVGImageView
-View. Вот пример кода, как он работал:
StringRequest stringRequest = new StringRequest("http://******/image.svg",new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
SVG svg = SVG.getFromString(response);
View view = getView();
if(view != null){
SVGImageView target = (SVGImageView)view.findViewById(catID);
target.setSVG(svg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(Globals.TAG,"Fehler "+error);
}
});
RequestQueue queue = Volley.newRequestQueue(mContext);
stringRequest.setShouldCache(true);
queue.add(stringRequest);
Спасибо большое!
Вы видели мой ответ? –
Да, спасибо. Я попытаюсь ответить на этот уик-энд ;-) – Jokus
Я только что попробовал первый совет, но я никогда не мог увидеть изображение ... Таким образом, я получаю несколько записей Logcat-записей, которые говорят мне, что в svg есть узлы, которые могут Не отображается. Может быть, Inkscape сгенерировал SVG-проблемы ... Я буду искать это позже и расскажу вам результат;) – Jokus