我找到了无数的库,以便在Android中使用SVG图像,并避免令人沮丧的创建不同的分辨率和为每个分辨率删除文件。当应用程序有很多图标或图像时,这变得非常烦人。

在Android中使用SVG图像的最简单的使用库的一步一步的过程是什么?

我还使用Android Studio和Illustrator来生成我的图标和图像。


当前回答

试试这个:

下一步:

现在编辑图像或图标名称并保存它:

其他回答

1. 您需要将SVG转换为XML,以便在Android项目中使用。

1.1你可以用Android SVG to VectorDrawable做到这一点,但它不支持SVG的所有特性,比如一些渐变。

1.2你可以通过Android Studio进行转换,但它可能会使用一些只支持API 24及更高版本的功能,从而导致你的应用在旧设备上崩溃。

并添加vectorDrawables。在Gradle文件中使用useSupportLibrary = true,并像这样使用它:

<android.support.v7.widget.AppCompatImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:srcCompat="@drawable/ic_item1" />

2. 使用支持这些特性的SVG-Android库

在应用程序类中添加以下代码:

public void onCreate() {
    SVGLoader.load(this)
}

然后像这样使用SVG:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_android_red"/>

右键单击可绘制目录,按New,然后转到Vector资产 将资产类型从剪贴画更改为本地 浏览文件 输入大小 然后单击“下一步”,然后单击“完成”

您可用的SVG图像将在可绘制目录中生成。

尝试SVG2VectorDrawable插件。点击首选项→插件→浏览插件,安装SVG2VectorDrawable。这是伟大的转换svg文件到矢量绘图。

安装完成后,您将在工具栏帮助(?)图标的右侧找到一个图标。

使用Coil库加载svg。注意,这个库是建立在Kotlin协程之上的。

导入扩展库:

implementation("io.coil-kt:coil-svg:2.1.0")

并在构造组件注册表时将解码器添加到组件注册表

ImageLoader:
val imageLoader = ImageLoader.Builder(context)
    .components {
        add(SvgDecoder.Factory())
    }
    .build()

就是这样!

点击这里了解更多信息。

您可以使用Coil库来加载SVG文件。只需在build.gradle文件中添加这些行:

// ... Coil (https://github.com/coil-kt/coil)
implementation("io.coil-kt:coil:0.12.0")
implementation("io.coil-kt:coil-svg:0.12.0")

然后添加一个扩展函数:

fun AppCompatImageView.loadSvg(url: String) {
    val imageLoader = ImageLoader.Builder(this.context)
        .componentRegistry { add(SvgDecoder(this@loadSvg.context)) }
        .build()

    val request = ImageRequest.Builder(this.context)
        .crossfade(true)
        .crossfade(500)
        .data(url)
        .target(this)
        .build()

    imageLoader.enqueue(request)
}

然后在你的活动或片段中调用这个方法:

your_image_view.loadSvg("your_file_name.svg")