svg イメージのレンダリングには androidsvg-1.2.1.jar を使用します。画像の元のサイズは、幅 260 ピクセル、高さ 100 ピクセルです。次のように、ディスプレイの幅に比例して画像の幅を設定しようとしました。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
height = (int) (width / 2.6);
svg.setDocumentHeight(height);
svg.setDocumentWidth(width);
svg.setDocumentViewBox(0, 0, width, height);
ドキュメントには、メソッドgetDocumentHeight
とsetDocumentWidth
メソッドsetDocumentViewBox
がピクセル単位の入力値を受け入れると書かれています。ただし、この場合、ビューボックスのサイズは推定されていましたが、画像自体はビューボックスの左上隅にあり、そのサイズはビューボックスのサイズよりもはるかに小さかった (約 4 倍未満)。
コードの最後の行を次のように変更したとき
svg.setDocumentViewBox(0, 0, width/4, height/4);
画像のサイズはビューボックスのサイズとほぼ同じになりましたが、それでも少し小さいままです。なぜこうなった?setDocumentViewBox
また、メソッドの入力にはどの値を適用する必要がありますか?