android shape总结 和控制的风格定制

1:shape总结

1):shape文件是放置在drawable文件下的。res/drawable/filename.xml.

2):shape类型:android:shape。

一共同拥有四种:rectangle。oval,line,ring。

3):corners标签:定义圆角。当且仅当控件类型位rectangle时才有作用。

android:radiuse位圆角的半径。

当然也能够单独为每一个圆角进行设置。

4):gradient标签:颜色渐变。

android:angle:颜色渐变的方向。0是从左到右;90度,是从下到上。

angle必须保证是45的倍数。

android:startColor,android:centerColor,android:endColor:分别为颜色的起始颜色。中间颜色和结束颜色。假设没有设置中间颜色,那么就从起始颜色渐变到结束颜色。否则回从起始颜色渐变到中间颜色,再从中间颜色渐变到结束颜色。

android:centerX。android:centerY:我认为这两个属性有存在的必要性的前提是要有

android:centerColor。原因是当我没有设置android:centerColor属性时,随意的改变这两个属性的值都不会改变控件的显示效果。这两个属性是渐变的中间位置。大小都是再0.0--1.0。

android:gradientRadius
渐变的半径大小。仅当渐变类型位radial的时候才有作用。

android:type
渐变的类型。有三种情况:linear,radial,sweep。

5):solid标签:
控件的颜色填充。

6):stroke标签:shape的线条。

android:width:线条的宽度。

android:color:线条的颜色。

android:dashWidth:线条的长度。当设置了该值时。将会显示位虚线。

除非你dashWidth设置的值非常大。那么看起来还是一条完整的线条。

android:dashGap:线条之间的距离。

仅仅在设置了dashWidth属性的情况下才会有效果。能够觉得是虚线之间的宽度。

7):padding标签:内边距。控件内容和控件四条边的距离。这里有点奇怪。等写完了控件样式定制再说吧。

2:控件样式定制

有时候android系统自带的控件类型看起来不是非常美观。有时我们须要自定义想要的样式效果。

此时就能够用到上面的shape
drawable了。详细用法例如以下:

这里为一个button自己定义样式。

有一个默认button样式和一个button按下之后的样式。

首先定义两个shape文件:button_normal.xml和button_pressed.xml。

button_normal.xml:

<?xml version="1.0" encoding="utf-8"?

>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners  android:radius="5dp"></corners>
    <solid android:color="#ff0000"/>
    <stroke
        android:width="1dp"
        android:color="#00ff00"
        android:dashWidth="2dp"
        android:dashGap="2dp"/>

</shape>

button_pressed.xml

<?

xml version="1.0" encoding="utf-8"?

>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <corners
        android:radius="10dp"
        ></corners>

  <!--   <solid
        android:color="#ffffff"
        ></solid> -->

        <padding

            android:left="20dp"
            android:top="1dp"
            ></padding>

        <gradient
            android:startColor="#ffffff"
            android:endColor="#000000"
            android:angle="0"
            android:centerX="0.1"
            android:centerY="0.2"
            />

    <stroke
		android:width="1dp"
		android:color="#00ff00"
		android:dashWidth="1000dp"
		android:dashGap="3dp"
        >
    </stroke>

</shape>

眼下已经写好了两种样式文件了。

那么怎么推断是按下了的状态呢? 这里引入stateDrawable文件了。

它也是採用xml方式来定义的。在控件的不同状态能够用不同的样式来显示同一个控件。

比方:button有非常多种状态,按下状态,有焦点状态。和正常状态。

范例:button_style.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"></item>
    <item android:drawable="@drawable/button_normal"></item>

</selector>

这个文件会从上到下一直匹配下来。直到找到了一个item满足控件眼下的状态。android:state_pressed 是button被按下状态。

以下一个item是默认样式,能够匹配不论什么一种状态。所以要放在最以下。否则其它全部的定义都不起作用。

最后一步:给button加入样式。

 <Button
        android:text="@string/button_style"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/button_style"

这样就得到了button被按下和正常显示两种状态了。

还记得之前有说过padding非常奇怪吗?在button_normal.xml和button_pressed.xml两个文件里我仅仅定义了一个padding,可是无论在按钮处于哪种状态下。padding属性都会应用到button上。刚学习android。希望大神多多不吝赐教。

时间: 2024-10-09 15:56:34

android shape总结 和控制的风格定制的相关文章

android shape总结 和控件样式定制

1:shape总结 1):shape文件是放置在drawable文件下的.res/drawable/filename.xml. 2):shape类型:android:shape.一共有四种:rectangle,oval,line,ring. 3):corners标签:定义圆角.当且仅当控件类型位rectangle时才有作用.android:radiuse位圆角的半径.当然也可以单独为每个圆角进行设置. 4):gradient标签:颜色渐变. android:angle:颜色渐变的方向.0是从左到

[转]Android Shape渲染的使用(经典,学习研究不后悔)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.51cto.com/1823534/1215749 感觉好久都没有写博文了,感觉自己变懒了,真对不起…-_-…   也有部分原因是因为我想写的东 西网上已经有了,再加上还有很多方面小马我也正在学习,所以….这段时间一直暂停更新我的博客文 章,看到博客的访问量一天天的增加,很开心 ...O_O...这一阵子也看了各种各样的书籍,技 术类的.非技术类的

android shape和selector共用按钮样式

项目中要使按钮点击和默认有不同效果,又要使listview的按钮有圆角效果,需要同时在drawable文件夹里面使用shape和selector属性,样式如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawab

android shape

shape使用.渐变色.分割线.边框.半透明.半透明阴影效果. http://www.tuicool.com/articles/Q7Vree <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | &

Android Shape画圆,矩形

画圆环代码如下: 画圆环,外边的边界宽度大一点即可: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="false" > <solid and

android shape的使用(转)

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状. shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=&quo

android shape使用总结

今天使用到shape,这个里面有很多属性,在这里我记录一下各个属性的使用的情况以及所代表的意思 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "

android shape图形优化Button效果

android shape可以让我们通过定义xml文件的方式创建图形,当然只能实现一些比较简单的图形(圆形,矩形,椭圆,线段),但是已经相当不错了,通过shape创建的图形作为控件的背景已经基本可以满足我的简单需求了,而且通过shape创建的图形可以适配各种屏幕. 下面就用shape定义的图形来优化Button的整体效果. 定义主布局文件activity_main.xml: 1 <RelativeLayout xmlns:android="http://schemas.android.co

Android shape的xml文件

Android shape的xml文件可以写不同形状.背景.边框.圆角等等效果,可以代替不少. 9图片的使用,缩小资源文件的大小.下面看一下shape可以包含的内容有哪些. 1 <?xml version="1.0" encoding="utf-8"?> 2 <shape 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:shape=[&