私の Android アプリでは、Web サイトからテキスト コンテンツをダウンロードし、それを mysql データベースに保存します。今、同じウェブサイトから画像をダウンロードしてキャッシュしたいと考えています。AndroidVolley の<com.android.volley.toolbox.NetworkImageView
では、通常の写真のダウンロードはかなりうまく機能します。しかし、SVG ベクター画像をダウンロードしてキャッシュし、アプリに表示したいと考えています。これまでのところ、これは Android Volley では不可能です...
私はすでに AndroidVolley を文字列として SVG をダウンロードし、それらを svg-android 要素に入れようとしましたが (こちらを参照)、svg-android は私のイメージを表示しませんでした。Inkscape で作成された SVG を表示できないようです...
これらのファイルをダウンロードしてビューに表示する簡単な方法を知っている人はいますか?
ありがとう
// 2015 年 3 月 27 日更新 //
これが私の解決策です。Android Volley をStringRequest
使用して、SVG イメージに文字列としてアクセスするように設定しました。AndroidSVGライブラリ( svg-android ライブラリと混同しないでください) は、この String を SVG-Object に変換し、それを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);
どうもありがとう!