`
咖啡动力
  • 浏览: 440502 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Android中常常使用shape来定义控件

阅读更多

Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:

先看下面的代码:
        <shape>
            <!-- 实心 -->
            <solid android:color="#ff9d77"/>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
solid:实心,就是填充的意思
android:color指定填充的颜色

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

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

corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners
        android:topRightRadius="20dp"    右上角
        android:bottomLeftRadius="20dp"    右下角
        android:topLeftRadius="1dp"    左上角
        android:bottomRightRadius="0dp"    左下角
/>
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。

padding:间隔
这个就不用多说了,XML布局文件中经常用到。


大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:

main.xml:
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TestShapeButton"
    android:background="@drawable/button_selector"
    />

button_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:type="radial"
                android:gradientRadius="50" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc"
                android:dashWidth="5dp"
                android:dashGap="3dp" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item android:state_focused="true" >
        <shape>
            <gradient
                android:startColor="#ffc2b7"
                android:endColor="#ffc2b7"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item>      
        <shape>
            <solid android:color="#ff9d77"/>
            <stroke
                android:width="2dp"
                android:color="#fad3cf" />
            <corners
                android:topRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                android:topLeftRadius="0dp"
                android:bottomRightRadius="0dp"
            />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
运行效果如下图:
一般状态:


获得焦点状态:


按下状态:



本文出自 “Kofi” 博客,请务必保留此出处http://kofi1122.blog.51cto.com/2815761/521605
分享到:
评论

相关推荐

    Android中shape定义控件的使用

    Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结: 先看下面的代码: &lt;shape&gt; &lt;!-- 实心 --&gt; &lt;solid android:color=#ff9d77/&gt; &lt;!-- 渐变 --&...

    Android控件美化之Shape的使用

    ### Android控件美化之Shape的使用 在Android开发过程中,为了提升用户体验,界面美观是非常重要的一个环节。在美化界面的过程中,`Shape`是一种非常实用且灵活的工具,它可以帮助开发者轻松实现各种各样的视觉效果...

    android shape的使用及渐变色、分割线、边框、半透明阴影

    Android Shape是一种在Android系统中使用的图形形状控件,可以用于创建各种形状的视图控件,例如矩形、椭圆、线条、圆环等。Shape控件可以使用xml文件来定义,该文件可以包含多个属性来控制形状的外观和行为。 首先...

    Android中shape的使用

    Android 中的 shape 是一种定义控件显示属性的方式,通过使用 shape 可以实现控件的背景、边框、圆角、渐变等效果。今天,我们来详细讲解 shape 的使用规则和其在实际开发中的应用。 首先,shape 的基本结构是 `...

    Android之shape实现控件圆角、背景等

    本篇文章将深入探讨如何利用Shape来实现控件的圆角、背景以及边框效果。 一、Shape的基本结构 Shape元素是Android图形绘制的基础,它主要有三种类型:`&lt;rectangle&gt;`(矩形)、`&lt;oval&gt;`(圆形)和`&lt;line&gt;`(线)。在...

    Android控件美化之Shape的使用[汇编].pdf

    在Android开发中,我们经常需要对UI控件进行自定义美化,以提升应用的视觉效果和用户体验。Shape是Android中一个非常实用的元素,它允许开发者定义自定义的图形样式,包括填充颜色、渐变、描边、圆角以及内部间距等...

    安卓自定义控件相关-android-shape-imageview自定义形状的imageview.rar

    在Android中,我们通常会用到`Shape Drawable`,这是一种XML资源,可以定义各种几何形状,如`&lt;shape&gt;`, `&lt;rectangle&gt;`, `&lt;oval&gt;`, 和 `&lt;path&gt;`等。这个库将这些形状与`ImageView`相结合,使得图片可以根据定义的形状...

    android shape

    Android 中的 Shape 是一个非常重要的概念,它用于定义控件的显示属性,如颜色、渐变、描边、圆角、间隔等。今天,我们将详细地介绍 Shape 的使用方法和相关知识点。 首先,看下面的代码: ```xml &lt;shape&gt; &lt;!-- ...

    Android 控件设置阴影效果

    本文主要记录Android控件设置阴影 给控件设置阴影,会使得界面元素更... 新建一个渐变的图层 item作为背景图层,主要是 gradient,shape是用来定义形状的,corners设置角度,gradient定义该形状里面为渐变色填充,star

    Android-FlycoRoundView-一个扩展原生控件支持圆角矩形框背景的库可以减少相关shape资源文件使用

    2. 引入依赖后,就可以在布局XML文件中像平常一样使用控件,但需要注意的是,由于FlycoRoundView是对原生控件的扩展,因此需要使用其自定义的类名。例如,如果要创建一个具有圆角的Button,需要使用库提供的`...

    android自定义Switch控件详解

    为了方便在布局文件中使用和配置自定义Switch,我们可以添加自定义属性。在res/values/attrs.xml中定义新的属性,然后在自定义控件类中通过`TypedArray`获取这些属性值。 6. **实现逻辑**: 在`MyCustomSwitch`类...

    Android Switch控件自定义

    在`custom_thumb.xml`和`custom_track.xml`中,我们可以使用Shape Drawable定义形状、颜色和边框等样式。例如,创建一个矩形形状: ```xml &lt;shape xmlns:android="http://schemas.android.com/apk/res/android"&gt; ...

    Android Shape控件美化实现代码

    Android Shape控件就是一个强大的工具,它允许我们通过XML来定义自定义的图形和样式,以此来定制按钮(Button)和其他视图的外观。本文将深入探讨如何使用Shape控件来美化Android应用。 首先,Shape控件是Android中...

    Android-ShapeView方便从XML创建可复用的shape减少了类似ML的shape数量

    传统的做法是使用XML中的`&lt;shape&gt;`元素来定义自定义图形,如矩形、圆角矩形、椭圆或线。然而,这种方式可能会导致XML文件数量增多,管理起来较为繁琐。为了解决这个问题,`ShapeView`应运而生,它提供了一种更高效的...

    Android控件系列之Shape使用方法

    在本文中,我们将深入探讨如何使用`Shape`及其相关的属性来美化Android应用中的控件。 首先,`Shape`是Android图形绘制中的一种基本元素,通常在`res/drawable`目录下的XML文件中定义。一个`Shape`元素可以包含以下...

    android修改控件外观(使用drawable资源)

    在Android开发中,drawable资源是不可或缺的一部分,它主要用于定义图形、形状、背景等视觉元素,还可以用来改变控件的外观。本篇文章将深入探讨如何利用drawable资源来改变Android应用中的控件外观。 首先,...

    android好看的倒计时圆形控件

    创建这样一个倒计时圆形控件,首先我们需要定义控件的外观。圆形的实现通常通过设置View的背景为一个圆形的Shape Drawable,例如一个圆环形状的XML资源文件。这个文件中可以定义圆环的宽度、颜色以及填充样式。圆环...

    Android 控件阴影设置

    本文将深入探讨如何使用第三方库以及自定义扩展来实现Android控件的阴影和圆角阴影功能。 首先,Android原生API虽然提供了诸如`View.setElevation()`方法来创建简单的阴影效果,但这在API 21(Lollipop)及以上版本...

    Android ShapeDemo

    在`ShapeDemo`项目中,开发者可能已经创建了一个或多个XML文件,使用这些标签来定义不同形状、组合和状态。通过这种方式,可以实现自定义控件的丰富背景,提升UI的交互性和美观性。实际应用中,开发者可以根据需求...

Global site tag (gtag.js) - Google Analytics