关于listview圆角实现的一种方法

android ListView实现圆角实例教程一 就好比学java都搞androd,很明显嘛,为了多赚点钱,可是供过于求的话,就不这么乐观了,就好比现在这个圆角,如果太多太多的话,我想若干时间段,肯定会被新的视图所代替.所以“跟随潮流,放宽眼线”很重要.不扯了,(网上实现例子很多)下面简单介绍下实现方法:(两种方法)下面一些逻辑虽说没有见过,我想大家都看得懂,(就是获取坐标(x,y),然后根据坐标获取listview相应的position值,没有返回-1,然后根据相应的position设置相应的setSelector。我们的listview, 阅读详情

listview实现圆角是一种需求,我的思路是,首先判断listview有多少条数据,如果只有一条,给listitem单独的圆角背景图片,如果有两条,给listitem设置上下圆角背景图片,如果大于2条,给第一个item设置上圆角背景图片,中间的所有item设置常规listitem图片,最后一项设置下圆角图片。下面是实现方法:

首先设置背景xml文件

onlylistone.xml (只有一个item)

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/onlyone" />
    <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/onlyone_press" />
    <item android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/onlyone_press" />
    <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/onlyone_press" />
</selector>
busnesshead.xml(第一个item背景)

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/busnesslisthead" />
    <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/busnesslisthead_press" />
    <item android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/busnesslisthead_press" />
    <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/busnesslisthead_press" />
</selector>

busnesscenter.xml(中间的item背景)

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/busnesslistcenter" />
    <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/busnesslistcenter_press" />
    <item android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/busnesslistcenter_press" />
    <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/busnesslistcenter_press" />
</selector>

busnessbottom.xml(最后一项item背景)

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/busnesslistbottom" />
    <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/busnesslistbottom_press" />
    <item android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/busnesslistbottom_press" />
    <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/busnesslistbottom_press" />
</selector>

java代码中的设置(代码片段,最重要的是setItemBackground()方法)

public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder vHolder = null;
		if(convertView == null)
		{
			convertView = View.inflate(context, R.layout.bussnesscard_listitem2,
					null);
			vHolder = new ViewHolder();
			vHolder.relative_calllog_list = (RelativeLayout) convertView.findViewById(R.id.relative_calllog_list);
			vHolder.txt_personNum = (TextView) convertView.findViewById(R.id.txt_phonenum);
			vHolder.img_calltype = (ImageView) convertView.findViewById(R.id.img_calltype);
			vHolder.txt_calldate = (TextView) convertView.findViewById(R.id.txt_date);
			convertView.setTag(vHolder);
		}else
		{
			vHolder = (ViewHolder) convertView.getTag();
		}
		
		vHolder.relative_calllog_list.setBackgroundResource(setItemBackground(position));
		
		CallLogBean bean = (CallLogBean) getItem(position);
		String phoneNum = bean.getNumber();
		int type = bean.getType();
		long calldate = Long.parseLong(bean.getDate());
		StringBuilder nowDate = StringUtils.FormatStartTime(calldate);
		
		vHolder.txt_personNum.setText(phoneNum);
		vHolder.txt_calldate.setText(nowDate);
		
		return convertView;
	}
	

	private int setItemBackground(int position) {
	    if (position == 0 && arrayList.size() == 1) {  
	                       //只有一个item
	        return R.drawable.onlylistone;  
	    }  
	    if (position == 0) {  
	                       //设置第一个item背景
	        return R.drawable.busnesshead;  
	    }  
	    if (position == arrayList.size() - 1) {  
	                       //设置最后一个item背景
	        return R.drawable.busnessbottom;  
	    }  
	               //中间所有item背景
	    return R.drawable.busnesscenter;  
	}  
}





Android自定义ListView圆角实现 然后,在Activity的Java代码中,通过findViewById()方法获取ListView的实例,并创建CustomListAdapter的实例,将其设置为ListView的适配器。通过创建自定义的ListView项布局和背景样式,以及自定义适配器来绑定数据,我们可以在Android应用程序中实现ListView的圆角效果。在上述代码中,我们使用shape标签定义了一个形状,设置了背景的颜色为"#FFFFFF"(白色),并通过corners标签设置了圆角的半径为"10dp"。希望本文对你有帮助! 阅读详情

相关推荐

OpenClaw:深度学习驱动的智能编程工具实战解析

智能编程工具通过深度学习技术革新传统开发流程,其核心在于代码语义理解与实时协作能力。这类工具采用AI代码补全、错误预测等技术,显著降低开发者认知负荷,尤其适用于复杂业务逻辑开发和遗留系统维护场景。以OpenClaw为例,其智能填充和上下文感知功能可提升40%编码效率,减少65%调试时间。关键技术实现包含自然语言处理、代码静态分析等,在金融科技、电商系统等领域具有广泛应用前景。热词提示:代码理解引擎、智能工作流整合展现了当前AI辅助开发的最新趋势。

