内联复杂的XML资源

某些资源类型是由XML文件表示的多个复杂资源的组合。一个例子是一个可绘制的动画矢量,它是一个可绘制的资源封装矢量绘制和动画。这需要至少使用三个XML文件。

res/drawable/avd.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/vectordrawable" >
    <target
        android:name="rotationGroup"
        android:animation="@anim/rotation" />
</animated-vector>
res/drawable/vectordrawable.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="64dp"
    android:width="64dp"
    android:viewportHeight="600"
    android:viewportWidth="600" >

   <group
        android:name="rotationGroup"
        android:pivotX="300.0"
        android:pivotY="300.0"
        android:rotation="45.0" >
        <path
            android:fillColor="#000000"
            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />

   </group>
</vector>
res/anim/rotation.xml
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/android"
    android:duration="6000"
    android:propertyName="rotation"
    android:valueFrom="0"

   android:valueTo="360" />

这里有很多文件只是为了让一个动画矢量可绘制!如果矢量绘制和动画在其他地方重复使用,这是实现动画矢量绘制的最佳方式。如果它们只用于绘制这个动画矢量,那么实现它们的方法就更简单了。

使用AAPT的内联资源格式,您可以在同一个XML文件中定义全部三个资源。由于我们正在制作一个可绘制的动画矢量,因此我们将该文件置于其下res/drawable/

res/drawable/avd.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt" >

<aapt:attr name="android:drawable" >
        <vector
            android:height="64dp"
            android:width="64dp"
            android:viewportHeight="600"
            android:viewportWidth="600" >

           <group
                android:name="rotationGroup"
                android:pivotX="300.0"
                android:pivotY="300.0"
                android:rotation="45.0" >
                <path
                    android:fillColor="#000000"
                    android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />

           </group>
        </vector>
    </aapt:attr>

<target android:name="rotationGroup">
        <aapt:attr name="android:animation" >
            <objectAnimator
                android:duration="6000"
                android:propertyName="rotation"
                android:valueFrom="0"

               android:valueTo="360" />
        </aapt:attr>
    </target>
</animated-vector>

XML标签<aapt:attr >告诉AAPT标签的子元素将被视为资源并被提取到自己的资源文件中。属性名称中的值指定在父标签内使用内联资源的位置。

AAPT将为所有内联资源生成资源文件和名称。使用这种内联格式构建的应用程序与所有Android版本兼容。

Android 应用开发(9)---内联复杂的XML资源相关推荐

  1. C#开发学习——内联表达式

    <%@ 表示:引用 <%# 表示:绑定 <%= 表示:取值 <%= 变量名%> Response.Write()输出和<%=%>输出最后的效果是一样的 < ...

  2. Android 应用开发(12)---可绘制对象资源

    可绘制对象资源 可绘制对象资源是一般概念,是指可在屏幕上绘制的图形,以及可以使用 getDrawable(int) 等 API 检索或者应用到具有 android:drawable 和 android ...

  3. android go rom下载地址,一步一步学Android ROM开发(一)——修改现有ROM资源文件-Go语言中文社区...

    一,准备工作 1.一台开发手机. 我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,android版本也是最新的2. ...

  4. 一步一步学Android ROM开发(一)——修改现有ROM资源文件

    一,准备工作 1.一台开发手机. 我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,android版本也是最新的2. ...

  5. idea开发MAVEN项目target 下 mapper.xml资源 文件

    异常信息 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.yaosiyuan. ...

  6. Javascript性能优化【内联缓存】 V8引擎特性

    javascript 是单线程.动态类型语言,那么我们在编码时候如何编写性能最优代码呢?下面将讲解V8引擎的内联优化.利用内联缓存这个特性我们可以编写更加优秀的代码. 什么是内联缓存 引用官方的描述: ...

  7. java 内联_Java内联类初探

    java 内联 重要要点 Valhalla项目正在开发内联类,以提高Java程序对现代硬件的亲和力 内联类使开发人员能够编写行为更像Java内置基元类型的类型 内联类的实例不具有对象标识,这带来了许多 ...

  8. 从Android界面开发谈起(转)

    原文地址:http://blog.csdn.net/nieweilin/article/details/5967815 这篇文章没有打算有一个很好的逻辑去介绍android的某个方面,全盘大致上就是我 ...

  9. 从Android界面开发谈起

    这篇文章没有打算有一个很好的逻辑去介绍android的某个方面,全盘大致上就是我接触.了解android的ui开发后到现在的一些感想以及个人理解吧! 全文可能会涉及到java.android开发.an ...

最新文章

  1. 洛谷P4316 绿豆蛙的归宿(期望)
  2. [译] Vue.js 优雅地集成第三方 JavaScript
  3. 推荐一款非常不错的子网计算器
  4. redis-server启动但进程里没有_Redis——服务器的启动过程
  5. WPF学习一--概述
  6. 地理信息系统概论_地理信息系统概论黄杏元第3版配套练习题库——才聪学习网...
  7. 为什么只有奇次谐波_治理变频器产生谐波的应用
  8. Error:-81024 LR_VUG:The 'QTWeb' type is not supported on win32 platforms
  9. ceisum 加载geojson,webgl 加载geojson数据没有贴地
  10. JVM内存分配策略原
  11. 电脑保密检查清除痕迹_保密安全|2020年国家安全与保密宣传周来啦!
  12. SimpleDateFormat时间日期格式化,时间日期类使用示例
  13. fenby C语言 P11
  14. 进制转换(二进制、十进制、十六进制)
  15. 运算放大器单电源设计
  16. VISIO无法插入到word,ppt中
  17. 酷派童年童装×××随
  18. elasticsearch: 查询过滤某个字段值的长度
  19. Version in “./docker-compose.yml“ is unsupported.
  20. 2020年A证(安全员)考试试卷及A证(安全员)多少钱

热门文章

  1. 系统调用----sandir
  2. [读书笔记] - 《深度探索C++对象模型》第1章 关于对象
  3. android fragment 设置透明,Android透明DialogFragment
  4. 全国计算机基础知识考试题型,盘点 | 全国计算机等级考试一般考哪些内容?
  5. python输出布尔值true_关于python中bool类型的重要细节
  6. MLE(最大似然估计)和EM算法
  7. bootstrap的ajax提交
  8. 关于TagHelper的那些事情——自定义TagHelper(内嵌TagHelper)
  9. 8.4 Change Reference to Value(将引用对象改为值对象)
  10. MSHFlexGrid控件