Android: 将 VectorDrawable 添加到 ImageView

Android: Adding a VectorDrawable to an ImageView

所以,我想制作一个带有可点击国家/地区的可滚动世界地图。所以当我发现有 VectorDrawables 之类的东西时,我决定尝试一下。

接下来我做的是从 SVG 中创建一个 VectorDrawable xml 文件并尝试将其放入我的 ImageView 中。在搜索一些信息时,我发现有 101 种方法可以做到这一点,其中 none 对我有用... 有趣的是,当我在 activity.xmlImageView 中添加 "android:src="@raw/worldmap" 时,地图会显示在预览中,但每当我尝试 运行 应用程序时,它崩溃了。

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:id="@+id/activity_show_hint"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.bert.myapplication.ShowHintActivity"
    android:weightSum="1">

    <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#fff"
        android:scaleType="center"
        android:src="@raw/worldmap">
    </ImageView>


</LinearLayout>

首先,将您的 VectorDrawable 移动到 Drawable 文件夹(不是原始文件)。然后,将此行添加到您的 Gradle 文件中:

defaultConfig{
vectorDrawables.useSupportLibrary = true
}

最后,在您的 imageView 中,更改为这个;

 <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#fff"
        android:scaleType="center"
       app:srcCompat="@drawable/worldmap">
    </ImageView>