圆角listview
来源:互联网 发布:淘宝台服战网点 编辑:程序博客网 时间:2024/05/01 04:12
1.重写listview
package com.example.cornerlistviewdemo;import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ListAdapter;import android.widget.ListView;/** * 自定义圆角ListView * @author DingMaolin * */public class CornerListView extends ListView { public CornerListView(Context context) { super(context); } public CornerListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public CornerListView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: int x = (int) ev.getX(); int y = (int) ev.getY(); int itemnum = pointToPosition(x, y); if (itemnum == AdapterView.INVALID_POSITION) break; else{ if(itemnum==0){ if(itemnum==(getAdapter().getCount()-1)){ // 只有一项 setSelector(R.drawable.listview_corner_round); }else{ // 第一项 setSelector(R.drawable.listview_corner_round_top); } }else if(itemnum==(getAdapter().getCount()-1)){ // 最后一项 setSelector(R.drawable.listview_corner_round_bottom); }else{ // 中间项 setSelector(R.drawable.listview_corner_middle); } } break; case MotionEvent.ACTION_UP: break; } return super.onInterceptTouchEvent(ev); } /** * 设置不滚动 */ @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } /*** * 动态设置listview的高度 * * @param listView */public void setListViewHeightBasedOnChildren(ListView listView) {ListAdapter listAdapter = listView.getAdapter();if (listAdapter == null) {return;}int totalHeight = 0;for (int i = 0; i < listAdapter.getCount(); i++) {View listItem = listAdapter.getView(i, null, listView);listItem.measure(0, 0);totalHeight += listItem.getMeasuredHeight();}ViewGroup.LayoutParams params = listView.getLayoutParams();params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));// params.height += 5;// if without this statement,the listview will be// a// little short// listView.getDividerHeight()获取子项间分隔符占用的高度// params.height最后得到整个ListView完整显示需要的高度listView.setLayoutParams(params);}}
不多说了,直接上源码吧
下载完整源码:http://download.csdn.net/detail/dingmaolin/4635107
- 圆角listView
- 圆角ListView
- 圆角listView
- 圆角listview
- 圆角Listview
- 圆角ListView
- Android中Listview(二)--圆角listview
- Android中Listview(三)--圆角listview
- Android 圆角ListView
- Android 圆角Listview
- 圆角ListView(续)
- android 圆角ListView
- android中ListView圆角
- Android ListView圆角
- android listview圆角
- Android ListView圆角
- 自定义ListView圆角
- listview
- halcon摄像机标定
- 探讨Parsley框架下Controller更新View的方法
- Android---RadioButton(单选按钮)详解
- 关于redhat9.0与arm-linux-gcc 编译链版本问题
- 跟燕十八学习PHP-第十三天-常用数组函数讲解
- 圆角listview
- 新计划
- Windows PE研究
- C语言计算结构体长度
- java-使用import
- sap aa table
- Android用Application设置全局变量以及使用
- JSP中4个对象的范围
- android 获取上一个activity的返回值