Sibainu Relax Room

愛犬の柴犬とともに過ごす部屋

Android の VectorDrawable について 途中

概要

Android のプロジェクトの中の app/res/drawable にアイコンなどの画像データがあります。

その drawable のファイルの拡張子が xml になっています。

これで一つの画像データを表しているようです。

そのファイルの記述をみてみますとタグ「vector」がありましたので、調べてみることにしました。

タグ「vector」は「Vector graphics」という画像の表現方法の一つとということが分かりました。

私にとって、新しい発見ですので記録することにします。

vector

 
要素
説明
<vector>
ベクタードローアブルを定義するために使用。
android:name
ベクタードローアブルの名前を定義。
android:width
ベクタードローアブルの幅を定義するために使用。単位 dp で指定される寸法単位をサポート。
android:height
ベクタードローアブルの高さを定義するために使用。単位 dp で指定される寸法単位をサポート。
android:viewportWidth
ビューポートの幅を定義するために使用。ビューポートはパスが描画される仮想キャンバス。
android:viewportHeight
ビューポートの高さを定義するために使用。ビューポートはパスが描画される仮想キャンバス。
android:tint
ベクタードローアブルに適用する色。デフォルトで適用されない。
android:tintMode
ティントカラーの Porter-Duff ブレンディング モード。デフォルト:src_in
android:autoMirrored
ドローアブルのレイアウト方向が RTL (右から左) の場合に、ドローアブルをミラーリングするかどうかを指定。デフォルト: false
android:alpha
ドローアブルの不透明度。デフォルト:1.0
<group>
パスまたはサブグループのグループと変換情報を定義。変換はビューポートと同じ座標で定義。そして、変換はスケール、回転、平行移動の順に適用。
android:name
グループの名前を定義。
android:rotation
グループの回転角度。デフォルト: 0
android:pivotX
グループのスケールの旋回軸の X 座標。ビューポートで定義。デフォルト: 0
android:pivotY
グループのスケールの旋回軸の Y 座標。ビューポートで定義。デフォルト: 0
android:scaleX
X 座標のスケールの量。デフォルト: 1
android:scaleY
Y 座標のスケールの量。デフォルト: 1
android:translateX
X 座標上の移動量。ビューポートで定義。デフォルト: 0
android:translateY
Y 座標上の移動量。ビューポートで定義。デフォルト: 0
<path>
描画するパスを定義。
android:name
パスの名前を定義。
android:pathData
スケーラブルベクターグラフィック (SVG) の描かれるパスを定義する “d” 属性とまったく同じ形式を使用して定義。ビューポートで定義。
MDNリンク(https://developer.mozilla.org/ja/docs/Web/SVG/Attribute/d
android:fillColor
パスの塗潰しの色を指定。
android:strokeColor
パスの輪郭の描画に使用する色を指定。
android:strokeWidth
パスストロークの幅。デフォルト:0
android:strokeAlpha
パスストロークの不透明度。デフォルト:1
android:fillAlpha
パスを埋める不透明度。デフォルト:1
android:trimPathStart
先頭からトリムするパスの小数部分。範囲は 0 ~ 1 デフォルト:0
android:trimPathEnd
パスの端からトリミングする部分を 0 ~ 1 の範囲で指定。デフォルト:1
android:trimPathOffset
0 から 1 の範囲で、領域をシフトトリム (表示領域に開始と終了を含めることができます)。デフォルト:0
android:strokeLineCap
ストロークパスの端点がどのように描かれるかを設定: butt、round、square。デフォルト:butt
外部リンク(https://developer.mozilla.org/ja/docs/Web/SVG/Attribute/d
android:strokeLineJoin
ストロークパスの長さがゼロでない 2 つの接続された区間(直線、円弧、曲線)をどのように結合するかを設定: miter、round、bevel。デフォルト:miter
MDNリンク(https://developer.mozilla.org/ja/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors)
android:strokeMiterLimit
ストロークパスの内側の接続点から外側の接続点をどれだけ遠くに配置できるかを設定。デフォルト:4
MDNリンク(https://developer.mozilla.org/ja/docs/Web/SVG/Attribute/stroke-miterlimit)
android:fillType
形状の内側 (塗りつぶされる領域) を決定する方法を設定。方法は「evenOdd」ルールまたは「nonZero」ルールのいずれか。SVG の「fill-rule」プロパティと同じように動作します。
MDNリンク(https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule)
<clip-path>
現在のクリップとなるパスを定義。クリップ パスは現在のグループとその子にのみ適用されることに注意。
android:name
クリップパスの名前を定義します。
android:pathData
スケーラブルベクターグラフィック (SVG) の描かれるパスを定義する “d” 属性とまったく同じ形式でクリップパスを定義。
MDNリンク(https://developer.mozilla.org/ja/docs/Web/SVG/Attribute/d
 
計 34要素
 

memo

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<String> data = new ArrayList<>();
        for (int i=1 ; i<=20 ; i++){
            data.add(String.valueOf(i));
        }

        // リスト項目とListViewを対応付けるArrayAdapterを用意する
        ArrayAdapter adapter2 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data);

        // ListViewにArrayAdapterを設定する
        ListView lv2 = (ListView)findViewById(R.id.list_View2);
        lv2.setAdapter(adapter2);
    }
}