vector 用法---------资源导入

矢量图资源
查找资源图标 下载 svg
在AS中打开
这里写图片描述
点击Local File(SVG PSD) 找到存放路径 并命名 Next
这里写图片描述
drawable 目录生成文件,如下图
这里写图片描述

在appcompat 23.2.0开始,提供了vectorDrawable VectorDrawableCompat,AnimatedVectorDrawableCompat两种支持库一个用于兼容矢量图,但是这个支持库要使用的话,还得在app的gradle里面加个这样的配置:

//在gradle2.0及以上:
android {
  defaultConfig {
  vectorDrawables.useSupportLibrary = true
}}
//在gradle 1.5以前
android {
  defaultConfig {
    // Stops the Gradle plugin’s automatic rasterization of vectors
    generatedDensities = []
  }
  // Flag to tell aapt to keep the attribute ids around
  aaptOptions {
    additionalParameters "--no-version-vectors"
  }
}

使用app:srcCompat="@drawable/icon_shopping"

以上为网站使用 .,自己使用的时候直接使用的android:src=""也是可以的

用在TextView Button 的使用,只能如下使用

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_shopping"/>
</selector>

并且在布局中(Activity Fragment)添加

static {
  AppCompatDelegate.setCompatVectorFromSourcesEnabled(true);
}

**

Vector 使用

**
矢量图库资源

在网站下载批量图库资源,
这里写图片描述
这里写图片描述
解压,将一下文件copy到项目assets 下(其他是web端使用)
这里写图片描述
创建类

public class IconText extends android.support.v7.widget.AppCompatTextView {
    private static Typeface typeface = null;

    public IconText(Context context) {
        this(context, null);
    }


    public IconText(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs, 0);

    }

    public IconText(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initFont(attrs);
    }

    private void initFont(AttributeSet attrs) {
        TypedArray array = getContext().obtainStyledAttributes(attrs, R.styleable.IconText);
        String path = array.getString(R.styleable.IconText_assetsPath);
        if (path == null || path.isEmpty()) {
            throw new RuntimeException("图片ttf路径错误");
        }
        if (typeface == null) {
            typeface = Typeface.createFromAsset(getContext().getAssets(), path);
        }
        setTypeface(typeface);
    }
}

text设置图标 textSize设置图标大小textColor设置图标颜色

    <android.biginner.com.refretest.IconText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="&#xe654;"
        android:textColor="#f00"
        android:textSize="100dp"
        app:assetsPath="iconfont.ttf" />

其中android:text="&#xe654;"中的&#xe654;是从
这里写图片描述这里写图片描述
一定要copy 全,注意最后的 ;
在应用中app:assetsPath="iconfont.ttf"直接写活了,不过基本不需要, 只要在项目之前把该用的图标全部都放到里边就ok了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CCP(Concurrent Collections for C++)是一个用于C++的并发集合库,提供了一组线程安全的数据结构和并发算法。它的主要目标是帮助开发者简化并发编程,提高并发代码的性能和可维护性。 在CCP中,集合类可以被线程安全地访问和操作,而无需手动添加同步机制。例如,CCP提供了线程安全的vector类,可以在多个线程中同时对其进行读写操作而不会导致数据竞争的问题。这在并发环境中非常有用,可以避免出现数据不一致或访问冲突的情况。 CCP中的vector类使用了一些技术手段来实现线程安全。例如,它使用互斥锁来保护对vector的读写操作。当一个线程对vector进行修改时,它会自动获取锁,并保证其他线程无法同时修改。这种机制能够确保线程之间的数据访问顺序,并避免竞态条件。 使用CCP的vector类非常简单,与标准的C++ vector类几乎相同。只需包含CCP的头文件,并将vector对象声明为CCP::vector类型即可。然后,可以像使用普通的vector一样使用它,包括添加、删除、检索元素等操作。CCP的vector类还提供了一些额外的方法和功能,如线程安全的迭代器和算法,以及对容量的动态调整等。 总之,CCP的vector类是一个非常有用的工具,可以帮助我们编写高效、安全的并发代码。它提供了方便的并发集合操作,降低了并发编程的复杂度,并提供了高性能的并发算法。无论是在多线程编程还是分布式系统开发中,CCP的vector都可以有效地提升并发代码的可维护性和性能。 ### 回答2: Vector是C++标准库中的一个容器,用于存储和操作一组相同类型的元素。CCP(Code Composer Studio)是德州仪器(Texas Instruments)公司开发的一款集成开发环境(IDE),主要用于嵌入式系统的软件开发。下面是关于如何在CCP中集成Vector代码的简要步骤: 1. 打开CCP软件,创建一个新的工程或打开一个现有的工程。 2. 确定要使用的向量库,包括向量类和相关的操作函数。可以使用标准库提供的Vector类,也可以自定义一个向量类。 3. 将向量库的头文件包含到CCP工程中。可以手动将头文件复制到工程目录下,或者通过CCP的"Include路径"选项将头文件的目录添加到工程中。 4. 在CCP的源文件中使用Vector类或相关的操作函数。可以在需要使用向量的地方声明和初始化向量对象,然后进行相应的操作,如添加/删除元素、访问元素等。 5. 编译和构建CCP工程,确保源文件中使用的Vector类和函数能够正确链接和运行。 6. 在CCP中进行调试和测试,以确保向量功能的正确性和可靠性。 7. 可选的步骤是对Vector代码进行性能优化,例如使用迭代器而不是索引访问元素、使用移动语义等,以提高向量的效率和性能。 总结来说,将Vector代码集成到CCP中需要包含向量库的头文件,然后在源文件中使用Vector类和相关的操作函数。通过编译、构建、调试和测试来确保向量功能的正确性。如果需要,可以进行性能优化以提高向量的效率和性能。 ### 回答3: Vector CCP是一个开源的软件包,用于在C++中集成并使用CCP(Can Communication Protocol)协议。 首先,我们需要将Vector CCP的软件包下载到本地。可以从官方网站或其他可靠的资源下载到最新版本的软件包。下载完成后,解压压缩文件,并将其包含到项目的工程文件中。 接下来,我们需要在创建的工程中导入Vector CCP的头文件,并使用其提供的函数和类来实现对CCP协议的集成。可以根据需要使用的具体功能进行调用。例如,可以使用CCP类的初始化函数来建立与ECU(Engine Control Unit)之间的通信连接。 然后,我们需要配置相关的参数,比如设定通信的波特率、网络配置等。这些参数可以通过CCP类的成员函数来设置,根据具体的需求进行调整。 接着,可以使用CCP类的函数来发送和接收CAN消息。可以定义自己的数据结构,并使用CCP提供的函数将数据打包成CAN消息进行发送,同时可以使用CCP提供的函数对接收到的CAN消息进行解包,提取所需的数据。 最后,在使用完CCP协议后,要记得关闭和释放CCP连接,以确保资源的正常释放和系统的稳定性。可以调用CCP类的关闭连接函数来完成这一步。 需要注意的是,Vector CCP只是一个工具包,它提供了与CCP协议相关的一些函数和类,但实际的集成工作还需要开发者根据自己的需求进行扩展和定制。因此,在集成Vector CCP代码之前,请确保对CCP协议及相关技术有一定的了解,并进行合适的学习和准备。 总结来说,集成Vector CCP代码需要下载和导入软件包、配置参数、使用CCP提供的函数和类来发送和接收CAN消息,并在使用完毕后关闭连接。这样可以实现在C++中对CCP协议的集成和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值