此方法可以背景图和Button渐变效果的Button按钮。代码如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<!-- 实心 -->
<solid android:color="#ffffff"/>
<!-- 描边 -->
<stroke
android:width="4dp"
android:color="#00ff00" />
<!-- 圆角 -->
<corners
android:radius="1dp" />
<padding
android:left="2dp"
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布局文件中经常用到。
然后设置为背景就可以了。
下面是自定义Button实现几种事件改变button背景色。
<?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>
运行效果图如下:
分享到:
相关推荐
在Android开发中,为了创建美观且高效的用户界面,开发者经常需要使用XML来定义图形和形状。`Graphics_shape`是Android SDK提供的一种强大的工具,允许通过XML文件定义各种形状,如矩形、椭圆、线性渐变、径向渐变等...
3. **圆形图片**:要将图片转换为圆形,最简单的方法是使用`<shape>`标签的`<solid>`和`<corners>`属性,同时设置`android:radius`为图像宽度的一半。这样会得到一个完美的圆形ImageView。 4. **自定义多边形**:...
这篇内容将深入探讨Android Shape的使用方法及其相关知识点。 首先,Shape元素是Android的Drawable类的一个子类,通常在res/drawable目录下的XML文件中定义。Shape的基本结构如下: ```xml <shape xmlns:android=...
在实际开发中,我们还可能遇到更复杂的需求,比如渐变色、图片背景等,这时候可能需要使用`GradientDrawable`的其他方法,如`setGradientType`、`setColors`等。同时,为了兼容低版本Android系统,可能需要使用`...
总结来说,Android中使用XML文件定义颜色资源是一种规范且灵活的方法,它能帮助开发者更好地组织和重用颜色信息。通过在`colors.xml`中定义颜色,然后在布局文件、`drawable`资源或代码中引用,可以提高代码的可读性...
总结来说,Android实现图片或背景的圆角效果主要依靠XML drawable和自定义View。XML方式适合简单场景,而自定义View则能应对更多复杂需求。在项目中灵活运用这两种方法,可以为你的应用增添更多设计上的可能性。记得...
本主题将深入探讨如何在Android中处理和使用背景图片,以及与之相关的技术要点。 首先,Android中的背景图片通常用于装饰Activity、布局或者单个控件,如按钮、文本视图等。我们可以使用XML资源文件或者直接使用...
下面我们将详细探讨Shape标签的使用方法以及如何通过它来提升Android应用的界面美观度。 首先,我们来看看Shape标签的基本结构: ```xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> ...
本篇文章将深入探讨Android Shape属性的使用方法,帮助开发者们更好地利用这一强大的功能。 首先,Shape元素是定义在`<shape>`标签内的,它有四个基本的子元素:`<solid>`, `<stroke>`, `<corners>`, 和 `<padding>...
下面我们将详细探讨`ShapeView`的主要特点和使用方法。 首先,`ShapeView`的核心在于它允许你在XML布局文件中直接定义形状的属性,如颜色、边框宽度、圆角半径等。例如,你可以创建一个矩形形状,设置填充色和边框...
本篇将深入探讨Android Drawable XML元素和属性的用法。 1. **Drawable XML概述** Android的Drawable XML允许开发者在代码之外定义图形对象,如颜色、形状、位图等,以提高可维护性和重用性。XML文件通常存放在res...
在Android开发中,Shape是用于绘制自定义图形的重要工具,通常通过XML文件来定义各种形状,如矩形、圆角矩形、椭圆或线。然而,当项目中需要使用多种形状时,创建和管理大量的XML文件可能会变得繁琐。本文将介绍如何...
今天,我们将详细地介绍 Shape 的使用方法和相关知识点。 首先,看下面的代码: ```xml <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> android:startColor="#ff8c00" android:...
ShapeDemo示例可能包含了以上各种Shape的实际应用,通过查看和学习这个示例,开发者可以更好地理解和掌握Shape的使用方法。 总结,Shape是Android UI设计中的重要工具,通过掌握其不同形状的创建和属性设置,可以...
在本文中,我们将深入探讨`shape`在Android中的使用方法,以及如何通过`shape`来实现丰富的UI设计。 `shape`元素通常在XML文件中定义,该文件被放置在项目的`res/drawable`目录下。一个基本的`shape`元素结构如下:...
在Android开发中,Shape是XML绘图的一种方式,它允许开发者定义各种形状并用作视图的背景。本文将深入探讨Android Shape的实现及其在实际应用中的实例。 首先,我们来了解一下Shape的基本元素。在Android的`res/...
本文将详细介绍如何自定义RatingBar的背景图片以及解决在Android 6.0(API级别23)设备上可能出现的显示不全问题。 首先,我们需要了解RatingBar的基本结构。RatingBar本质上是一个水平的ProgressBar,它通过显示一...
前言 在项目开发的过程中,有时我们会用到带边框的纯色背景图,类似效果如下: 一般的,我们会让设计给做个背景图,然后自己用.9处理一下,这样有些麻烦,... <shape android:shape=rectangle> <solid android:
在Android的资源目录下,我们可以创建一个名为`parallelogram_shape.xml`的shape文件。虽然shape元素不直接支持平行四边形,但可以通过定义一个矩形并应用变换来模拟。例如,我们可以定义一个矩形,然后在代码中...