В моем приложении для Android я загружаю текстовый контент со своего веб-сайта и сохраняю его в своей базе данных mysql. Теперь я хочу загружать и кэшировать изображения с того же сайта. С <com.android.volley.toolbox.NetworkImageView
AndroidVolley загрузка обычных картинок работает довольно хорошо. Но я хочу загружать векторные изображения SVG, кэшировать их и отображать в своем приложении. Пока это невозможно в Android Volley...
Я уже пытался загрузить SVG с помощью AndroidVolley в виде строки, а затем поместить их в элемент svg-android (См. здесь), но svg-android никогда не показывал мое изображение. Кажется, он не может отображать SVG, созданные Inkscape...
Кто-нибудь знает простой способ, как загрузить эти файлы и отобразить их в представлении?
Спасибо
// ОБНОВЛЕНИЕ 27.03.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);
Большое спасибо!