1. ホーム
  2. android

Androidのdrawableでviewportwidth/heightが与える影響について

2023-09-10 16:10:03

質問

SVGアセットからインポートしたベクタードローアブルを持っています。時々、私はサイズを調整する必要があります。通常、私は幅と高さを更新します。解決できないのは、viewportwidth と height も svg にどのように影響するかということです。これらの寸法を変更すると、可視領域内で svg が表示されなくなることがあるようです。

これらの測定単位は何を表しているのでしょうか。それぞれ幅と高さとの関係は何ですか? また のドキュメントは、Google の は、(いつものように)非常に不十分です。どなたか詳しく説明していただけませんか?

どのように解決するのですか?

この viewportWidthviewPortHeight は、VectorDrawable のコンテンツが描画されるドキュメントの領域を定義する。 これらは SVG の幅と高さのフィールドに相当する。 viewBox . さらに説明が必要な場合は、SVG viewBox がどのように動作するかを調べてください。

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

widthheight 属性は、VectorDrawable のデフォルト("intrinsic")レンダリングサイズがどうあるべきかを Android に知らせます。 これらは、PNG や GIF(あるいは SVG)の幅と高さのようなものだと考えることができます。

つまり、VectorDrawable のコンテンツは、100x100 の領域で定義することができます。しかし、幅と高さが24x24である場合、コンテンツは100x100から24x24に縮小されます。

というわけで、このように viewportWidthviewPortHeight は VectorDrawable を混乱させます。 たとえば、これらを 50x50 に変更すると、図形全体ではなく、図形の 1 つの角が 24x24 に縮小されることになります。