关于android中shape的使用

Shape Drawable

这一类的shape定义在xml中

file location:
res/drawable/filename.xml
The filename is used as the resource ID.(这个文件名作为资源id,被当做图片资源使用)
compiled resource datatype:(复杂资源的数据类型)
Resource pointer to a  GradientDrawable.
resource reference(资源参考):
In Java:  R.drawable.filename
In XML:  @[package:]drawable/filename
syntax:(语法)

 
 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <shape 
  3.     xmlns:android="http://schemas.android.com/apk/res/android" 
  4.     android:shape=["rectangle" | "oval" | "line" | "ring"] >
  5. //长方形/矩形 椭圆形 线性 圈/环 
  6.     <corners 
  7.         android:radius="integer" 
  8.         android:topLeftRadius="integer" 
  9.         android:topRightRadius="integer" 
  10.         android:bottomLeftRadius="integer" 
  11.         android:bottomRightRadius="integer" /> 
  12.     <gradient 
  13.         android:angle="integer" 
  14.         android:centerX="integer" 
  15.         android:centerY="integer" 
  16.         android:centerColor="integer" 
  17.         android:endColor="color" 
  18.         android:gradientRadius="integer" 
  19.         android:startColor="color" 
  20.         android:type=["linear" | "radial" | "sweep"] 
  21.         android:useLevel=["true" | "false"] /> 
  22.     <padding 
  23.         android:left="integer" 
  24.         android:top="integer" 
  25.         android:right="integer" 
  26.         android:bottom="integer" /> 
  27.     <size 
  28.         android:width="integer" 
  29.         android:height="integer" /> 
  30.     <solid 
  31.         android:color="color" /> 
  32.     <stroke 
  33.         android:width="integer" 
  34.         android:color="color" 
  35.         android:dashWidth="integer" 
  36.         android:dashGap="integer" /> 
  37. </shape> 

元素:
<shape>
The shape drawable. This must be the root element.

attributes:

xmlns:android
StringRequired. Defines the XML namespace, which must be  "http://schemas.android.com/apk/res/android".
android:shape
Keyword. Defines the type of shape. Valid values are:(定义这个类型的形状,变量值是:)
Value Desciption
"rectangle" A rectangle (长方形)that fills the containing View. This is the default shape.(这个是默认的形状)
"oval" An oval (椭圆形)shape that fits the dimensions of the containing View.
"line" A horizontalline that spans the width of the containing View. This shape requires the <stroke> element to define the width of the line.水平线,需要在stroke中定义线的宽度
"ring" A ring shape.(环状/圈)

The following attributes are used only when android:shape="ring":

android:innerRadius
Dimension. The radius for the inner part of the ring (the hole in the middle), as a dimension value or  dimension resource.
android:innerRadiusRatio
Float. The radius for the inner part of the ring, expressed as a ratio of the ring's width. For instance, if  android:innerRadiusRatio="5", then the inner radius equals the ring's width divided by 5. This value is overridden by  android:innerRadius. Default value is 9.
android:thickness
Dimension. The thickness of the ring, as a dimension value or  dimension resource.
android:thicknessRatio
Float. The thickness of the ring, expressed as a ratio of the ring's width. For instance, if  android:thicknessRatio="2", then the thickness equals the ring's width divided by 2. This value is overridden by  android:innerRadius. Default value is 3.
android:useLevel
Boolean. "true" if this is used as a  LevelListDrawable. This should normally be "false" or your shape may not appear .
android:visble  Provides initial visibility state of the drawable; the default value is   false. [boolean]
<corners>
Creates rounded corners for the shape. Applies only when the shape is a rectangle.创建圆角的形状。仅适用于当其形状是一个长方形。

attributes:

android:radius
Dimension. The radius for all corners, as a dimension value or  dimension resource. This is overridden for each corner by the following attributes.
android:topLeftRadius
Dimension. The radius for the top-left corner, as a dimension value or  dimension resource.
android:topRightRadius
Dimension. The radius for the top-right corner, as a dimension value or  dimension resource.
android:bottomLeftRadius
Dimension. The radius for the bottom-left corner, as a dimension value or  dimension resource.
android:bottomRightRadius
Dimension. The radius for the bottom-right corner, as a dimension value or  dimension resource.

Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to notbe rounded, a work-around is to use android:radius to set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want rounded corners.

