Resource概述
Animation
- 该标签有一个android:ordering属性,控制内嵌在其中的动画展示顺序
- 用于在指定的一段时间类控制一个Object的特定属性
- android:propertyName属性;如android:propertyName="alpha",目标对象需要有对应的setAlpha()方法
- android:valueTo属性;动画最终停留的值
- android:valueFrom属性;动画起始的值
- android:duration属性:动画生命时间
- android:valueType属性:属性数据类型
- 代表ValueAnimator,用于在一段时间类修改一个值。除了没有android:propertyName属性其它同<objectAnimator>基本一致
-------------------xml文件内容------------------------
res/animator/property_animator.xml:
<set android:ordering="sequentially"><set><objectAnimatorandroid:propertyName="x"android:duration="500"android:valueTo="400"android:valueType="intType"/><objectAnimatorandroid:propertyName="y"android:duration="500"android:valueTo="300"android:valueType="intType"/></set><objectAnimatorandroid:propertyName="alpha"android:duration="500"android:valueTo="1f"/>
</set>
----------------------Java客户代码------------------------------
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,R.anim.property_animator);
set.setTarget(myObject);
set.start();
- android:oneshot属性为true只反映一次,false则循环放映
- android:drawable属性指定这一帧所使用的图片
- android:duration属性指定这一帧停留的时间
-------------------xml文件内容------------------------
res/anim/rocket.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><item android:drawable="@drawable/rocket_thrust1" android:duration="200" /><item android:drawable="@drawable/rocket_thrust2" android:duration="200" /><item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
----------------------Java客户代码------------------------------
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();
Drawable
一、Bitmap File
-------------------xml文件内容------------------------
res/drawable/layers.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item><bitmap android:src="@drawable/android_red"android:gravity="center" /></item><item android:top="10dp" android:left="10dp"><bitmap android:src="@drawable/android_green"android:gravity="center" /></item><item android:top="20dp" android:left="20dp"><bitmap android:src="@drawable/android_blue"android:gravity="center" /></item>
</layer-list>
----------------------客户代码------------------------------
<ImageViewandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:src="@drawable/layers" />
- xmlns:android 定义xml域名空间其值必须为"http://schemas.android.com/apk/res/android".
- 定义不同状态对应不同的drawable
- android:drawable:其值是对一个drawable资源的引用
- android:state_pressed、android:state_focused、android:state_selected等等状态
-------------------xml文件内容------------------------res/drawable/button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"android:drawable="@drawable/button_pressed" /> <!-- pressed --><item android:state_focused="true"android:drawable="@drawable/button_focused" /> <!-- focused --><item android:state_hovered="true"android:drawable="@drawable/button_focused" /> <!-- hovered --><item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
----------------------客户代码------------------------------
<Buttonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:background="@drawable/button" />
- android:drawable:所对应的Drawable资源
- android:maxLevel:当前Drawable能显示的level最大值
- android:minLevel:当前Drawable能显示的level最小值
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" ><itemandroid:drawable="@drawable/status_off"android:maxLevel="0" /><itemandroid:drawable="@drawable/status_on"android:maxLevel="1" />
</level-list>
- xmlns:android:xml域名空间通常值为"http://schemas.android.com/apk/res/android".
- android:shape:几何形状,"rectangle"、"oval"、"line"(需要通过<stroke> 指定宽度)、"ring" 对应矩形、椭圆、线、环。
- 当android:shape="ring"时:
- android:innerRadius:环的内部半径
- android:thickness:环的厚度
- 当android:shape="rectangle"时:
- <corners>该标签用于设置每个角上的角度
- android:radius:所有角的半径;也有android:topLeftRadius、android:topRightRadius等针对不同角设置不同的弧度
- 形状填充颜色,只有一个android:color属性指定颜色
<gradient>
- 当前形状的渐变颜色
- android:angle:渐变的角度,0从左到右,90从上到下
- android:startColor:起始颜色
- android:centerColor:开始到结束中间的颜色
- android:endColor:结束颜色
- android:type:渐变样式,线性还是?
- 形状大小
- android:height:高度
- android:width:宽度
- 当前形状的边
- android:width:宽度
- android:color:颜色
-------------------xml文件内容------------------------
res/drawable/gradient_box.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><gradientandroid:startColor="#FFFF0000"android:endColor="#80FF00FF"android:angle="45"/><padding android:left="7dp"android:top="7dp"android:right="7dp"android:bottom="7dp" /><corners android:radius="8dp" />
</shape>
----------------------客户代码------------------------------
<TextViewandroid:background="@drawable/gradient_box"android:layout_height="wrap_content"android:layout_width="wrap_content" />
Menu
- android:id:定义一个唯一的id
- android:title:菜单标题
- android:titleCondensed:如果系统嫌弃前面内容太长可以选择使用这里的值
- android:icon:图标
- android:onClick:指定其点击事件处理方法,不设置也可以在onOptionMenu中处理点击事件,这里指定的方法必须声明在Activity中,且是public,而且参数为 MenuItem。
- android:showAsAction:控制合适如何显示当前item。
- ifRoom表明有空间则放,没空间存入overflowMenu中;
- withText同时显示一个字符,可以显示一个"|“字符作为两个Action之间的界限。
- never、always一个永不一个总是显示到ActionBar中。
- collapseActionView:不展开当前Item关联的Action View。
- android:actionLayout:Layout use as action View
- android:actionViewClass:类的全称,如android.widget.SearchView
- android:actionProviderClass:共享信息使用,如android.widget.ShareActionProvider
- android:orderInCategory:当前item在group中的权重,值越大越往后
- 管理一组item
-------------------xml文件内容------------------------
res/menu/example_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/item1"android:title="@string/item1"android:icon="@drawable/group_item1_icon"android:showAsAction="ifRoom|withText"/><group android:id="@+id/group"><item android:id="@+id/group_item1"android:onClick="onGroupItemClick"android:title="@string/group_item1"android:icon="@drawable/group_item1_icon" /><item android:id="@+id/group_item2"android:onClick="onGroupItemClick"android:title="@string/group_item2"android:icon="@drawable/group_item2_icon" /></group><item android:id="@+id/submenu"android:title="@string/submenu_title"android:showAsAction="ifRoom|withText" ><menu><item android:id="@+id/submenu_item1"android:title="@string/submenu_item1" /></menu></item>
</menu>
----------------------Java客户代码------------------------------
public boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.example_menu, menu);return true;
}
public void onGroupItemClick(MenuItem item) {// One of the group items (using the onClick attribute) was clicked// The item parameter passed here indicates which item it is// All other menu item clicks are handled by onOptionsItemSelected()
}
String
- name:string的名字
-------------------xml文件内容-----------------------
res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="hello">Hello!</string>
</resources>
----------------------客户代码------------------------------
<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello" />
- name:字符数组的名字
- <item>:数组元素中的值
-------------------xml文件内容-----------------------
res/values/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="planets_array"><item>Mercury</item><item>Venus</item><item>Earth</item><item>Mars</item></string-array>
</resources>
----------------------Java客户代码------------------------------
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);
Bool
-------------------xml文件内容-----------------------
res/values-small/bools.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><bool name="screen_small">true</bool><bool name="adjust_view_bounds">true</bool>
</resources>
----------------------Java客户代码------------------------------
Resources res = getResources();
boolean screenIsSmall = res.getBoolean(R.bool.screen_small);
----------------------客户代码------------------------------
<ImageViewandroid:layout_height="fill_parent"android:layout_width="fill_parent"android:src="@drawable/logo"android:adjustViewBounds="@bool/adjust_view_bounds" />
Color
-------------------xml文件内容-----------------------
res/values/colors.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><color name="opaque_red">#f00</color><color name="translucent_red">#80ff0000</color>
</resources>
----------------------Java客户代码------------------------------
Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
----------------------客户代码------------------------------
<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:textColor="@color/translucent_red"android:text="Hello"/>
Dimension
-------------------xml文件内容-----------------------
res/values/dimens.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="textview_height">25dp</dimen><dimen name="textview_width">150dp</dimen><dimen name="ball_radius">30dp</dimen><dimen name="font_size">16sp</dimen>
</resources>
----------------------Java客户代码------------------------------
Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size);
----------------------客户代码------------------------------
<TextViewandroid:layout_height="@dimen/textview_height"android:layout_width="@dimen/textview_width"android:textSize="@dimen/font_size"/>
Integer
-------------------xml文件内容-----------------------
res/values/integers.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><integer name="max_speed">75</integer><integer name="min_speed">5</integer>
</resources>
----------------------Java客户代码------------------------------
Resources res = getResources();
int maxSpeed = res.getInteger(R.integer.max_speed);
Integer Array
-------------------xml文件内容-----------------------
res/values/integers.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources><integer-array name="bits"><item>4</item><item>8</item><item>16</item><item>32</item></integer-array>
</resources>
----------------------Java客户代码------------------------------
Resources res = getResources();
int[] bits = res.getIntArray(R.array.bits);
Style
- name:style的名字
- parent:父类,可为空
- 定义样式的单独属性,是<style>标签下的子标签
- name:属性attribute名字
-------------------xml文件内容-----------------------
<?xml version="1.0" encoding="utf-8"?>
<resources><style name="CustomText" parent="@style/Text"><item name="android:textSize">20sp</item><item name="android:textColor">#008</item></style>
</resources>
----------------------客户代码------------------------------
<?xml version="1.0" encoding="utf-8"?>
<EditTextstyle="@style/CustomText"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Hello, World!" />
样式的定义与使用
- 从layout设置的属性集中获取attrs中的属性
- set:表示从layout文件中直接为这个View添加的属性的集合
- 还记得View构造器的参数(Context context, AttributeSet set)?
- 直接从Theme中读取属性
- 从资源文件定义的style中读取属性
- resId:直接从资源文件中定义的某个样式中读取
- defStyleAttr:是自定义一个可以在Theme中配置样式的关键,如TextView
- <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
- //在主题中设置textview的style
- <item name="android:textViewStyle">@style/textviewstyle</item>
- </style>
- <style name="textviewstyle" parent="android:style/Widget.TextView">
- <!--指定一些属性-->
- </style>
- public TextView(Context context, AttributeSet attrs) {
- //指定属性textViewStyle为defStyleAttr,然后系统会去搜索Theme中你为这个 属性配置的style
- this(context, attrs, com.android.internal.R.attr.textViewStyle);
- }
- defStyleRes:直接从资源文件中定义的某个样式中读取
- View的layout中声明的属性。如app:custom_attr="value"或者android:style="@style/myStyle"
- 当前App或者Activity的Theme中配置样式,需要在obtainStyledAttributes (AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) 方法中声明(红色字体)
- obtainStyledAttributes (AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) 方法中(红色字体)声明的资源中的属性
- 当前App或者Activity的Theme中声明的属性
一、声明attr
res/values/styles.xml
<declare-styleable name="custom_attrs"><attr name="custom_color1" format="color"></attr><attr name="custom_color2" format="color"></attr><attr name="custom_color3" format="color"></attr><attr name="custom_color4" format="color"></attr><attr name="custom_color5" format="color"></attr>
</declare-styleable>
<attr name="custom_style" format="reference"></attr>
二、定义attr
res/layout/mylayout.xml
<com.exmp.MyCustomViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:style="@style/myStyle"app:custom_color1="#ff000000">
</com.exmp.MyCustomView>res/values/styles.xml
<style name="myStyle"><item name="custom_color1">#ff111111</item><item name="custom_color2">#ff111111</item></style>
res/values/styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">//配置style<item name="custom_style">@style/custom_theme</item>//直接在主题中指定<item name="custom_color1">#ff444444</item><item name="custom_color2">#ff444444</item><item name="custom_color3">#ff444444</item><item name="custom_color4">#ff444444</item><item name="custom_color5">#ff444444</item>
</style>res/values/styles.xml
<style name="custom_theme"><item name="custom_color1">#ff222222</item><item name="custom_color2">#ff222222</item><item name="custom_color3">#ff222222</item></style>
<style name="default_style"><item name="custom_color1">#ff333333</item><item name="custom_color2">#ff333333</item><item name="custom_color3">#ff333333</item><item name="custom_color4">#ff333333</item>
</style>
三、对应java客户代码
public MyCustomView(Context context) {this(context,null);
}
public MyCustomView(Context context, AttributeSet set) {this(context, set, R.attr.custom_style); //对应PartB
}public LinearRecyclerView(Context context, AttributeSet set, int defStyle) {super(context, set, defStyle);final TypedArray a = context.obtainStyledAttributes(set, R.styleable.custom_attrs, defStyle, R.style.default_style); //对应PartC
}
<include>/<merge>
Reference:
Resource概述相关推荐
- Spring IOC 组件概述
IOC 概述 IOC: Inversion of Control(控制反转), 这里其实指的是: 将程序中需要使用的 POJOs, 丢入到容器中, 解析成统一的 BeanDefinition(主要基于 ...
- Oracle Resource Manager 概述
官网的链接说明 About Oracle Database Resource Manager http://docs.oracle.com/cd/E11882_01/server.112/e25494 ...
- android逆向分析概述_Android存储概述
android逆向分析概述 Storage is this thing we are all aware of, but always take for granted. Not long ago, ...
- Windows Server 2008技术概述(自CSDN)
简介 概述 Microsoft Windows Server 2008 用于在虚拟化工作负载.支持应用程序和保护网络方面向组织提供最高效的平台.它为开发和可靠地承载 Web 应用程序和服务提供了一个安 ...
- 《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一1.1 虚拟化概述
1.1 虚拟化概述 在了解虚拟化之前,你可能会提出以下一些问题: 什么是虚拟化? 为什么我们需要虚拟化? 虚拟化技术有哪些? 虚拟化的历史由来是怎样的? 怎么才能实现虚拟化技术? 1.1.1 虚拟化的 ...
- 大数据入门第五天——离线计算之hadoop(上)概述与集群安装
一.概述 根据之前的凡技术必登其官网的原则,我们当然先得找到它的官网:http://hadoop.apache.org/ 1.什么是hadoop 先看官网介绍: The Apache™ Hadoop® ...
- Android ImageLoader(Android-Universal-Image-Loader)【1】概述及使用简单介绍
Android ImageLoader(Android-Universal-Image-Loader)[1]概述及使用简单介绍 一,前言:为什么要引入Android-Universal-Imag ...
- 我眼中的Linux设备树(一 概述)
一 概述 设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡 ...
- SQL SERVER的锁机制(二)——概述(锁的兼容性与可以锁定的资源)
二.完整的锁兼容性矩阵(见下图) 对上图的是代码说明:见下图. 三.下表列出了数据库引擎可以锁定的资源. 名称 资源 缩写 编码 呈现锁定时,描述该资源的方式 说明 数据行 RID RID 9 文件编 ...
最新文章
- PennyLane | 用于量子计算机可微分编程的跨平台Python库
- oracle元字符,oracle中正则表达式的基本元字符
- label实现不同大小不同颜色
- 微信小程序傻瓜制作_盘点:微信小程序制作平台有哪些
- 新生命 · 人工智能 · 未来
- 回文自动机:从入门到只会打板
- java 常见错误_Java常见错误的十大列表(前100名!)
- 爬虫软件python彻底卸载_Python爬虫实践:如何优雅地删除豆瓣小组的帖子
- fastq-dump 报错 解决方案
- java ee最新_从此再无 JavaEE,现在叫 JakartaEE
- 如何在MVC中下载模板和上传word文件
- bch怎么挖_BCH与BSV的减半,给目前正在反弹中的行情带来什么?
- Linux 命令(8)—— rz 命令与 sz 命令
- 加州理工学院公开课:机器学习与数据挖掘_过拟化
- 深度学习TF—4.随机梯度下降
- Pycharm安装Markdown插件
- 服务器机房日常维护记录表,机房设备维护记录表
- MYSQL(mysqld --initialize --console初始化的时候报错:Can‘t create directory ‘C:\web\mysql-8.0.11\data\‘)
- 关于NC6.X企业报表取不了数的问题及其解决方法。
- Android实现圆形图像的两种方法(Glide和Picasso)
热门文章
- Qt数据可视化QChart - QBarSet柱状图
- 【论文阅读|深读】GAS:Role-Oriented Graph Auto-encoder Guided by Structural Information
- 主引导记录(MBR)、硬盘分区表(DPT)、扩展引导记录(EBR)
- HashTable 使用
- php ses 发送邮件,使用PHP SDK从Amazon SES发送HTML邮件
- 网站本地化翻译、建设助力企业拓展全球市场 安睿杰翻译
- linux debian vi,debian系统中常用的vi命令使用和讲解
- PTA-- 快速排序(25)
- Login 和 Logout
- 哈佛结构和冯·诺依曼结构