在实现背景渐变的帖子里
http://androidturing.iteye.com/blog/1238909
有朋友建议看看shape的用法,确实很有帮助。这里我偷懒转一篇比较详细的帖子,和大家一起进步~!
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:
先看下面的代码:
复制到剪贴板 XML/HTML代码
- <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为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
复制到剪贴板 XML/HTML代码
- <corners
-
- android:topRightRadius="20dp" 右上角
- android:bottomLeftRadius="20dp" 右下角
- android:topLeftRadius="1dp" 左上角
- android:bottomRightRadius="0dp" 左下角
- />
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。
padding:间隔
这个就不用多说了,XML布局文件中经常用到。
大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:
复制到剪贴板 XML/HTML代码
- 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/HTML代码
- <?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>
分享到:
相关推荐
ShapeDemo示例可能包含了以上各种Shape的实际应用,通过查看和学习这个示例,开发者可以更好地理解和掌握Shape的使用方法。 总结,Shape是Android UI设计中的重要工具,通过掌握其不同形状的创建和属性设置,可以...
在提供的"ImageView+Button使用方法"压缩包中,可能包含了示例代码和资源文件,可以帮助初学者快速理解和实践上述概念。通过阅读源码,理解布局文件中的XML标签用法,以及Activity中的Java代码如何与布局组件交互,...
1. **自定义View**:Android Circle Button是通过继承自`View`类或`Button`类,并重写`onDraw()`方法来绘制圆形的背景。开发者需要理解Android图形绘制的基本原理,如画布(Canvas)、画笔(Paint)和矩形(Rect)等...
在Android开发中,按钮(Button)是用户界面中不可或缺的元素,它...以上就是关于Android中为Button添加动态效果的一些基本方法。通过这些技术,开发者可以创造出更加生动和吸引人的用户界面,提高用户对应用的满意度。
今天,我们将详细地介绍 Shape 的使用方法和相关知识点。 首先,看下面的代码: ```xml <shape> <!-- 实心 --> <!-- 渐变 --> android:startColor="#ff8c00" android:endColor="#FFFFFF" android:angle=...
下面我们将详细探讨Shape标签的使用方法以及如何通过它来提升Android应用的界面美观度。 首先,我们来看看Shape标签的基本结构: ```xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> ...
在本文中,我们将深入探讨`shape`在Android中的使用方法,以及如何通过`shape`来实现丰富的UI设计。 `shape`元素通常在XML文件中定义,该文件被放置在项目的`res/drawable`目录下。一个基本的`shape`元素结构如下:...
在Android中,我们可以使用XML布局文件来定义按钮的样式,这包括正常状态、按下状态、焦点状态等多种视觉效果。在`res\drawable`目录下创建一个XML文件,例如`button_style.xml`,内容如下: ```xml <!-- 按钮...
在Android布局文件中,我们通常使用`<Button>`标签来创建按钮。为了实现圆角效果,可以使用`android:background`属性设置一个带有圆角的形状资源。创建一个名为`button_rounded_corner.xml`的文件在`res/drawable`...
### Android中实现Button一边圆角一边直角的方法 在Android应用开发中,有时为了追求更加个性化的用户界面设计,开发者可能会遇到需要自定义Button样式的需求,例如让一个Button的一侧保持直角,而另一侧则呈现圆角...
如果简单的样式和Drawable不能满足需求,可以创建一个新的View类继承自Button,然后重写其onDraw()方法,以实现自定义的绘制逻辑。比如添加动画效果、自定义阴影等。 4. **使用StateListDrawable** ...
然后,在`CustomButton`的初始化方法`init()`中,我们将这个形状设置为Button的背景: ```java private void init() { // ... setBackgroundResource(R.drawable.custom_button_background); // ... } ``` 关于...
这种情况下,你可以在`init()`方法中添加相应的样式,如使用渐变背景、阴影效果等。 最后,我们还可以利用Android的`Drawable`类和`StateListDrawable`来为Button的不同状态(如按下、聚焦等)设置不同的显示效果:...
2. **XML布局**:在布局文件中,我们需要用`<your_custom_button_class>`标签替换默认的`<Button>`标签,确保系统使用我们的自定义按钮类。 3. **Shape Drawable**:Android的Shape Drawable可以用来绘制各种形状,...
这可以通过在`onDraw()`方法中实现或者使用`StateListDrawable`来实现不同状态下的背景切换。 另外,为了增强用户体验,我们还可以添加触摸反馈动画,如涟漪效果。在Android 5.0(API level 21)及以上版本,可以...
- **边框效果**:利用`shape` drawable资源文件,可以创建带有边框的Button,通过`stroke`标签定义边框宽度和颜色。 - **角部圆润**:`android:radius`属性用于设置圆角半径,实现圆角Button效果。 2. **状态选择...
1. XML布局中定义样式:在res/layout文件夹下的XML布局文件中,可以通过设置android:background属性,使用自定义的Drawable资源,如shape、selector等,来改变Button的背景、边框、颜色等。 2. 使用...
具体使用方法如下: 1. 首先,在项目的build.gradle文件中添加FlycoRoundView的依赖。由于提供的文件名为"H07000223-FlycoRoundView-7c7c596",我们可以推断这是特定版本的库,实际使用时需要找到对应的Gradle依赖...
在代码中,你可以使用`ProgressBar`的相关方法来控制进度,比如`setProgress()`和`setMax()`。当Button被点击时,可以启动一个异步任务并在任务执行过程中更新进度。 此外,为了提高用户体验,我们通常会将这个...
主要涉及的技术点包括使用Selector、Layer-List以及Shape等XML资源文件。 首先,我们来看`button_ctrl.xml`,这是一个Selector资源文件,用于定义Button在不同状态下的背景。Selector是Android中的一个Drawable类型...