<gradient>
Specifies a gradient color for the shape.指定一个渐变颜色的形状。

attributes:

android:angle
Integer. The angle for the gradient, in degrees. 0 is left to right, 90 is bottom to top. It must be a multiple of 45. Default is 0.
android:centerX
Float. The relative X-position for the center of the gradient (0 - 1.0).
android:centerY
Float. The relative Y-position for the center of the gradient (0 - 1.0).
android:centerColor
Color. Optional color that comes between the start and end colors, as a hexadecimal value or  color resource.
android:endColor
Color. The ending color, as a hexadecimal value or  color resource.
android:gradientRadius
Float. The radius for the gradient. Only applied when  android:type="radial".
android:startColor
Color. The starting color, as a hexadecimal value or  color resource.
android:type
Keyword. The type of gradient pattern to apply. Valid values are:
Value Description
"linear" A linear gradient. This is the default.
"radial" A radial gradient. The start color is the center color.
"sweep" A sweeping line gradient.
android:useLevel
Boolean. "true" if this is used as a  LevelListDrawable.
<padding>
Padding to apply to the containing View element (this pads the position of the View content, not the shape).适用于包含填充视图元素(这垫的位置,而不是观点内容的形状)

attributes:

android:left
Dimension. Left padding, as a dimension value or  dimension resource.
android:top
Dimension. Top padding, as a dimension value or  dimension resource.
android:right
Dimension. Right padding, as a dimension value or  dimension resource.
android:bottom
Dimension. Bottom padding, as a dimension value or  dimension resource.
<size>
The size of the shape.

attributes:

android:height
Dimension. The height of the shape, as a dimension value or  dimension resource.
android:width
Dimension. The width of the shape, as a dimension value or  dimension resource.

Note: The shape scales to the size of the container View proportionate to the dimensions defined here, by default. When you use the shape in an ImageView, you can restrict scaling by setting the android:scaleType to "center".

<solid>
A solid color to fill the shape.

attributes:

android:color
Color. The color to apply to the shape, as a hexadecimal value or  color resource.
<stroke>
A stroke line for the shape.

attributes:

android:width
Dimension. The thickness of the line, as a dimension value or  dimension resource.
android:color
Color. The color of the line, as a hexadecimal value or  color resource.
android:dashGap
Dimension. The distance between line dashes, as a dimension value or  dimension resource. Only valid if  android:dashWidth is set.
android:dashWidth
Dimension. The size of each dash line, as a dimension value or  dimension resource. Only valid if  android:dashGap is set.
example:
XML file saved at  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">     <gradient         android: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>

This layout XML applies the shape drawable to a View:

<TextView     android:background="@drawable/gradient_box"     android:layout_height="wrap_content"     android:layout_width="wrap_content" />

This application code gets the shape drawable and applies it to a View:

Resources res = getResources(); Drawable shape = res. getDrawable(R.drawable.gradient_box);  TextView tv = (TextView)findViewByID(R.id.textview); tv.setBackground(shape);

 

 

gradient   -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。

gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

solid      --  填充。

solid:实心,就是填充的意思
android:color指定填充的颜色
 

stroke   --  描边。

stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
 

corners  --  圆角。

corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners 
        android:topRightRadius="20dp"    右上角
        android:bottomLeftRadius="20dp"    右下角//这里要特别注意是右下角,不是左下角
        android:topLeftRadius="1dp"    左上角
        android:bottomRightRadius="0dp"    左下角//这里要特别注意是左下角,不是右下角
 />
 

padding   -- 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理。

http://www.cnblogs.com/xiaoQLu/archive/2011/09/14/2176359.html

 

android:angle网上有各种说法,这里,我说说自己的实验结果,渐变的时候,最原始的,即android:angle=“0”时,是从左到右,按照开始颜色到结束颜色来渲染的,android:angle=“90”是从上到下来渲染的,android:angle=“180”是从右到左来渲染的,android:angle=“360”和android:angle=“0”是一样的,所以这里应该是这样的,渲染时按照最原始的渲染色板(把控件内部看作一块可以绕中心旋转的板子)围绕控件中心来旋转相应的度数,即android:angle里面的值就是所需要旋转的角度,只是这个旋转角度必须是45的整数倍


