通过layer-list多图层叠加效果实现圆角功能

在android的开发过程中,我们可能会做圆角的效果出来,如下图所示:

四个角都是圆角的效果。如果让UI设计人员直接出图,可能会更简单一些。但是我们使用android中layer-list多图层叠加效果同样可以实现。

我们把它拆分为三个部分,第一个部分是最顶端的那一行(我这里称为顶部),第二部分是中间部分(中间部分不需要圆角效果),第三部分是底部。

顶部的实现:

顶部是一个有灰色边框但无下边框,带圆角,白色背景的长方体。实现效果如下:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:topLeftRadius="10dp" android:topRightRadius="10dp"
                android:bottomRightRadius="0.1dp" android:bottomLeftRadius="0.1dp" />
            <stroke android:width="1dp" android:color="#ffa8abad" />
        </shape>
    </item>
     <item android:top="1dp" android:left="1dp" android:right="1dp">
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:topLeftRadius="10dp" android:topRightRadius="10dp"
                android:bottomRightRadius="0.1dp" android:bottomLeftRadius="0.1dp" />
            <stroke android:width="1dp" android:color="#ffffffff" />
        </shape>
    </item>
</layer-list>

中间部分是一个不带圆角 白色背景 灰色边框 无下边框 长方体.实现效果如下:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
        <shape>
            <solid android:color="#FFFFFF" />
            <stroke
                android:width="1dp"
                android:color="#ffa8abad" />
        </shape>
    </item>
     <item
        android:left="1dp"
        android:right="1dp"
        android:top="1dp">
        <shape>
            <solid android:color="#FFFFFF" />
            <stroke
                android:width="1dp"
                android:color="#ffffffff" />
        </shape>
    </item>
</layer-list>

底部是一个具有底部圆角,白色背景,灰色边框的长方体,实现效果如下:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:topLeftRadius="0.1dp" android:topRightRadius="0.1dp"
                android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" />
            <stroke android:width="1dp" android:color="#ffa8abad" />
        </shape>
    </item>
   <item android:top="1dp" android:bottom="1dp" android:left="1dp" android:right="1dp">
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:topLeftRadius="0.1dp" android:topRightRadius="0.1dp"
                android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" />
            <stroke android:width="1dp" android:color="#ffffffff" />
        </shape>
    </item>
</layer-list>
时间: 2024-11-16 04:02:53

通过layer-list多图层叠加效果实现圆角功能的相关文章

Android 实现对话框圆角功能

Android 实现自定义dialog圆角功能 刚接触公司的Android项目,客户画好了界面,需求如下: 弹出的窗口是要四个圆角,并且标题栏颜色和下方不一样,还要以蓝色线分隔开,通过网上各种百度,给出的方案基本上是在/drawable文件夹下建立一个shape文件,里面对控件进行一些控制.(这里要注意的是shape文件应该是放在drawable文件夹下,至于为什么要放到这里,以及根元素下的各种元素用法,请参考这位前辈的博客:http://blog.csdn.net/lonelyroamer/a

Qt圆角功能和状态组合按钮,可以显示颜色或者图片

使用两个按钮和一个Label封装了一个功能和状态圆角组合按钮,Label用来显示颜色或者图片. 实现的效果如下: 显示图片: 显示红色: 其中颜色或者图片是通过函数设置进去的. 两个按钮:前一个是状态按钮,可以Check,表示使用此项功能:后一个按钮是功能按钮,可以Check,表示跳转到此功能对应的选项.两个按钮都有信号,可以通过信号进行连接你需要的槽函数. 具体实现代码: #include <QPushButton> #include <QLabel> class QStateF

010-CALayer(图层)

问题一:什么是CALayer(图层)? 简而言之:使UIView可以显示在屏幕上的功能属性,UIView之所以可以显示在屏幕上完全是因为UIView内部含有一个CALayer属性 •在iOS中,能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView •UIView本身不具备显示的功能,之所以能显示完全是因为它内部的图层属性(具有显示功能) •在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通

UIApplication,UIWindow,UIViewController,UIView(layer)

转载自:http://www.cnblogs.com/iCocos/p/4684749.html UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道,单例在应用程序的整个生命周期中只有一个对象). App的启动过程 打开程序之后-> 1:Main函数 2:UIapplicationMain函数 3:初始化UIApplication(创建) 4:设置

ios开发之图层与核心动画一:图层CALayer的认识

#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *redView; @property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]

iOS开发——UI精选OC篇&amp;UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道,单例在应用程序的整个生命周期中只有一个对象). App的启动过程 打开程序之后-> 1:Main函数 2:UIapplicationMain函数 3:初始化UIApplication(创建) 4:设置UIApplication代理和相应的代理属性 5:开启事件循环,监听系统事件 6监测info.p

UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道,单例在应用程序的整个生命周期中只有一个对象). App的启动过程 打开程序之后-> 1:Main函数 2:UIapplicationMain函数 3:初始化UIApplication(创建) 4:设置UIApplication代理和相应的代理属性 5:开启事件循环,监听系统事件 6监测info.plist文件,看看是否有Main.StoryBoard文件存在 有:/***********************

iOS开发——UIImageView的contentMode、裁剪和layer属性详解

在我们iOS开发过程中,UIImageView是一个非常常见的控件,但是我们未必会用的很溜,因为里面的有些属性不曾注意,或者很难理解.所以会对我们使用该控件带来麻烦,在布局UI过程中可能会造成意想不到的结果.这篇博客主要来讲解UIImageView中的contentMode属性以及和图片裁剪的关系,并且不得不提到就是所有UIView的重要属性:layer(CALayer).文中提到的所有·示例代码上传至 https://github.com/chenyufeng1991/ImageWithMod

Arcgis for JavaSctipt之常用Layer详解

Arcgis forJavaSctipt之常用Layer详解 概述:Arcgis for Javasctipt中常见的layer有动态图层(ArcGISDynamicMapServiceLayer ).切片图层(ArcGISTiledMapServiceLayer).特征图层(FeatureLayer).图象图层(GraphicsLayer).标注图层(LabelLayer).wms图层(WMSLayer)和切片wms图层(WMTSLayer)等几种.本文结合SVG技术,详细介绍Arcgis f