引言:摘录Android用户界面设计

Android支持各类xml可绘制对象,其中一些可绘制对象可用于实现让一个资源使用多个图片文件,另外一些则允许你在xml中真正地指定颜色,还有一些你从来都不会用到的,但是,了解是有必要的,指不定哪一天设计界面就会用到,在这里只是简介一下各类可绘制对象的种类与用途,想要继续深入的请走百度!

Layer List

Layer list(层列表)是用xml定义的一组可绘制对象,被用于创建LayerDrawable实例每个可绘制对象以不同的数值偏移到左、上、右、下的位置,可绘制对象以它们被声明(就像view)的顺序绘制出来,并且进行缩放以适应可用的空间

State List

StateListDrawable用选择符xml节点来定义,允许为不同状态指定不同的可绘制对象。一个简单的例子就是按钮按下之后的变化,或者是长按时的颜色变化

Level List

LevelListDrawable管理这众多的可绘制对象,并给每一个可绘制对象指派各种值,电量指示器就是一个很好的例子,到了多少等级显示不同的图片

TransitionDrawable

TransitionDrawable允许指定两个淡入或淡出的可绘制图像,startTransition(int)和reverseTransition(int)方法允许你控制两个可绘制对象之间过渡

InsetDrawable

InsetDrawable允许插入另外一个可绘制图像,当你让一个可绘制对象显得比一个view还小或者大一圈,就可以用到它了

ClipDrawable

ClipDrawable接受一个单独的可绘制对象,并依据一个由等级决定的临界点来剪切或者切掉这个单独的可绘制对象,最常用用于进度条

ScaleDrawable

ScaleDrawable允许在运行过中使用setLevel(int)来缩放可绘制对象

ShapeDrawable

ShapeDrawable是用xml定义的一个矩形,椭圆,线或环

VectorDrawable

VectorDrawable表示使用矢量数据图片的可绘制对象,可以用Android Studio自带的功能将svg格式的图片转换成这类文件

AnimatedVectorDrawable

这一种很容易创建矢量动画的方式,常通过操纵一个矢量的路径将它变成另外的一个矢量

RippleDrawable

产生类似于Android5.0碰到选项后的水纹效果

Android开发——xml知识之xml可绘制对象简介的更多相关文章

  1. Android开发——Fragment知识整理(一)

    0.  前言 Fragment,顾名思义是片段的意思,可以把Fragment当成Activity的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成.Fragment需要被嵌 ...

  2. Android开发——Fragment知识整理(二)

    0.  前言 Android开发中的Fragment的应用非常广泛,在Android开发--Fragment知识整理(一)中简单介绍了关于Fragment的生命周期,常用API,回退栈的应用等知识.这 ...

  3. 阿里内部资料:Android开发核心知识笔记共2100页,58万字,完整版开放下载

    作为一个3-5年的Android工程师,我们经常会遇到这些瓶颈: 1.技术视野窄长期在小型软件公司,外包公司工作,技术视野被限制的太厉害 2.薪资提升难初中级Android岗位薪资上升空间有限,基本上 ...

  4. android开发系列之使用xml自定义控件

    在android开发的过程中,有的时候面对多个Activity里面一些相同的布局,我们需要写多次相同的代码,同时这种方法给我们的项目维护也带来了很大不便.那么有没有一种可行的办法能够将Activity ...

  5. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

    1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...

  6. android开发中eclipse里xml开发的自动提示和使用帮助快捷键提示

    Eclipse Android 代码自动提示功能 Eclipse for android 设置代码提示功能 打 开 Eclipse 依次选择 Window > Preferences > ...

  7. Android开发笔记-加载xml资源

    1.Activity获取strings.xml中键的值 需要通过 getResources().getString(R.string.*)方法获得 以“state”为例 String value= g ...

  8. 关于Android开发中使用的XML

    1.布局 FrameLayout: 以堆叠方式显示一个或多个子视图. GridLayout: 将子视图按行和列排列. LinearLayout: 将所有子视图排列成一行或一列. RelativeLay ...

  9. Android 开发必备知识:我和 Gradle 有个约会

    腾讯Bugly特约作者:霍丙乾 0.讲个故事 0.1 Ant,我还真以为你是只蚂蚁 真正开始近距离接触编程其实是在2012年,年底的时候带我的大哥说,咱们这个 app 发布的时候手动构建耗时太久,研究 ...

随机推荐

  1. CVTE后台开发实习生岗位面试经验(2017.3)

    3月份我在看准网发布过这篇面经,现在转过来.原文链接:http://www.kanzhun.com/gsmsh10433357.html 投递岗位是web后台实习生 做完笔试后一天对方即发来面试通知 ...

  2. 关于MySQL latch争用深入分析与判断

    1.latch锁是什么锁? 2.latch锁是如何保护list? 3.latch争用的现象和过程? 4.latch什么时候会产生严重的争用? 5.如何监控latch争用情况? 6.如何确认latch争 ...

  3. 14. leetcode 383. Ransom Note

    Given an arbitrary ransom note string and another string containing letters from all the magazines, ...

  4. 推荐60个jQuery插件(转)

    jQuery插件jQuery Spin Button自定义文本框数值自增或自减 jQuery插件JQuery Pager分页器实现javascript分页功能 jQuery插件FontSizer实现J ...

  5. grunt+bower依赖管理

    安装bower(必须安装git) npm install bower -g bower按照插件命令 初始化配置 bower init 生成bower.json //如果有bower.json 直接输入 ...

  6. swift AVAudioPlayer播放音频时声音太小

    设置下声音输出的扬声器就行了 代码如下 do { try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionP ...

  7. c++ static用法总结【转载】

    static关键字是C, C++中都存在的关键字.static从字面理解,是“静态的“的 意思,与此相对应的,应该是“动态的“. static的作用主要有以下3个: 1.扩展生存期: 2.限制作用域: ...

  8. code_smith生成实体类

  9. jquery左右切换的无缝滚动轮播图

    1.HTML结构: <head> <script type="text/javascript" src="../jquery-1.8.3/jquery. ...

  10. Ubuntu16.04LTS 环境下编译安装Xen

    一.编译安装xen4.6过程 操作系统使用ubuntu16.04,通过下载xen4.6的源代码并编译安装来创建xen4.6环境. 一.依赖包的安装 sudo apt-get install gcc m ...