本文演示如何Android中实现ListView圆角效果。

无论是网站,还是APP,人们都爱看一些新颖的视图效果。直角看多了,就想看看圆角,这几年刮起了一阵阵的圆角设计风:CSS新标准纳入圆角元素,特别是在iphone中几乎随处可见圆角设计,现在也开始出现很多圆角名片了。

现在就给大家实现一个圆角的ListView效果。 圆角的设计,我们并不追求到处都用,无处不用,android中有少数界面用直角确实容易显得锋利,和周边界面太过对比而显得不协调,比如大栏目列表,设置等等,而采用圆角实现,则会活泼,轻松的多,也融合的特别好。

先看下在IPhone中实现圆角效果的一个图片:

在Iphone中这种效果处处可见,但在Android中就需要我们手动实现了。

我们先看下示例运行效果图,如下所示:

实现原理:

通过判断ListView上点击的项的位置,我们切换不同的选择器,当然这个切换的动作我们需要定义在重写ListView的onInterceptTouchEvent()方法中。

if(itemnum==0){    if(itemnum==(getAdapter().getCount()-1)){        //只有一项        setSelector(R.drawable.app_list_corner_round);    }else{        //第一项                                    setSelector(R.drawable.app_list_corner_round_top);    }}else if(itemnum==(getAdapter().getCount()-1))    //最后一项    setSelector(R.drawable.app_list_corner_round_bottom);else{    //中间一项                                setSelector(R.drawable.app_list_corner_shape);}

定义选择器

如果只有一项,我们需要四个角都是圆角,app_list_corner_round.xml文件定义如下:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">    <gradient android:startColor="#BFEEFF"         android:endColor="#40B9FF"         android:angle="270"/>    <corners android:topLeftRadius="6dip"        android:topRightRadius="6dip"        android:bottomLeftRadius="6dip"        android:bottomRightRadius="6dip"/></shape>
如果是顶部第一项,则上面两个角为圆角,app_list_corner_round_top.xml定义如下:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">    <gradient android:startColor="#BFEEFF"         android:endColor="#40B9FF"         android:angle="270"/>    <corners android:topLeftRadius="6dip"        android:topRightRadius="6dip"/></shape>

如果是底部最后一项,则下面两个角为圆角,app_list_corner_round_bottom.xml定义如下:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">    <gradient android:startColor="#BFEEFF"         android:endColor="#40B9FF"         android:angle="270"/>    <corners android:bottomLeftRadius="6dip"        android:bottomRightRadius="6dip" /></shape>

如果是中间项,则应该不需要圆角, app_list_corner_shape.xml定义如下:

<?xml version="1.0" encoding="utf-8"?>  <shape xmlns:android="http://schemas.android.com/apk/res/android">     <gradient android:startColor="#BFEEFF"          android:endColor="#40B9FF"          android:angle="270"/></shape>

最后,希望转载的朋友能够尊重作者的劳动成果,加上转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/03/18/2404820.html 谢谢。

更多相关文章

  1. Android应用系列:仿MIUI的Toast动画效果实现
  2. Android(安卓)高仿微信发朋友圈浏览图片效果
  3. Android(安卓)自定义View基础(一)
  4. 整个网络可能最完善的 Android(安卓)自定义键盘 问题汇总以及解
  5. android 自定义输入法研究
  6. App启动时三种效果(黑屏白屏、背景图片、延迟加载)
  7. Android(安卓)实现高斯模糊效果及低版本兼容
  8. Android(安卓)ListView页眉页脚效果
  9. Android(安卓)用groovy在gradle自定义字段方法实现一键切换versi

随机推荐

  1. Android开发1——查找所需要出示权限的内
  2. RecyclerView 入门教程(超详细)
  3. Xposed折腾笔记(一)
  4. Android(安卓)Loader(二) CursorLoader
  5. Android(安卓)开发之 ---- bootloader (LK
  6. Android(安卓)的Handle之postDelayed方法
  7. Android(安卓)Tunnel Mode
  8. Android:res之layer-list的用法
  9. 【Android】自定义蒙层
  10. android 设计