基于Android实现ListView圆角效果

 更新时间:2020年10月28日 14:40:14   作者:Healtheon  
这篇文章主要为大家详细介绍了基于Android实现ListView圆角效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文演示如何在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> 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于Vert.x和RxJava 2构建通用的爬虫框架的示例

    基于Vert.x和RxJava 2构建通用的爬虫框架的示例

    这篇文章主要介绍了基于Vert.x和RxJava 2构建通用的爬虫框架的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Android使用SQLite数据库的示例

    Android使用SQLite数据库的示例

    本篇文章主要介绍了Android使用SQLite数据库的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Android ListView之EfficientAdapte的使用详解

    Android ListView之EfficientAdapte的使用详解

    这篇文章主要介绍了Android ListView之EfficientAdapte的使用详解的相关资料,这里介绍EfficientAdapter 的使用方法,需要的朋友可以参考下
    2017-08-08
  • Android Activity进出动画三种方法

    Android Activity进出动画三种方法

    这篇文章主要介绍了Android Activity进出动画三种方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • 详解Android中的沉浸式状态栏效果实例

    详解Android中的沉浸式状态栏效果实例

    本篇文章主要介绍了Android中的沉浸式状态栏效果,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • WheelPicker自定义时间选择器控件

    WheelPicker自定义时间选择器控件

    这篇文章主要为大家详细介绍了WheelPicker自定义时间选择器控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Android 实现监听的四种方法详解实例代码

    Android 实现监听的四种方法详解实例代码

    这篇文章主要介绍了Android 实现监听的方法详解实例代码的相关资料,这里整理了四种方法,需要的朋友可以参考下
    2016-10-10
  • Android切圆角的几种常见方式总结

    Android切圆角的几种常见方式总结

    这篇文章主要给大家介绍了关于Android切圆角的常见方式,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • android仿微信好友列表功能

    android仿微信好友列表功能

    这篇文章主要介绍了android仿微信好友列表功能,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2018-04-04
  • 利用Flutter制作一个会飞的菜单

    利用Flutter制作一个会飞的菜单

    flutter中自带了drawer组件,可以实现通用的菜单功能,所以本文将尝试一下通过自定义动画来实现一个会飞的菜单,感兴趣的可以了解一下
    2023-06-06

最新评论