-------------------------------------------------------------------------
以下是我测试的列子:
 
  
  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <!-- visable 提供初始可见性状态,默认为false 
  3.  --> 
  4. <shape xmlns:android="http://schemas.android.com/apk/res/android"  
  5.     android:visible="true" 
  6.     > 
  7.  
  8.     <!-- 圆角  
  9.     bottomLeftRadius 右下角  ,bottomLeftRadius是右下角,而不是左下角,这点要注意 
  10.     bottomRightRadius 左下角 
  11.     radius 角的幅度,值越大,角越圆 
  12.     topLeftRadius 左上角 
  13.     topRightRadius 右上角 
  14.     --> 
  15.     <corners 
  16.         android:bottomLeftRadius="20dp" 
  17.         android:bottomRightRadius="2dp" 
  18.         android:radius="5dp"                        
  19.         android:topLeftRadius="10dp" 
  20.         android:topRightRadius="10dp" > 
  21.     </corners> 
  22. <!-- 倾斜度,渐变 
  23. startColor 开始颜色 
  24. centerColor中间颜色 
  25. endColor结束颜色 
  26. uselevel 值是true/false 为true表示将被用作levelListDrawable(关于此 
  27. 用来管理一系列轮流交替使用的图片资源,比如电池的电量图标,用不同的图片来显示当前电量等级) 
  28. angle 渐变角度(PS:默认为angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上
  29. 。angle必须为45的整数倍) 
  30. type渐变方式,默认为线形渐变,此外还有曲线渐变,放射渐变 
  31. centerX  渐变中心X点坐标的相对位置(取值范围0-1.0) 
  32. centerY 渐变中心Y点坐标的相对位置(取值范围0-1.0) 
  33. gadientRadius 渐变色半径.当 android:type="radial" 放射渐变时才使用。单独使用
  34.  android:type="radial"会报错。 
  35.  --> 
  36.     <gradient 
  37.          
  38.         android:startColor="#DBDCDD" 
  39.         android:centerColor="#ADADAF" 
  40.         android:endColor="#B8B9BB" 
  41.         android:useLevel="false" 
  42.         android:angle="0" 
  43.         android:type="radial" 
  44.         android:centerX="0" 
  45.         android:centerY="0" 
  46.         android:gradientRadius="1"> 
  47.     </gradient> 
  48. <!--  
  49. 内部边距,即内容与边的距离 , 
  50. shape内的填充内容距离shape的大小,而不是指shape相对于其他组件的距离 --> 
  51.     <padding 
  52.         android:left="2dp" 
  53.         android:top="2dp" 
  54.         android:right="2dp" android:bottom="2dp" /> 
  55. <!-- 描述:size: 大小   
  56.      属性:   
  57.      android:width   表示形状的宽度   
  58.      android:height 表示形状的高度   --> 
  59.     <size 
  60.         android:width="100dp" 
  61.         android:height="80dp"> 
  62.     </size> 
  63. <!--  solid:实心,就是填充的意思 
  64. android:color指定填充的颜色--> 
  65.     <solid 
  66.         android:color="#ff9d77" 
  67.         > 
  68.     </solid> 
  69. <!-- 描述: stroke:描边  相当于html中的盒子模型的border   
  70.               
  71.    属性:   
  72.         android:width 描边的宽度   
  73.         android:color 描边的颜色   
  74.         android:dashWidth 表示描边的样式是虚线的宽度,   
  75.                                         值为0时,表示为实线。值大于0则为虚线。   
  76.         android:dashGap  表示描边为虚线时,虚线之间的间隔 即“ - - - - ”   
  77.         其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。 
  78.          --> 
  79.     <stroke 
  80.         android:width="20dp" 
  81.         android:color="#dcdcdc" 
  82.         android:dashWidth="2dp" 
  83.         android:dashGap="2dp"> 
  84.     </stroke> 
  85.  
  86. </shape> 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值