VectorDrawable ci permette di creare una forma geometrica basata su una grafica vettoriale xml, dove l’elemento
<vector> : contiene le dimensioni dell’ immagine che si vuole rappresentare
<path> : definisce la parte geometrica che si vuole disegnare
<clip-path> : definisce una forma tipo finestra
<group> : raggruppa gli elementi <path>.
Creare un vettore è molto semplice, i dati del percorso sono definiti dall attributo <pathData.
Ecco alcuni comandi:
A=arco ellittico
C= curva cubica di Bezier
L= lineto
M=moveto,indica il punto di origine del percorso.
H=linea orizzontale
Q=curva quadrata di Bezier
V=linea verticale
Z=closepath,chiude il percorso
Invece i numeri indicano le coordinate,
qui un esempio:
res/drawable/ic_vector
<?xml version=”1.0″ encoding=”utf-8″?>
<vector
xmlns:android=”http://schemas.android.com/apk/res/android“
android:height=”250dp”
android:width=”250dp”
android:viewportHeight=”50″
android:viewportWidth=”50″>
<group>
<path
android:pathData=”M 0 0 h 50 v 50 h-50 z”
android:strokeColor=”#F00000″
android:strokeWidth=”1″
android:fillColor=”#000AAA”/>
<path
android:pathData=”M 5 0 h 24 v 24 h-24 z”
android:strokeColor=”#000000“
android:strokeWidth=”1″
android:fillColor=”#00BBBA”/>
</group>
</vector>
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android“
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:orientation=”vertical”>
<ImageView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:id=”@+id/vector”/>
</LinearLayout>
MainActivity.java
package com.example.vectorDrawable.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.vectorDrawable.R;
import android.widget.*;
public class MainActivity extends AppCompatActivity {
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img=findViewById(R.id.vector);
img.setImageResource(R.drawable.ic_vector);
}
}