アセットフォルダーにいくつかの SVG があり、それらを (ImageView の) ウィジェットに動的に設定する必要があります。
私はこのライブラリを使用しています: http://code.google.com/p/svg-android/
このライブラリは、Picture または PictureDrawable を返します。
RemoteView で使用できるメソッドは setImageViewBitmap だけで、これは明らかにビットマップを取ります。
次のように、Drawable を Bitmap に変換するコードを探してみました。
PictureDrawable pictureDrawable = svg.createPictureDrawable();
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(), pictureDrawable.getIntrinsicHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(pictureDrawable.getPicture());
currentBitmap = bitmap;
しかし、ビットマップが小さすぎます。Illustrator でビットマップを作成するときは、アートボードのサイズを 65 に設定します。これは、固有の幅/高さを通過するものです。
ImageView のサイズが可変になるように、ウィジェットのサイズを変更できます。このように幅と高さを静的に大きな数値に設定しても...
Bitmap bitmap = Bitmap.createBitmap(300, 300, Config.ARGB_8888);
結果のビットマップには、小さな画像の下と右にたくさんの空白があります。
サイズ300でビットマップを作成するだけでなく、拡大された値で画像を描画する必要があると思います。理想的には、実行時にImageViewのサイズを把握し、それがわかっている場合は適切なサイズのビットマップを設定できます。これが最善のアプローチですか、どうすればよいですか? おそらく、私が知らないより良いアプローチがありますか?