- 浏览: 3364982 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
Drawable资源--Shape的使用 http://www.eoeandroid.com/thread-49097-1-1.html
http://blog.xianqu.org/2012/04/android-borders-and-radius-corners/
在做Android界面开发时,我们往往希望它尽可能优美,尽可能显得专业。于是你看了看其他应用,哇,好多边框和圆角啊。你是不是也想给自己的应用加上边框和圆角效果?呃……那怎么做呢?如果你是从web前端跑到Android来的,那么我想你一定想到了不下三种解决方案。如用图片替代,用CSS3定义,用JS画。在Android中,其实也有类似的用法,本文将简单介绍两种Android圆角和边框的实现。
1 图片
在Android中,给一个控件(或View)设置背景主要是通过background:xxx属性来完成。background的参数一般来说是一个drawable资源。 drawable可以是一张普通的图片,也可以是9 patch图片,还可以是一个xml文件。 给控件设置边框最简单的方式就是把background设置成你预先设计好的带圆角和边框的背景图。比如下面这张图:
但是,你很快会发现一个缺点:灵活性很差!是的,固定大小的图片很难根据控件里的内容而调整大小。它在被做出来的那天就已经被确定了!换句话说,你很难只用这一张图来应付拥有相同风格却大小各异的控件。为了给所有控件加上圆角和边框,你必须小心翼翼地计算他们的大小,然后一个一个得制作背景图片!天哪,这简直太愚蠢了。一旦遇到大小不定的控件,这方法就歇菜了。而且,大量的背景图片会让你的安装包迅速膨胀。呃……还有,你怎么应对拥有各式各样分辨率的Android设备呢?
所以,你需要……换个方法。
比较为大众采用一种解决方案是NinePatchhttp://developer.android.com/guide/developing/tools/draw9patch.html。可以毫不夸张得说,9 patch是Android中解决自适应问题的利器。介绍和使用你可以看看这里http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch还有这里http://radleymarx.com/blog/simple-guide-to-9-patch/。
使用9 patch图片有很多好处,如减轻美工压力,减少UI代码量,减少内存使用……总结起来就是:省时省力,屌爆了。
所以在给圆角和边框时,你或许会这么做。
当然,9 patch能做的是远远比这多,如做一个自适应的对话框什么的。
2 XML定义
我想大多数程序员都喜欢用代码解决问题。原因如下:
用代码更加cool。
我美工不行,我会说出去吗?
OK,好东西在这里。
2.1 基本的圆角、边框
Android除了支持原始的图片资源外,比较棒的一点就是可以用XML文件定义一些简单的图形。这有点像web的CSS,不过相比CSS3,Android的xml实现还没那么强大,例如,边框要么四周都有,要么四周都没有(我们将在后面讨论这事)。xml drawable的传送门在这里http://developer.android.com/guide/topics/resources/drawable-resource.html。
要画一个带灰色边框和圆角的图形很容易,在drawable资源目录下添加一个xml:
在你需要用到这东西的地方如某个View下,设置background就行了。
2.2 “自由的边框“
当前版本的Android SDK并没有给stroke提供bottom、left、right之类的属性,也就是说你无法通过它来让长方形的边框少于4条。啊,真是太遗憾了。怎么办呢?有人想到了对Layer List hack。 在StackOverflow上有不少这样的把戏。
为了实现只有left,right和top边框,我们可以这么写:
原理差不多是这样:
诡异的是理论上只要偏移量只要1dp就能显示1dp宽带边框了,但我在listview里实验了一下发现不行,换成2dp方可。有同学能解释解释么?
如果要给图形加上圆角,只需要给每个shape加上
值得注意的是,两个shape的radius在设置的时候请确保前面的图层不会把后面的挡住。
3 小结
要在Android中实现圆角和边框,比较简单的方法:图片、XML差不多就是这么用的啦。此外还有用Java代码调用draw方法画出来的,不过我没有研究过。 他们各有各的优点啦。用图片,能控制的东西更多,用代码修改起来比较另过。 最后要说的是两个方法的效率。在这个问题上,我留有疑问,没有做过专门的比较。但直观的感受是……好吧,没什么感受。
http://blog.xianqu.org/2012/04/android-borders-and-radius-corners/
在做Android界面开发时,我们往往希望它尽可能优美,尽可能显得专业。于是你看了看其他应用,哇,好多边框和圆角啊。你是不是也想给自己的应用加上边框和圆角效果?呃……那怎么做呢?如果你是从web前端跑到Android来的,那么我想你一定想到了不下三种解决方案。如用图片替代,用CSS3定义,用JS画。在Android中,其实也有类似的用法,本文将简单介绍两种Android圆角和边框的实现。
1 图片
在Android中,给一个控件(或View)设置背景主要是通过background:xxx属性来完成。background的参数一般来说是一个drawable资源。 drawable可以是一张普通的图片,也可以是9 patch图片,还可以是一个xml文件。 给控件设置边框最简单的方式就是把background设置成你预先设计好的带圆角和边框的背景图。比如下面这张图:
但是,你很快会发现一个缺点:灵活性很差!是的,固定大小的图片很难根据控件里的内容而调整大小。它在被做出来的那天就已经被确定了!换句话说,你很难只用这一张图来应付拥有相同风格却大小各异的控件。为了给所有控件加上圆角和边框,你必须小心翼翼地计算他们的大小,然后一个一个得制作背景图片!天哪,这简直太愚蠢了。一旦遇到大小不定的控件,这方法就歇菜了。而且,大量的背景图片会让你的安装包迅速膨胀。呃……还有,你怎么应对拥有各式各样分辨率的Android设备呢?
所以,你需要……换个方法。
比较为大众采用一种解决方案是NinePatchhttp://developer.android.com/guide/developing/tools/draw9patch.html。可以毫不夸张得说,9 patch是Android中解决自适应问题的利器。介绍和使用你可以看看这里http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch还有这里http://radleymarx.com/blog/simple-guide-to-9-patch/。
使用9 patch图片有很多好处,如减轻美工压力,减少UI代码量,减少内存使用……总结起来就是:省时省力,屌爆了。
所以在给圆角和边框时,你或许会这么做。
当然,9 patch能做的是远远比这多,如做一个自适应的对话框什么的。
2 XML定义
我想大多数程序员都喜欢用代码解决问题。原因如下:
用代码更加cool。
我美工不行,我会说出去吗?
OK,好东西在这里。
2.1 基本的圆角、边框
Android除了支持原始的图片资源外,比较棒的一点就是可以用XML文件定义一些简单的图形。这有点像web的CSS,不过相比CSS3,Android的xml实现还没那么强大,例如,边框要么四周都有,要么四周都没有(我们将在后面讨论这事)。xml drawable的传送门在这里http://developer.android.com/guide/topics/resources/drawable-resource.html。
要画一个带灰色边框和圆角的图形很容易,在drawable资源目录下添加一个xml:
<?xml version="1.0" encoding="utf-8"?> <!-- shape如果不声明形状则默认为正方形 --> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:radius="5.0dp" /> <!-- 圆角,你也可以对不同的角设置不同的数值 --> <solid android:color="#FFFFFF" /> <!-- 形状的填充色 --> <stroke android:width="1dp" android:color="#CCCCCC" /> <!-- 边框宽度和颜色 --> </shape>
在你需要用到这东西的地方如某个View下,设置background就行了。
2.2 “自由的边框“
当前版本的Android SDK并没有给stroke提供bottom、left、right之类的属性,也就是说你无法通过它来让长方形的边框少于4条。啊,真是太遗憾了。怎么办呢?有人想到了对Layer List hack。 在StackOverflow上有不少这样的把戏。
为了实现只有left,right和top边框,我们可以这么写:
<?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="@color/card_stroke" /> </shape> </item> <item android:left="2dp" android:right="2dp" android:top="2dp"> <!-- 在实际使用中我发现1dp达不到显示效果,而2dp正好可以显示边框 --> <shape android:shape="rectangle" > <solid android:color="@color/solid_white" /> </shape> </item> </layer-list>
原理差不多是这样:
诡异的是理论上只要偏移量只要1dp就能显示1dp宽带边框了,但我在listview里实验了一下发现不行,换成2dp方可。有同学能解释解释么?
如果要给图形加上圆角,只需要给每个shape加上
<corners android:topLeftRadius="5.0dip" android:topRightRadius="5.0dip" />
值得注意的是,两个shape的radius在设置的时候请确保前面的图层不会把后面的挡住。
3 小结
要在Android中实现圆角和边框,比较简单的方法:图片、XML差不多就是这么用的啦。此外还有用Java代码调用draw方法画出来的,不过我没有研究过。 他们各有各的优点啦。用图片,能控制的东西更多,用代码修改起来比较另过。 最后要说的是两个方法的效率。在这个问题上,我留有疑问,没有做过专门的比较。但直观的感受是……好吧,没什么感受。
发表评论
-
html5调用手机拍照并压缩上传
2016-06-24 15:36 1172http://my.oschina.net/zyxchuxin ... -
HTML调用PC摄像头
2016-04-06 09:31 1685http://www.oschina.net/code/sni ... -
微信JS-SDK获取signature签名以及config配置
2016-02-16 11:31 3089原文看:http://1017401036.iteye.com ... -
Html5添加移动触摸的网页版PDF格式文件阅读器插件
2016-01-07 15:30 1850http://my.oschina.net/u/2505907 ... -
js canvas 照片旋转 demo
2015-12-26 17:52 1484http://my.oschina.net/u/1259707 ... -
静态网站生成器 Lektor
2015-11-18 09:24 1242http://www.oschina.net/p/lektor ... -
history.js 一个无刷新就可改变浏览器栏地址的插件(不依赖jquery)
2015-11-10 21:27 1062http://ourjs.com/detail/5507ed1 ... -
如何使用js、html5在浏览器直接打开pdf文档
2015-11-03 22:32 8623http://q.cnblogs.com/q/48507/ ... -
HTML5 Geolocation API的使用方法及实现原理
2015-10-28 22:05 1616百度地图 百度地图为什 ... -
jquery三种支持手机触屏的插件库
2015-10-28 14:30 1320http://my.oschina.net/u/2395167 ... -
Android 应用热修复工具 AndFix
2015-09-16 08:42 1301http://www.oschina.net/p/andfix ... -
【gloomyfish】关于手机网站你想知道的一切
2015-09-15 21:48 843http://blog.csdn.net/jia20003/a ... -
java 判断请求来自手机或电脑
2015-09-15 21:42 942java 判断 android、iphone等 ... -
Cordova例子
2014-11-21 17:11 2890官方文档:http://cordova.apache.org/ ... -
Android AVD创建及设置中各参数详解
2014-11-19 16:49 1195http://zhongyankeji.blog.163.co ... -
PhoneGap的例子
2014-11-19 10:06 2382cordova命令行详解: http: ... -
Zepto.js与jquery的比较
2014-11-12 15:49 1827http://my.oschina.net/u/1791195 ... -
在android的webview中实现websocket
2014-07-23 21:29 2034在android的webview中实现websocket ht ... -
原生:在Android开发中调用Restful web服务
2014-07-23 21:27 1667在Android开发中调用Rest web服务 http:// ... -
Android+REST WebService服务方式手机开发
2014-07-23 21:27 864Android+REST WebService服务方式手机开发 ...
相关推荐
为Winform中的Textbox添加圆角和边框,圆角大小和边框大小可以设置
首先,在res下面新建一个文件夹drawable,在drawable下面新建三个xml文件:shape_corner_down.xml、shape_corner_up.xml和shape_corner.xml,分别是下面两个角是圆角边框,上面两个角是圆角边框,四个角全部是圆角...
css圆角边框css圆角边框css圆角边框css圆角边框css圆角边框
CSS圆角边框CSS圆角边框CSS圆角边框CSS圆角边框CSS圆角边框CSS圆角边框
editText和Dialog等组件的圆角边框设置
Java;边框;Java Jframe圆角边框;圆角 Java 圆角边框实例
圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar圆角边框.rar
jquery实现圆角边框 圆角边框 jquery实现圆角边框 圆角边框
android 圆角图标 和不规则圆角(边框)
css用图片实现圆角边框的效果 css用图片实现圆角边框的效果
css3中的边框一般多为矩形,也可以通过设置实现圆角边框的效果,通过border-radius:;通过设置该属性值得大小改变边框的圆角大小,从而达到自己需要的圆角边框效果
Jquery实现圆角边框效果的源码,Jquery实现圆角边框效果的源码
圆形,圆角,带边框的圆形imageView,以及白色边框的圆形imageview
圆角边框
具有圆角边框和自定义边框效果的VC 漂亮窗体,纯VC 代码实现的哦,相信这种方法对你来说,是绝对值得参考的,学会这种方法,美化和自定义你的软件外观就不是什么难事了。
div css圆角代码各种圆角表格_圆角边框css圆角
可设置圆角背景边框的的按钮 通过调节色彩明度自动计算按下(pressed)状态颜色 Gradle repositories { maven { url "https://jitpack.io" } } dependencies { compile 'com.github.czy1121:roundbutton:1.1.0' ...
兼容各种浏览器的圆角边框,真正有效,亲自测试过
RCImageView 自定义圆角ImageView,带边框效果
Android为ListView添加圆角边框效果,安卓UI设计的例子,默认情况下ListView的外框是直角的,也就是大家习惯的样式,但为了美化更突出,或者与你的应用风格更吻合,有时候可能修饰成圆角边框,本例子就是实现了这一...