View 样式(背景色、圆角、描边、等等)
来源:互联网 发布:c语言程序代码大全 编辑:程序博客网 时间:2024/06/06 15:52
实现效果:
实现很简单,把TextView的android:background属性设置成自定义的一个xml样式文件。
- android:background="@drawable/textview_style"
textview_style.xml文件里的内容:
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#00FFFF" />
- <corners android:radius="15dp" /> //圆角弧度
- <padding
- android:left="5dp"
- android:top="5dp"
- android:right="5dp"
- android:bottom="5dp" /> //边界与内容的间距
- </shape>
corner android:radius属性就是圆角的设置。
//在10dp之前圆角的弧度都是会有变化的,但是之后再改大数值就一直保持在同样的弧度了
我想要实现
但是后面无论怎么改大数值都是
解决方案:
android shape的属性详解<corners
android:radius="15dp"/>不管用,改成这种
<corners
android:bottomLeftRadius="13dp"
android:bottomRightRadius="13dp"
android:topLeftRadius="13dp"
android:topRightRadius="13dp" />
shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 圆角 --> <corners android:radius="9dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" android:bottomLeftRadius="2dp" android:bottomRightRadius="2dp"/><!-- 设置圆角半径 --> <!-- 渐变 --> <gradient android:startColor="@android:color/white" android:centerColor="@android:color/black" android:endColor="@android:color/black" android:useLevel="true" android:angle="45" android:type="radial" android:centerX="0" android:centerY="0" android:gradientRadius="90"/> <!-- 间隔 --> <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp"/><!-- 各方向的间隔 --> <!-- 大小 --> <size android:width="50dp" android:height="50dp"/><!-- 宽度和高度 --> <!-- 填充 --> <solid android:color="@android:color/white"/><!-- 填充的颜色 --> <!-- 描边 --> <stroke android:width="2dp" android:color="@android:color/black" android:dashWidth="1dp" android:dashGap="2dp"/> </shape>填充:设置填充的颜色
间隔:设置四个方向上的间隔
大小:设置大小
圆角:同时设置五个属性,则Radius属性无效
android:Radius="20dp" 设置四个角的半径
android:topLeftRadius="20dp" 设置左上角的半径
android:topRightRadius="20dp" 设置右上角的半径
android:bottomLeftRadius="20dp" 设置右下角的半径
android:bottomRightRadius="20dp" 设置左下角的半径描边:dashWidth和dashGap属性,只要其中一个设置为0dp,则边框为实现边框
android:width="20dp" 设置边边的宽度
android:color="@android:color/black" 设置边边的颜色
android:dashWidth="2dp" 设置虚线的宽度
android:dashGap="20dp" 设置虚线的间隔宽度渐变:当设置填充颜色后,无渐变效果。angle的值必须是45的倍数(包括0),仅在type="linear"有效,不然会报错。android:useLevel 这个属性不知道有什么用。
angle对应值的起点如图:
eg:
在我运用的过程中,设置左上角的半径 android:topLeftRadius 这样的4个属性,在xml预览的没有显示出效果,但是在真机测试中是可行的。。。。我也不知道为什么!~
描边:()只描某一个方向~ 不可与上面的一起用...
在项目中遇到这种情况:由于一些原因,自己需要用LinearLayout的垂直布局做出ListView的那种效果,但是ListView是自带了分割线的,而且顶部底部都是没有分割线的,每个item中间都是1dp宽度的分割线。我一开始是想到LinearLayout中的每个item用shape文件设置一个background,于是写了如下的shape:
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:color="#B4B4B4" android:width="1dp"/> <solid android:color="@android:color/transparent"/></shape>
但是看了这个shape,估计大家都能想象出来效果肯定不对,因为上一个item有1dp的底边,下一个item也有1dp的底边,这样item之间的分割线就有2dp了,很难看,也不是我们要的效果。如下图效果所示:
所以要解决的问题就是,如何只保留底边的stroke呢。经过一番修改实验,使用layer-list可以解决这个问题,很简单,如下代码所示:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="-2dp" android:right="-2dp" android:left="-2dp"> <shape> <solid android:color="@android:color/transparent"/> <stroke android:width="1dp" android:color="#B4B4B4"/> </shape> </item></layer-list>貌似 这个也可以:<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 连框颜色值 -->
<item>
<shape>
<solid android:color="#CCCCCC" />
</shape>
</item>
<!-- 主体背景颜色值 -->
<item
<!-- 此处定义只有上下两边有边框 高度为1像素-->
android:bottom="1dp"
android:top="1dp">
<!--边框里面背景颜色 白色-->
<shape>
<solid android:color="#ffffff" />
</shape>
</item>
</layer-list>
关键注意看<item>标签的属性,把top、right、left设置成了-2dp,而shape stroke的宽度只有1dp,这样上右左边线都没了,只有底边会保留。(可能有人会问为什么不把top、right、left设置成-1dp,我也试过了,貌似是stroke的时候,自动会在描边的外部再多1dp的margin,仔细看上图也能看出来,所以这里要多设置1dp才能完全去除对应边上的stroke。你可以自己去试试)
最终效果如下图所示:
最后一个item的background就不设置就OK,实际运行效果也完全一样!这样就大功告成了!
- View 样式(背景色、圆角、描边、等等)
- View背景色background
- 如何修改android studio背景色(包括project view的背景色)保护眼睛人人有责
- 改变对话框 view背景色
- VIew背景色的设置
- AndroidのTextView背景色、圆角、内部填充设置样式
- Android ListView选项(View)清除背景色
- 设置导航栏背景色和view背景色
- HTML03—样式、BOX模型、背景色
- css样式-盒子、定位、背景色、尺寸
- Qt5 QToolTip 背景色 背景样式
- 修改view类的背景色
- 使用图片作为View背景色
- jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
- CSS:自定义链接样式(设置链接不同状态下的字体颜色/背景色等)
- Android:自定义ProgressBar的样式(背景色/一级、二级进度条颜色)
- CSDN-markdown 表格样式设置(跨行表格,背景色等)
- 背景色
- ZStack Monitor and Test(MT)功能简介与Z-tool使用介绍
- git乱码解决方案汇总
- Android Studio安装插件
- 堆排序java版
- php构造函数的继承方法
- View 样式(背景色、圆角、描边、等等)
- 在android中gif的效果和渐变效果
- Spring入门第二个例子
- 224,GCD多线程
- 如何分析解决Android ANR
- hadoop 中 HDFS 由于多次格式化引起的 nanenode 与 datanode 启动异常
- java注解annotation的解释
- Android开发学习总结(一)——搭建最新版本的Android开发环境
- 个人主页