Android三种方式生成矢量图之VectorDrawable类使用详解

 更新时间:2023年02月16日 11:03:49   作者:weixin_43912367  
这篇文章主要介绍了Android三种方式生成矢量图的VectorDrawable类,2014年6月26日的I/O 2014开发者大会上谷歌正式推出了Android L,它带来了全新的设计语言Material Design,新的API也提供了这个类VectorDrawable

生成矢量图VectorDrawable的三种方式

  • 第一种:

选中drawable文件夹,右键New --> Vector Asset --> 选中Clip Art ,在这里面可以选择一些矢量图 ,点击Next,然后 Finish即可。

  • 第二种:(前提:自己有一张svg或psd的图片)

选中drawable文件夹,右键New --> Vector Asset --> 选中Local file ,在这里面选择自己svg路径 ,点击Next,然后 Finish即可。

  • 第三种:

自己编写代码

静态VectorDrawable的使用

配置引用和参数

gradle文件种按下面配置:

android {
    defaultConfig {
        ...
        vectorDrawables.useSupportLibrary = true
    }

  ...

dependencies {
   ...

    implementation 'com.android.support:appcompat-v7:23.4.0'
}

注意:support:appcompat 必须在23.2以上的引用

在控件中使用

ImageView\ImageButtom

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/ic_aaa"
        />

既然这样可以显示,那我们如法炮制,设置在Button上面会怎么样呢?

<Button
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:srcCompat="@drawable/ic_aaa"
        />

结果超出我们的想象,并不能达到我们预期的效果。原因是:Button是一个有不同状态的控件,为了程序的严谨性,所以无效。

那我们对他的每一个状态进行设置,可不可行呢?

在drawable文件夹下新建xml文件,名为demo

demo代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_aaa" android:state_pressed="true"/>
    <item android:drawable="@drawable/ic_bubble_chart_black_24dp"/>
</selector>

然后在Button里面引用:

<Button
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@drawable/demo"
        />

然后运行:

原始状态:

按下状态:

ok,这就大功告成了。

这里要说明的一点,我这边呢,使用的Android Studio是目前最新的3.6.3,如果AndroidStudio版本较低的话,可能会出现闪退的现象。这是VectorDrawable的一个坑点。

解决方法:在相对应的Activity中加入以下代码即可

static{
        AppCompatDelegate
            .setCompatVectorFromResourcesEnabled(true);
    }    

此篇结束,下篇文章将继续讲解Android中使用动态的VectorDrawable

到此这篇关于Android三种方式生成矢量图之VectorDrawable类使用详解的文章就介绍到这了,更多相关Android VectorDrawable内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android编程实现加载等待ProgressDialog的方法

    Android编程实现加载等待ProgressDialog的方法

    这篇文章主要介绍了Android编程实现加载等待ProgressDialog的方法,实例分析了Android中加载等待类ProgressDialog的具体使用方法,需要的朋友可以参考下
    2015-12-12
  • Android实现从activity中停止Service的方法

    Android实现从activity中停止Service的方法

    这篇文章主要介绍了Android实现从activity中停止Service的方法,结合实例形式简单分析了Android中Service的注册、创建及使用stopService停止Service的方法,需要的朋友可以参考下
    2016-01-01
  • Android权限机制带来的一些安全问题介绍

    Android权限机制带来的一些安全问题介绍

    这篇文章主要介绍了Android权限机制带来的一些安全问题介绍,本文讲解了权限机制的缺陷和不足、树立权限意识、越过权限机制等内容,需要的朋友可以参考下
    2015-04-04
  • 亲自动手编写Android通用刷新控件

    亲自动手编写Android通用刷新控件

    这篇文章主要记录了亲自动手编写Android通用刷新控件的详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Android模拟器实现手机添加文件到sd卡的方法

    Android模拟器实现手机添加文件到sd卡的方法

    这篇文章主要介绍了Android模拟器实现手机添加文件到sd卡的方法,详细分析了Android模拟器添加文件到sd卡的步骤与相关技巧,需要的朋友可以参考下
    2016-06-06
  • AndroidQ(10)黑暗模式适配的实现

    AndroidQ(10)黑暗模式适配的实现

    这篇文章主要介绍了AndroidQ(10)黑暗模式适配的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Android仿zaker用手向上推动的特效开发【推动门效果】(附demo源码下载)

    Android仿zaker用手向上推动的特效开发【推动门效果】(附demo源码下载)

    这篇文章主要介绍了Android仿zaker用手向上推动的特效,结合完整实例形式分析了Android滑动切换效果的实现步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Android实现列表时间轴

    Android实现列表时间轴

    这篇文章主要为大家详细介绍了Android实现列表时间轴效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android应用中使用ViewPager和ViewPager指示器来制作Tab标签

    Android应用中使用ViewPager和ViewPager指示器来制作Tab标签

    这篇文章主要介绍了Android中使用ViewPager和ViewPager指示器来制作Tab标签的方法,ViewPager指示器ViewPageIndicator是一个开源库,文中举了一个仿网易新闻客户端Tab标签的例子,需要的朋友可以参考下
    2016-03-03
  • Ubuntu 14.04下创建Genymotion安卓虚拟机的步骤详解

    Ubuntu 14.04下创建Genymotion安卓虚拟机的步骤详解

    Android 模拟器一直以速度奇慢无比著称,基本慢到不可用。本文介绍我一直在用的 Genymotion,速度不亚于真机。而且功能齐全,使用简单。下面这篇文章主要介绍了Ubuntu 14.04下创建Genymotion虚拟机的步骤,需要的朋友可以参考下。
    2017-03-03

最新评论