文档章节

android实现边框

qii
 qii
发布于 2014/04/15 15:53
字数 678
阅读 521
收藏 10

我看到京东的客户端,在登录页面账号和密码上有边框。自己也想加这个效果。但是发现android里并没有border或类似的属性。

有以下几种解决方案。

1.嵌套一层,利用内容的margin或者padding的留白加容器的背景来实现边框效果。

其实这个道理很简单,很早的时候那时候我们还用table做html页面布局的时候,我们就是使用cellspacing来实现table的边框的。现在我们也利用同样的想法来实现。

当然内部的容器也是需要有颜色的,如果想实现内部透明的效果则需要将内部View的背景色跟背景的颜色保持一致,这是不太方便的地方。

2图片。

在Android中,给一个控件(或View)设置背景主要是通过background:xxx属性来完成。background的参数一般来说是一个drawable资源。 drawable可以是一张普通的图片,也可以是9 patch图片,还可以是一个xml文件。 给控件设置边框最简单的方式就是把background设置成你预先设计好的带圆角和边框的背景图。但是这种方法的缺点是没有灵活性,不同大小的view要不同尺寸的图片,还要去适应不同分辨率的设备。

3使用9-patch(九宫格)的背景图片来实现边框效果。

做一个有边框的9-patch图片,作为要有边框的View的背景图即可。这样你还可以控制哪边有边框,哪边无边框,这种方法是比较好的一种方法,而且没有多余的View嵌套。另外你还可以实现圆角边框等效果。

4利用shape来实现边框效果。

当然你可以使用shape中的stroke来实现border的效果。

/res/drawable/filename.xml

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

只要引用这个shape作为背景图片即可。

5.layer-list实现自由边框

当前版本的Android SDK并没有给stroke提供bottom、left、right之类的属性,也就是说你无法通过它来让长方形的边框少于4条。于是有人想出了这个方法。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  
    <item>
        <shape android:shape="rectangle">
            <stroke 
                android:width="1dp"
                android:color="#333"/>
        </shape>
    </item>
    
    <item
        android:left="1dp"
        android:top="1dp"
        android:right="1dp"
        android:bottom="1dp">
        <shape android:shape="rectangle">
            <solid 
                android:color="#FFF"/>
        </shape>
    </item>

</layer-list>

在第二个item中定义的top,left...就是对应的边框,不设置即没有边框。

© 著作权归作者所有

共有 人打赏支持
qii

qii

粉丝 13
博文 77
码字总数 23520
作品 0
昆明
高级程序员
私信 提问
ANDROID布局实现圆角边框

首先,在res下面新建一个文件夹drawable,在drawable下面新建三个xml文件:shapecornerdown.xml、shapecornerup.xml和shape_corner.xml,分别是下面两个角是圆角边框,上面两个角是圆角边框,...

丁佳辉
2017/11/02
0
0
Android实战经验之图像处理及特效处理的集锦(总结版)

1 Android学习笔记进阶之在图片上涂鸦(能清屏) 2 Android学习笔记之详细讲解画圆角图片 3 Android学习笔记进阶20之得到图片的缩略图 4 Android学习笔记进阶19之给图片加边框 5 Android学习笔...

xiaosi
2012/03/12
39.3K
25
通过layer-list多图层叠加效果实现圆角功能

在android的开发过程中,我们可能会做圆角的效果出来,如下图所示: 四个角都是圆角的效果。如果让UI设计人员直接出图,可能会更简单一些。但是我们使用android中layer-list多图层叠加效果同...

NCThinker
2013/10/14
0
2
Android 给ImageView自定义设置边框

1.使用布局方式来实现: <?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/white"><TableR......

amigos_wu
2012/05/25
0
0
Android UI 设计中的三种特效

一、背景色渐变 背景色渐变可以通过在res/drawable中定义一个XML文件实现,gradient.xml的代码如下: 其中,shape是用来定义形状的,gradient定义该形状里面为渐变色填充,startColor起始颜色...

鉴客
2011/12/12
12.5K
16

没有更多内容

加载失败,请刷新页面

加载更多

基于对象特征的推荐

(本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用) 在上一期基于协同过滤的的推荐场景中,我们介绍了如何通过PAI快速搭建一个基于协同过滤方案的推荐系统,这一节会介绍一些如何基...

阿里云官方博客
14分钟前
1
0
Ugly Number(leetcode263)

Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example 1: Input: 6Output: true......

woshixin
37分钟前
2
0
深度模型从研者 眼里的 似然估计 & Hessain 海森矩阵 & Fisher Information (费雪信息)

深度模型的训练的基本依据是最小化模型拟合数据的误差。旨在不仅知其然(如何构建和训练一个深度模型),还应知其所以然(为什么这样训练,可以做哪些优化)。我们就会发现,有很多研究者,在...

刘小米_思聪
41分钟前
0
0
【双十二】12 月 12 日 12 点 12 分限量抢福利,云计算不剁手!

活动详情 1.首充豪礼 双十二当日,新用户首充 200 元送 200 元代金券!仅限前 88 名!先到先得!拼手速!(新用户指 12 月 12 日前已完成注册但从未充值过的用户)
 2.超值返券 双十二当日,...

七牛云
今天
4
0
Calculate Linux 发布 18 LXQt是基于Gentoo的发行版

导读 Calculate Linux 是一个基于 Gentoo 并与 Gentoo 完全兼容的滚动更新发行版家族,专为企业环境下的快速部署而优化。其提供多个不同的分支版本,分别适用于桌面、服务器等应用场景。该项...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部