chubaisheng8627的博客 320

android自定义listview实现圆角

在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种更好的实现方式。在这里先看一下shape的使用:  <shape xmlns:android="http://schemas.android.com/apk/res/android"

wangkuifeng0118的专栏 3万+

AI+Xmind自动生成测试用例(思维导图格式)

最后:我是Walker,一个热爱分享编程知识的程序员,希望能够帮助到你!

Think_and_work的博客 2333

android ListView实现圆角

方法一:定义 查看源码 打印? 1 xml version ="1.0" encoding ="UTF-8" ?>  2 shape xmlns:android ="http://schemas.android.com/apk/res/android" android:shape ="rectangle

张恒zzh的专栏 689

GATK SNP过滤参数优化:从标准到个性化调整的实践指南

本文深入探讨了GATK SNP过滤参数的个性化调整策略,强调不应盲目套用官方标准参数。文章详细拆解了QD、FS、SOR等关键过滤参数的含义,并提供了通过数据分布分析、文献调研和迭代测试来确定适合自身数据(如动植物重测序)最佳阈值的实践方法,旨在帮助研究者在保留真实变异与剔除假阳性信号之间找到最优平衡。

weixin_29216049的博客 277

5G NR 帧结构

本节主要介绍5G NR中的帧结构[38.211-4.3]。5G帧结构(Frame Structure)为时域结构。其设计比其4G LTE更为灵活,这种灵活性使5G能够根据应用需求(如增强移动宽带eMBB,超高可靠低时延通信URLLC)进行调整,同时支持差异化的应用场景,提高了5G的利用效率与响应能力。具体而言,5G帧结构是基于时隙和OFDM符号设计的,且5G网络能够根据服务需求动态调整各时隙持续时长。

夫子喵的博客 5286

listview实现圆角

在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种更好的实现方式。在这里先看一下shape的使用:<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas

淘气阿星的博客 885

YOLO11-Seg优化:注意力魔改 | 具有切片操作的SimAM注意力,魔改SimAM

问题点:SimAM计算整张特征图的像素差平均值时加权可能会忽略小目标的重要性,同时与整体平均值相比可能和背景信息相似,导致加权增强较弱;

会AI的学姐 459

QListView:绘制自定义List(一)——设置ItemDelegate

在做项目的过程中遇到一个需求:要实现一个美观的List,具体让我自己把握。。。要实现预期的效果,必须要重绘QListItem,而网上相关资料很少,又大多不符合预期效果,无奈只能手撸。要实现自定义的List有两种方法,即修改QListView和QListWidget的Item,本文采用第一种方式。.........

繁星执着的博客 1万+

课题申报书成功率提升85%!借助大模型AI精准选题、搭综述框架及提炼创新点(附实操AI提示词)

写一份高质量的课题申报书往往面临许多困难,对很多同仁来说,难就难在:选题既要新又要能落地,文献综述要结构清晰还得有观点,研究目标要写得有逻辑还不能夸大,创新点必须得新。而且就算你有思路,也卡在怎么组织语言,怎么压缩字数上。现在我们用ChatGPT等AI工具,可以帮我们从“选题策划 → 综述撰写 → 目标拆解 → 创新提炼 → 团队结构”实现申报工作的全流程,我们要做的就是设计好提示词和收集相关资料。这篇文章将会从申报工作的六个核心模块出发,并给出参考AI提示词,帮你快速提升课题申报效率。

智能AI让学术科研更容易 909

Autosar EcuM配置-初始化及下电执行函数-基于ETAS软件

Autosar EcuM学习笔记-上电初始化执行函数及下电前执行函数,本文介绍在EcuM中的配置及使用。

赞的博客 850

Android学习系列(17)--App列表之圆角ListView(续)

本来这篇文章想并到上篇Android学习系列(16)--App列表之圆角ListView中的,但是若是如此就让大家错过一篇新的好的文章,着实可惜。 上篇中我们使用shape,corners,gradient实现了一个渐变的圆角效果,但是在完文之后的实践中,我发现有时效果不甚满意,选中和放手的事件监听没有去正确的判断,然后渐变效果也比较单一,性能也觉得不是很快,不如用图片来的惊艳和迅速,又懒的去改

csj070481022的专栏 1172

手把手教你学Simulink--电动物流车预充电路控制及主继电器粘连检测电机负载仿真

