项目要求使用XML制作背景,背景是一个圆形和圆角矩形的拼接,还要求有边框。如下图:
[img]http://dl.iteye.com/upload/attachment/0072/4130/94ed112c-aa59-3f50-876f-b06d5431643a.png[/img]

在网上调查了shape的用法,大家可以参考:
[url]http://xianqu.org/2012/04/android-borders-and-radius-corners/[/url]
[url]http://kofi1122.blog.51cto.com/2815761/521605[/url]

layer-list可以满足需求,同时需要使用到padding选项。
                android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />

但无论如何设定,padding都没有效果。后来查到[url]http://stackoverflow.com/questions/1283085/padding-doesnt-affect-shape-in-an-xml-layout[/url],是同样的问题。得知在shape中要设定padding的时候,需要直接写在item的属性里。实现代码如下:
<?xml version="1.0" encoding="utf-8"?>















android:endColor="#FFFAF0"
android:startColor="#F8F8FF"
android:type="linear" />




android:endColor="#FFFAF0"
android:startColor="#F8F8FF"
android:type="linear" />





注:
后边的item会覆盖前边的item,这正是我们想要的效果。
为了显示边框,需要让后边的圆形和矩形,比前边的圆形和矩形略小几个像素。
当然可以使用stroke来显示边框效果,但是如果那样,矩形的一部分边框会显示在圆形里,不满足式样的要求。

另注:
gradient的几种式样:linear是线性渐变,从左到右或从上到下;sweep径向渐变,是圆心到圆边;radial是角度渐变,按照角度来变换颜色。

更多相关文章

  1. Android(安卓)对话框【Dialog】去除白色边框代码
  2. 转:Android实现矩形设置菜单
  3. Android怎么去除Dialog对话框的白色边框
  4. 自定义ProgressBar
  5. Android(安卓)Drawable 详解(教你画画!)
  6. Android通过onDraw实现在View中绘图操作
  7. Android中圆形和条形ProgressBar设置颜色
  8. android 5.0新特性学习--CardView
  9. Android的简单图形和view刷新

随机推荐

  1. android上传文件至服务器
  2. Android Wear 进阶 5 - Creating Watch F
  3. http请求No peer certificate的解决方法
  4. Android(安卓)4.2.2 ScreenLock上Music远
  5. Android Studio问题之dexDebug
  6. Android 自定义日期控件,包含月控件
  7. android 自定义dialog弹出和消失缩放动画
  8. Android Spinner控件之键值对用法
  9. OpenFrameworks + kinect + Android项目
  10. 《Android(安卓)UI基础教程》之读书笔记