文档章节

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

yolinfeng
 yolinfeng
发布于 2015/06/24 20:56
字数 467
阅读 193
收藏 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

上一篇: px 和 dp 互转换
下一篇: Android 垂直Tab
yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
私信 提问
加载中

评论(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
245
0
Android中shape的使用

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

程序袁_绪龙
2014/09/25
28
0
android 开发 xml绘制shape与Selector与layer-list 一 基础篇

首先我们先来了解状态效果 android:state_pressed=["true" | "false"] 按下状态 android:state_focused=["true" | "false"] 聚焦状态 android:state_selected=["true" | "false"] 选中状态 ......

osc_k5ta3dng
2018/05/14
2
0
Android 使用shape来优化界面效果

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

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

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

Jonson
2014/03/19
75
0

没有更多内容

加载失败,请刷新页面

加载更多

假使年轻的时候鞭策自己

我自己就是浪费了很多时间的一个人。我不打麻将,我不经常的听戏看电影,几年中难得一次,我不长时间看电视,通常只看半个小时,我也不串门子闲聊天。有人问我:“那么你大部分时间都做了些什...

瑾123
2分钟前
7
0
文章错别字检测软件有哪些?蚁小二真的好用

文章错别字检测软件有哪些?蚁小二真的好用,据市场研究调查发现,我们对文章当中错别字的检测和修改这样的需求是一直存在的,只是市场上面还没有一个比较好用的软件来辅助我们做错别字检测。...

一键分发工具-蚁小二
5分钟前
6
0
文章原创度检测工具有哪些?这些工具你可以拥有

文章原创度检测工具有哪些?这些工具你可以拥有,随着自媒体行业的发展,现在很多自媒体人都进入到互联网行业,但是随着大家的深入发展,会发现有时候自己的文章在自媒体平台上推荐很少,其实...

易撰
6分钟前
9
0
FTP工具软件,FTP工具软件下载!

IIS7服务器管理工具是一款FTP的客户端软件,能够批量执行FTP的命令!可以提高FTP的传输效率! 同时,它也可以作为VNC的客户端,能够进行相关的VNC操作;同时,它还可以批量连接Windows和Lin...

Raymond13
6分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部