您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
attributeset(Android的AttributeSet是什么?)
图像,资源,字符串attributeset(Android的AttributeSet是什么?)
发布时间:2020-12-06加入收藏来源:互联网点击:
2、根节点是ViewGroup,常用的布局都是ViewGroup的子类
3、重用布局文件
如果想重用某个布局文件,可以使用include标签
include layout="@layout/xx_layout" /
如果想让一个布局文件被另一个布局文件引用(使用include标签),可以使用merge作为被引用布局文件的根节点,由于merge并不会生成任何标签(在大量引用布局文件时不至于生成大量无用的标签),但是xml文件必须要有一个根节点,因此merge所起的作用就是作为xml文件的根节点,以使xml文件在编译时不至于出错,可以把merge当成FrameLayout使用;
3.图像资源
在图像资源中可以存储图像文件,还可以使用xml格式的图像资源来控件图像的状态和行为;
1.普通图像资源
Drawable da = getResources().getDrawable(R.drawable.xxx);
2.xml图像资源
xml图像资源其实就是在drawable目录中指定的xml文件,此种方式可以额外指定图像的某些属性,如图像拉动、排列方式;
bitmap xmlns:android=""
android:src="@drawable/ic_launcher"
android:tileMode="repeat"
/bitmap
3.Nine-Patch图像资源
Nine-Patch图像资源文件必须以9.png作为文件扩展名,如abc.9.png
该图像资源的主要作用是:防止图像的某一部分被拉伸;确定将图像作为背景图的控件中内容显示的位置;
Android SDK本身提供了一个Draw 9-patch的工具,启动sdk目录\tools\draw9patch.bat命令启动该工具;
可以通过此工具在png图的四周绘制1个像素粗的直线,上边缘和左边缘的直线分别表示图像在水平和垂直方向可位值的范围。如果水平或垂直方向的某个区域不需要拉伸,则可不绘制相应的直线;右边缘和下边缘的直线分别表示图像所在控件中内容的显示范围,内容只在右边缘和下边缘绘制直线的区域显示,表示内容显示范围和拉伸范围的两给直线有一个重要区别就是表示内容显示范围的直线中间不能断开,而表示拉伸范围的直线中间可以断开;
Nine-Patch图像资源与普通图像资源引用方法相同,在引用时只写文件名,活力.9.png;
4.XML Nine-Patch图像资源
Nine-Patch图像资源也有与其对应的xml图像资源,使用nine-patch标签来引用Nine-Patch格式的图像,有一个设置抖动的android:dither属性;
5.图层资源
图层资源类似于FrameLayout不同的是FrameLayout标签中可以包含任意的控件,而图层资源每一层都只有是图像,定义图层资源必须使用layer-list作为资源文件的根节点,layer-list标签中包含多个item标签,每一个标签表示一个图像,最后一个item标签显示在最顶层;
默认情况下,图像会尽量充满显示图像的范围,图像可能会有拉伸,为了避免图像拉伸,可以在item标签中使用bitmap标签引用图像;
复制代码
layer-list xmlns:android=""
item
android:bottom="10dip" 底端偏移的像素
android:left="10dip" 左侧偏移的像素
android:right="10dip" ...
android:top="10dip" ...
bitmap
android:gravity="center"
android:src="@drawable/hell" /
/item
/layer-list
复制代码
某些情况下,可以使用图层来代替FrameLayout
6.图像状态资源,处理控件不同状态下的显示状态
复制代码
selector xmlns:android=""
item android:drawable="@drawable/bm" android:state_focused="true"/item
item android:drawable="@drawable/bm" android:state_pressed="true"/item
item android:drawable="@drawable/bm"/item
/selector
// android:state_focused/pressed设置为true表示当前item的drawable属性为获取焦点和按下时的drawable样式
复制代码
7.图像级别(Level)资源
图像资源状态只能指定几种有限的状态,可以通过图像级别指定更多的状态;图像级别是一个整数的区间,可以通过ImageView.setImageLevel或Drawable.setLevel方法切换不同状态的图像;图像级别资源是xml文件,必须以level-list为根节点,每一个item表示一个级别区间,下面是一个xml文件;通过ImageView.setImageLevel(level),根据level所在的区间设定显示的图像资源,如果level不在任一区间内则清空ImageView当前图像;
level-list xmlns:android=""
item android:maxLevel="2" android:minLevel="0" android:drawable="@drawable/hell" /
item android:maxLevel="4" android:minLevel="3" android:drawable="@drawable/hell" /
/level-list
8.淡入淡出(Cross-fade)资源
也是切换两个图像(不支持多于两个图像的切换),并且使这两个图像以淡入淡出效果进行切换,如电灯在开关时逐渐变亮或逐渐变暗;
transition xmlns:android=""
item android:drawable="@drawable/hell"/
item android:drawable="@drawable/hell"/
/transition
TransitionDrawable da = ...;
// 从第一张图片切换到第二张图片,时间效果为1秒
da.startTransition(1000);
// 从第二张图片切换到第一张图片,时间效果为1秒
da.reverseTransition(1000);
9.嵌入(insert)图像资源
使用场景:要显示的图像要求要小于装载图像的View(图小于View区域),也是通过xml资源定义,只有一个节点inset。
inset xmlns:android=""
android:drawable="@drawable/hell"
android:insetLeft="10dip" !--图像距离左边的距离,延伸--上/下/右的距离--
/inset
10.剪切(Clip)图像资源,使用剪切图像资源可以只显示图像的一部分,如可以通过此来制作进度条;
clip xmlns:android=""
android:clipOrientation="horizontal" // 指定截取的方向
android:drawable="@drawable/hell" // 指定要截取的图像
android:gravity="left" // 指定截取的方式,在此为从左侧开始截取
/clip
ClipDrawable cd = ...;
cd.setLevel(1000);
上面ClipDrawable.setLevel(level)设置截取的图像宽度,ClipDrawable预设了最大值10000(表示不进行截取),最小值为0(表示不显示);
11. 比例(Scale)图像资源
scale xmlns:android=""
android:drawable="@drawable/hell"
android:scaleGravity="center" // 设置图像显示的位置
android:scaleHeight="70%" // 设置图像显示的高度
android:scaleWidth="80%" // 设置图像显示的宽度
/scale
12.形状资源
复制代码
shape xmlns:android=""
android:shape="rectangle" shape可以指定就矩形,oval(椭圆),line(直线),ring(圆)
corners 定义圆角
/corners
gradient
android:angle="45"
android:startColor="#000000"
android:endColor="#FFFFFF" 定义颜色渐变,从左下角到或上角
/gradient
padding 定义控件内容到边框的距离
/padding
stroke 定义边线
/stroke
solid 定义填充
/solid
size 定义大小
/size
/shape
复制代码
13.菜单资源
菜单不仅可以在onCreateContextMenu或onCreateOptionsMenu方法中通过代码创建,还可以在res/menu目录中建立相应的菜单资源文件,并在上面两个方法中加载菜单资源;
菜单资源文件必须以menu标签作为根节点,每一个菜单项用一个item表示,如果要定义子菜单,可以在item标签中包含menu标签;如果想将多个菜单项划为一组,可以使用group包含多个item标签;
上一篇:无题诗(《无题》全诗)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |