文档章节

android shape的使用详解以及常用效果(渐变色、分割线、边框、半透明阴影效果等)

MT牛牛
 MT牛牛
发布于 2014/09/16 16:36
字数 680
阅读 82
收藏 0

shape使用、渐变色、分割线、边框、半透明、半透明阴影效果。

首先简单了解一下shape中常见的属性。(详细介绍参看 api文档

转载请注明:Rflyee_大飞:http://blog.csdn.net/rflyee/article/details/20785495

<?xml version="1.0" encoding="utf-8"?>
<shape
   
xmlns:android="http://schemas.android.com/apk/res/android"
   
android:shape=["rectangle" | "oval" | "line" | "ring"] >   --- 默认为rectangle
   
<corners  -- shape=“rectangle”时使用,
       
android:radius="integer"  -- 半径,会被下边的属性覆盖,默认为1dp,
       
android:topLeftRadius="integer"
       
android:topRightRadius="integer"
       
android:bottomLeftRadius="integer"
       
android:bottomRightRadius="integer" />
   
<gradient  -- 渐变
       
android:angle="integer"
       
android:centerX="integer"
       
android:centerY="integer"
       
android:centerColor="integer"
       
android:endColor="color"
       
android:gradientRadius="integer"
       
android:startColor="color"
       
android:type=["linear" | "radial" | "sweep"]
       
android:useLevel=["true" | "false"] />
   
<padding
       
android:left="integer"
       
android:top="integer"
       
android:right="integer"
       
android:bottom="integer" />
   
<size    -- 指定大小,一般用在imageview配合scaleType属性使用。大小一般会适配滴
       
android:width="integer"
       
android:height="integer" />
   
<solid    -- 填充颜色,可是是十六进制颜色。(比如想设置半透明效果,直接使用十六就只就OK)
       
android:color="color" />
   
<stroke    -- 指定边框,border,dashWidth和dashGap有一个为0dp则为
       
android:width="integer"
       
android:color="color"
       
android:dashWidth="integer"    -- 虚线宽度
       
android:dashGap="integer" />    -- 虚线间隔宽度
</shape>

注意:

<corners>

1、android:radius,半径,会被下边的单个角度半径属性覆盖,默认为1dp,

2、在使用时,如果单独设置四个角度,又大小不一致时,eclipse的graphics preview会报错。但是直接真机运行即可。(比如实线上边直角,下边屈角的效果)

<size>

Note: The shape scales to the size of the container View proportionate to the dimensions defined here, by default. When you use the shape in an ImageView, you can restrict scaling by setting the android:scaleType to "center"


  • 举个栗子:

1、渐变色

  •  res/drawable/gradient_box.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   
android:shape="rectangle">
   
<gradient
       
android:startColor="#FFFF0000"
       
android:endColor="#80FF00FF"
       
android:angle="45"/>
   
<padding android:left="7dp"
       
android:top="7dp"
       
android:right="7dp"
       
android:bottom="7dp" />
   
<corners android:radius="8dp" />
</shape>

如图:




2、白色边框、半透明效果


view plaincopy to clipboardprint?

  1. <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle" >    <corners android:radius="16dp" />    <!-- 这是半透明,还可以设置全透明,那就是白色边框的效果了 -->    <solid android:color="#80065e8d" />    <stroke        android:dashGap="0dp"        android:width="4dp"        android:color="@android :color/white" /></shape>  

如图:

   

3、分割线效果:

view plaincopy to clipboardprint?

  1. <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="line" >    <stroke        android:width="4dp"        android:color="@android :color/black" /></shape>  


如果:


4、单边屈角效果

view plaincopy to clipboardprint?

  1. <?xml version="1.0" encoding="utf-8"?><shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">    <corners         android:topLeftRadius="5dp"        android:topRightRadius="5dp"        android:bottomLeftRadius="30dp"        android:bottomRightRadius="30dp"/>    <!-- 这是半透明,还可以设置全透明,那就是白色边框的效果了 -->    <solid android:color="#ff065e8d" />    <stroke        android:dashGap="0dp"        android:width="4dp"        android:color="@android :color/white" /></shape>  


如图:



本文转载自:http://blog.csdn.net/rflyee/article/details/20785495

下一篇: AsyncHttpClient
MT牛牛
粉丝 1
博文 19
码字总数 2640
作品 0
石家庄
程序员
私信 提问
Snackbar、CardView、FloatingActionButton、SwitchCompat使用介绍

Android5.0也出来了老长一段时间了,5.0推出的MartailDesign系列确实相当高大上,颜色鲜艳像各种套壳的iphone c,老有设计范儿了。接下来,就学着写它们的用法,并写一些效果。 github代码传...

奔跑吧李博
2018/10/19
0
0
Android UI:XML文件配置按钮等背景方案

(1)在开发中,我们经常会遇到一些纯色或带边框的简单样式的按钮或div,很多时候,都是用九宫格的背景图片来贴上去。但仔细想来,使用图片也带来了一些性能上的问题,包括过多的图片文件会导...

古沐风
2014/01/24
3.2K
0
[译] Flutter 布局备忘录

原文地址:Flutter Layout Cheat Sheet 原文作者:Tomek Polański 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:EmilyQiRabbit 校对者:smilemuffie,suhanyujie ...

Yuqi
06/10
0
0
PopupWindow 使用详解(二) Popwindow 制作常见花哨效果

帝都几日降温,终于被撂倒了。but 只要一息尚存就得不断进步!于是,写出 《PopupWindow 使用详解》的第二篇 笔记,先奉上 第一篇链接: 《PopupWindow 使用详解(一) 中文API 文档 赠送 Li...

猴亮屏
01/08
55
0
用最短的CSS样式,勾勒大数据演示屏

先看案例效果,再看心得与总结 前段时间撸了一个演示平台,输入任一手机号,可追踪其行迹,类似《人民的名义》追踪丁义珍的效果,很明显涉密了,因此特意克隆了一个,并把后端阉割了,目前查...

maodayeyeye
2018/06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部