如何使XML文件中定义的svg路径可点击

时间:2018-08-08 12:05:15

标签: android android-layout svg svg-filters

我有一个svg,我使用svg2android进行了转换,我在可绘制文件夹中添加了xml文件,并在ImageView中使用了它

<ImageView
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:id="@+id/imageView"
    android:clickable="true"
    app:srcCompat="@drawable/vector"
/>

这是在屏幕上绘制3个点(来自路径数据),我想使所有这些点都可单击,当用户单击它们时,我想将这些点的颜色从黑色更改为白色。

以下是我的xml文件中的数据,是从svg转换而来的。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="400dp"
    android:height="400dp"
    android:viewportWidth="400"
    android:viewportHeight="400">

    <path
        android:name="EM_S030_F0001_L0230"
        android:fillColor="#000000"
        android:pathData="M 96.1 353 L 100.6 350.8 L 102.8 355.2 L 98.4 357.4 Z" />
    <path
        android:name="EM_S030_F0001_L0228"
        android:fillColor="#000000"
        android:pathData="M 101.8 350.3 L 106.5 348.6 L 108.2 353.2 L 103.5 355 Z" />
    <path
        android:name="EM_S030_F0001_L0226"
        android:fillColor="#000000"
        android:pathData="M 107.9 348.2 L 112.5 346.5 L 114.2 351.1 L 109.6 352.8 Z" />

1 个答案:

答案 0 :(得分:2)

imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            imageView.setImageResource(R.drawable.vector_white); 
        }
    });

vector_white.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="400dp"
android:height="400dp"
android:viewportWidth="400"
android:viewportHeight="400">

<path
    android:name="EM_S030_F0001_L0230"
    android:fillColor="#FFFFFF"
    android:pathData="M 96.1 353 L 100.6 350.8 L 102.8 355.2 L 98.4 357.4 Z" />
<path
    android:name="EM_S030_F0001_L0228"
    android:fillColor="#FFFFFF"
    android:pathData="M 101.8 350.3 L 106.5 348.6 L 108.2 353.2 L 103.5 355 Z" />
<path
    android:name="EM_S030_F0001_L0226"
    android:fillColor="#FFFFFF"
    android:pathData="M 107.9 348.2 L 112.5 346.5 L 114.2 351.1 L 109.6 352.8 Z" />