web-dev-qa-db-ja.com

Android drawablesのviewportwidth / heightの影響は何ですか

SVGのドロアブルがあります。時々、サイズを調整する必要があります。通常、幅と高さを更新します。私が解決できないのは、ビューポート幅と高さもsvgにどのように影響するかです。これらの寸法を変更すると、svgが可視領域内のビューから押し出される可能性があるようです。

これらの測定単位は何を表していますか?それぞれ幅と高さとの関係は何ですか? Googleからのドキュメント は、(いつものように)ひどく不適切です。誰かが詳しく説明してもらえますか?

36
angryITguy

viewportWidthviewPortHeightは、VectorDrawableのコンテンツが描画されるドキュメントの領域を定義します。これらは、SVG viewBoxのwidthおよびheightフィールドと同等です。さらに説明が必要な場合は、SVG viewBoxの仕組みを調べてください。

したがって、形状が幅100、高さ100の長方形であると想像してください。 viewportWidthviewPortHeightは通常、両方とも100に設定する必要があります。そのため、Androidは基礎となる形状の寸法を知っています。

width属性とheight属性は、Android VectorDrawableのデフォルト(「組み込み」)レンダリングサイズがどうあるべきかを示します。これらは幅のように考えることができます。 PNGまたはGIF(またはSVG)の高さ。

したがって、VectorDrawableのコンテンツは100x100の領域で定義できます。ただし、幅と高さが24x24の場合、コンテンツは100x100から24x24に縮小されます。

だからこそ、viewportWidthviewPortHeightをいじるVectorDrawableをいじるのです。したがって、たとえば、それらを50x50に変更すると、シェイプ全体ではなく24x24に縮小されたシェイプの1つのコーナーになります。

46
Paul LeBeau

Viewportwidth/ViewportheightはSVGパスのキャンバスの寸法であり、width/heightはドロアブル全体の実際の固有の寸法です。

13
pdegand59