摘要:本文基于Simulink仿真平台,研究了电动物流车预充电路控制策略及主继电器粘连检测技术。通过构建预充电路、主继电器检测及电机负载模型,分析了不同工况下的系统特性。研究表明,优化的预充控制策略可缩短预充时间至0.5秒内,降低电流峰值;主继电器粘连检测模型能准确识别故障;电机负载变化对系统性能具有显著影响。仿真结果验证了所提方法的有效性,为提升电动物流车安全性与可靠性提供了理论支持和技术参考。

MHD0815的博客 63

App列表之圆角ListView(续)

本来这篇文章想并到上篇Android学习系列(16)--App列表之圆角ListView中的,但是若是如此就让大家错过一篇新的好的文章,着实可惜。 上篇中我们使用shape,corners,gradient实现了一个渐变的圆角效果,但是在完文之后的实践中,我发现有时效果不甚满意,选中和放手的事件监听没有去正确的判断,然后渐变效果也比较单一,性能也觉得不是很快,不如用图片来的惊艳和迅速,又

开心阳 3581

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 圆形listview,Android UI控件之ListView实现圆角效果

今天在Android群里面有人再求圆角ListView的实现方式,正好自己以前实现过。因此就共享了现在将其实现方式写在博客中共他人学习。给出实现方式之前顺带加点自己的想法,感觉上android中方形的ListView还是太“硬性”,没有圆角的有亲和力。连Apple也为了“圆角”这个设计去申请专利。看来圆角确实比较适合现在人们的喜好吧。照老规矩先上两张效果图吧:第一张:第二张:该方式主要就是需要重新...

weixin_34024555的博客 497

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android一种实现任意View圆角的方案

一种实现迫不得已的圆角实现方案 该方案只针对那些“善变”的View如 SurfaceView、ListView、Viewpager等可滑动实现的圆角方案,一般情况下你不会用到,用到说明你已经基本无奈了。 这是一种经过调研后的“勉强”实现圆角方案,其中需求背景是在ViewPager、ListView等可滑动系列View的圆角方案,并可在SurfaceView、TextureView上使用圆角。用...

Marshon的专栏 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android ListView圆角实现

在android上开发项目,如果仅仅是采用默认的样式可能不是很美观,需要编写响应的样式来使界面美观,在iphone上常用的圆角ListView的实现。 主要的实现思路就是:通过重写ListView中拦截触摸的事件方式,在生成ListView时候根据不同行采用不同的样式。如第一个行,最末一行,和中建行。(特殊的情况下只有一行的时候,四个角均为圆角考虑)。 实现如下:  最后一行为时候,下方

huangdroid的专栏---不要让任何事情成为你不去学习的理由! 1036

Android中ListView列表Item的圆角效果实现

先看一张图,这是微信中的设置界面。   列表Item第一项需要上圆角,最后一项下圆角,若只有一项,上下四个圆角。按下效果也一样。在中间则不需要圆角。   解决方案同网上其他开发者答案差不多一样,在这里我自己只是做一个标记。 1. 先定义四种按下效果的drawable。 1.下方圆角 1 <?xml version="1.0" encoding="utf-8"?> ...

weixin_30482383的博客 695

圆角listview

1.重写listview package com.example.cornerlistviewdemo; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.vie

dingmaolin的专栏 425

圆角listView

圆角listView中,如果只有一个数据的,则四个角均为圆角。如果数据超过多个的话,则第一个数据的左上角和右上角为为圆角,最后一个元素的左下角和右下角为圆角,其他数据的四个角均为直角。下文的实现方式是根据数据在数据集中的索引来确定数据显示时的背景来实现圆角listview。 1、设计数据背景的资源文件,下文中采用的是使用xml文件来创建背景。 a)单独一个元素的背景: J

承影 2022

Android UI控件之ListView实现圆角效果

http://blog.youkuaiyun.com/wangkuifeng0118/article/details/7746175            在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种更好的实现方式。在这里先看一下shape的使用:

softwarehe的专栏 743

Android中Listview(二)--圆角listview

今天我们就实现一个圆角的ListView效果。 圆角的设计,我们并不追求到处都用,无处不用,android中有少数界面用直角确实容易显得锋利,和周边界面太过对比而显得不协调,比如大栏目列表,设置等等,而采用圆角实现,则会活泼,轻松的多,也融合的特别好。  1.感觉 实际上在Android中因为SDK中没有默认对圆角的一个完整的支持,需要麻烦自定义设置才能实现完美的圆角效果,所以绝大多数应用都

09的专栏 535

圆角Listview

放在drawable中 app_list_corner_round.xml       一项时 [html] view plaincopy xml version="1.0" encoding="utf-8"?>  shape xmlns:android="http://schemas.android.com/apk/res/android">      gradient

a623891391的专栏 752
上一篇: byte[]数组播放wav格式音频文件
下一篇: waiting for debugger
KenChung
博客等级 码龄15年 37粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值