标签:
??你是不是觉得谷歌官方的按钮很丑呢?哈哈~~这里就如何给按钮设置圆角提供一些思路:
??在Android中,给一个控件(或View)设置背景主要是通过background:xxx属性来完成。background的参数一般来说是一个drawable资源。 drawable可以是一张普通的图片,也可以是9 patch图片,还可以是一个xml文件。
??给控件设置边框最简单的方式就是把background设置成你预先设计好的带圆角和边框的背景图。
??但是,你很快会发现一个缺点:灵活性很差!是的,固定大小的图片很难根据控件里的内容而调整大小。它在被做出来的那天就已经被确定了!换句话说,你很难只用这一张图来应付拥有相同风格却大小各异的控件。为了给所有控件加上圆角和边框,你必须小心翼翼地计算他们的大小,然后一个一个得制作背景图片!天哪,这简直太愚蠢了。一旦遇到大小不定的控件,这方法就歇菜了。而且,大量的背景图片会让你的安装包迅速膨胀。呃……还有,你怎么应对拥有各式各样分辨率的Android设备呢?
??所以,你需要……换个方法。
??比较为大众采用一种解决方案是NinePatch。可以毫不夸张得说,9 patch是Android中解决自适应问题的利器。
??使用9 patch图片有很多好处,如减轻美工压力,减少UI代码量,减少内存使用……总结起来就是:省时省力,屌爆了。
??当然,9 patch能做的是远远比这多,如做一个自适应的对话框什么的。一般9patch做出的图片结尾是.9.jpg。
更多关于9pach的文章请参考:http://blog.csdn.net/whyrjj3/article/details/7852642
??Android除了支持原始的图片资源外,比较棒的一点就是可以用XML文件定义一些简单的图形。这有点像web的CSS,不过相比CSS3,Android的xml实现还没那么强大。其实就是背景选择器。
在res目录下的drawable-mdpi建立xml文件shape.xml,如下图所示:
shape.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<!-- 填充的颜色 -->
<solid android:color="#fff"/>
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="5dip"/>
<stroke android:color="#ffbdbdbd"
android:width="1dp"
></stroke>
<!-- padding:Button里面的文字与Button边界的间隔 -->
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"
/>
</shape>
在activity_login.xml中使用它:
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"
android:layout_marginRight="50dp"
android:textSize="15sp"
android:background="@drawable/shape"
/>
效果图:
关于shape中的属性说明:
solid
size
gradient
stroke
corners
padding
??要在Android中实现圆角和边框,比较简单的方法:图片、XML差不多就是这么用的啦。此外还有用Java代码调用draw方法画出来的。
http://blog.xianqu.org/2012/04/android-borders-and-radius-corners/
http://blog.csdn.net/whyrjj3/article/details/7852642
http://www.cnblogs.com/tinyphp/p/3829895.html
http://www.cnblogs.com/gzggyy/archive/2013/05/17/3083218.html
_____________________________对不起,请原谅我,谢谢你,我爱你
标签:
原文地址:http://blog.csdn.net/a910626/article/details/45438429