SVGのドロアブルがあります。時々、サイズを調整する必要があります。通常、幅と高さを更新します。私が解決できないのは、ビューポート幅と高さもsvgにどのように影響するかです。これらの寸法を変更すると、svgが可視領域内のビューから押し出される可能性があるようです。
これらの測定単位は何を表していますか?それぞれ幅と高さとの関係は何ですか? Googleからのドキュメント は、(いつものように)ひどく不適切です。誰かが詳しく説明してもらえますか?
viewportWidth
とviewPortHeight
は、VectorDrawableのコンテンツが描画されるドキュメントの領域を定義します。これらは、SVG viewBox
のwidthおよびheightフィールドと同等です。さらに説明が必要な場合は、SVG viewBoxの仕組みを調べてください。
したがって、形状が幅100、高さ100の長方形であると想像してください。 viewportWidth
とviewPortHeight
は通常、両方とも100に設定する必要があります。そのため、Androidは基礎となる形状の寸法を知っています。
width
属性とheight
属性は、Android VectorDrawableのデフォルト(「組み込み」)レンダリングサイズがどうあるべきかを示します。これらは幅のように考えることができます。 PNGまたはGIF(またはSVG)の高さ。
したがって、VectorDrawableのコンテンツは100x100の領域で定義できます。ただし、幅と高さが24x24の場合、コンテンツは100x100から24x24に縮小されます。
だからこそ、viewportWidth
とviewPortHeight
をいじるVectorDrawableをいじるのです。したがって、たとえば、それらを50x50に変更すると、シェイプ全体ではなく24x24に縮小されたシェイプの1つのコーナーになります。
Viewportwidth/ViewportheightはSVGパスのキャンバスの寸法であり、width/heightはドロアブル全体の実際の固有の寸法です。