文档章节

android使用shape stroke描边只保留底部

yolinfeng
 yolinfeng
发布于 2015/06/24 20:56
字数 467
阅读 108
收藏 0
点赞 0
评论 0

       在项目中遇到这种情况:由于一些原因,自己需要用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>

       关键注意看<item>标签的属性,把top、right、left设置成了-2dp,而shape stroke的宽度只有1dp,这样上右左边线都没了,只有底边会保留。(可能有人会问为什么不把top、right、left设置成-1dp,我也试过了,貌似是stroke的时候,自动会在描边的外部再多1dp的margin,仔细看上图也能看出来,所以这里要多设置1dp才能完全去除对应边上的stroke。你可以自己去试试)

       最终效果如下图所示:


       最后一个item的background就不设置就OK,实际运行效果也完全一样!这样就大功告成了!

本文转载自:http://blog.csdn.net/lpforever/article/details/43735435

共有 人打赏支持
yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
Android 关于shape和selector和layer-list(UI 设计)

简介 相当于 xml 实现的drawable Shape 作用:XML中定义的几何形状位置:res/drawable/文件的名称.xml 使用的方法: Java代码中:R.drawable.文件的名称XML中:Android:background="@drawab...

Mr-Red
2015/07/23
0
0
Android中shape的使用

本人在美工方面一直是比较白痴的,对于一些颜色什么乱七八糟的非常头痛,但是在Android编程中这又是经常涉及到的东西,没办法,只有硬着头皮上。 Android中常常使用shape来定义控件的一些显示...

程序袁_绪龙
2014/09/25
0
0
Android 使用shape来优化界面效果

看下效果图 shape即形状的意思。其包含的元素有 <corners /> <gradient /> <padding /> <size /> <solid /> <stroke /> 元素具体描述信息如下: 1、 solid 描述:内部填充 属性: android:co......

hhs
2012/08/29
0
0
Android中shape的使用

Android中shape的使用 Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大 体的了解,稍作总结: 先看下面的代码: <shape> <!-- 实心 --> <solid a...

扬名立万
2014/06/02
0
0
Android中shape的使用

本人在美工方面一直是比较白痴的,对于一些颜色什么乱七八糟的非常头痛,但是在Android编程中这又是经常涉及到的东西,没办法,只有硬着头皮上。 Android中常常使用shape来定义控件的一些显示...

Jonson
2014/03/19
0
0
android:shape的使用

Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结: 先看下面的代码: solid:实心,就是填充的意思 android:color指定填充的颜...

元来元去
2011/08/01
0
0
自定义控件 –百科专家总结(最后遗留了问题望网友能帮忙解答)

在开发android应用中 经常用到自定义控件 我 就将这段时间 我参与的项目中用到的自定义控件说一下 在百科专家中用到最多的就是 text描边 这是我参考的文章 http://labs.ywlx.net/?p=2739 htt...

汉果James
2012/10/30
0
0
android使用shape stroke描边只保留底部

android使用shape stroke描边只保留底部 在项目中遇到这种情况:由于一些原因,自己需要用LinearLayout的垂直布局做出ListView的那种效果,但是ListView是自带了分割线的,而且顶部底部都是没...

tyronejw
2015/11/26
5.4K
3
Android开发教程:shape和selector的结合使用

shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至...

程序袁_绪龙
2014/09/08
0
0
Android开发教程:shape和selector的结合使用

shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至...

方毅超
2014/05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知识点总结

jq如何拿到data-info的自定义属性 1.1 原生可以获取到所有属性el.attrbutes 1.2 jq的$(el).attr('属性名称') 继承的几种方式,原型链 2.1 扩展原型对象实现继承 2.2 替换原型对象实现继承 2....

litCabbage
4分钟前
0
0
python语言规范

http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/...

ghou-靠墙哭
8分钟前
0
0
istio 监控,遥测 (理论)

Istio提供了一种灵活的模型来强制执行授权策略并收集网格中服务的遥测。 基础架构后端旨在提供用于构建服务的支持功能。它们包括诸如访问控制系统,遥测捕获系统,配额执行系统,计费系统等之...

xiaomin0322
10分钟前
0
0
阿里资深专家面试问题收集

corejava hashcode相等的两个对象一定相等吗?equals呢?反过来相等吗? 介绍一下集合框架? hashtable,hashmap底层实现是什么?hashtable和concurrenthashmap底层实现的区别? hashmap和treemap的...

undefine
11分钟前
4
0
alpine安装软件指定安装源

linux-alpine安装软件指定安装源 一、永久修改apk下载源地址 vi etc/apk/repositories 替换成阿里源 http://mirrors.aliyun.com/alpine/v3.8/main/http://mirrors.aliyun.com/alpine/v3...

我心中有猛狗
12分钟前
0
0
Centos7通过yum安装nginx

添加源地址(直接install可能不是最新版本的) sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 安装 sudo yum install -y ng......

iplusx
14分钟前
0
0
ef .core Dapper Helper

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Threading.Tasks; using Dapper; using Dap......

Lytf
15分钟前
0
0
iOS 小笔记

1.以下代码打印什么     __block int val = 10;    void (^blk)(void) = ^{        printf("val=%d\n",val);        };       val = 2;    blk(); /...

风了个1
17分钟前
0
0
【Spring Boot 系列 Spring Boot示例程序】

入门程序步骤,创建一个Maven项目。继承Spring Boot官方提供的父工程。再引入一个Web的应用启动器。 1、选择一个合适的IDEA工具 创建一个Maven工程,并添加如下配置 <parent> <...

HansonReal
19分钟前
0
0
217. Contains Duplicate - LeetCode

Question 217. Contains Duplicate Solution 题目大意:判断数组中是否有重复元素 思路:构造一个set,不重复就加进去,重复返回true,如果数据量大的话,可以用布隆过滤器 Java实现: publ...

yysue
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部