博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android ListView圆角
阅读量:6149 次
发布时间:2019-06-21

本文共 6040 字,大约阅读时间需要 20 分钟。

首先来看看ListView 相关基本属性

1、单击列表后,列表的背景变成黑色了。

可通过指定android:cacheColorHint的属性来放变它,将它指定为透明。

使用以下的属性值:
    android:cacheColorHint="#000000" 就可以。
2、去除列表项中间的切割线:android:divider="#00000000",这里的值也能够指向一个drawable图片对象(android:divider="@drawable/list_line")。假设使用了图片高度大于系统的像素的话,能够自己设定一个高度。

android:dividerHight="10px"
3、listview在拖动时。listview的背景变成黑色。用这个可解决:android:scrollingCache="false"
4、listview的上边和下边有黑色的阴影。用这个可解决:android:fadingEdge="none"
5、listview右边的滑动条覆盖列表项的内容。用这个可解决:android:scrollbarStyle="outsideInset"
6、改动listvew右边的滑动条与列表项之间的距离。

用这个可解决:android:paddingRight="10dip"。能够依据须要进行改动。
7、改动右边的滑动条显示的颜色。用这个可解决:
    android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
    android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"  
当中scrollbar_vertical_track和scrollbar_vertical_thumb是滑动条的XML配置文件,在API中有,可依据自己的须要改动一下開始颜色和结束颜色就可以。

详细请參考这篇文章

以下来看看ListView 圆角实现,本文主要亮点是数据源能够灵活设置。不用在xml上写死了。

1.在drawable文件下新建

  list_bottom_selector.xml

 

xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"><shape> <solid android:color="#ADFF2F" /> <corners android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp" /> </shape></item> <item><shape> <solid android:color="@color/white" /> <corners android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp" /> </shape></item> </selector>

如法炮制 新建几个xml

list_rect_selector.xml

list_round_selector.xml

list_top_selector.xml

> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"><shape> <solid android:color="#ADFF2F" /> <corners android:topLeftRadius="4dp" android:topRightRadius="4dp" /> </shape></item> <item><shape> <solid android:color="@color/white" /> <corners android:topLeftRadius="4dp" android:topRightRadius="4dp" /> </shape></item> </selector>

接下来我们在layout新建一个item.xml

后新建一个activity_main.xml 来作为我们程序的主页面。也就是我们要显示ListView,布局也非常easy

例如以下:

> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="15dp" > <ListView android:id="@+id/list1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/round_bg" android:cacheColorHint="#00000000" android:divider="@color/list_divider" android:dividerHeight="0.1dp" android:listSelector="#00000000" > </ListView> <ListView android:id="@+id/list2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/round_bg" android:cacheColorHint="#00000000" android:divider="@color/list_divider" android:dividerHeight="0.1dp" android:listSelector="#00000000" > </ListView> <ListView android:id="@+id/list3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/round_bg" android:cacheColorHint="#00000000" android:divider="@color/list_divider" android:dividerHeight="1px" android:listSelector="@color/transparent" > </ListView> </LinearLayout>

然后新建一个MainActivity

public class MainActivity extends Activity {	private ListView list1;	private ListView list2;	private ListView list3;		String array1[] = {"设置"};	String array2[] = {"朋友圈","我的空间"};	String array3[] = {"我的钱包","我的收藏","我的相冊","关联"};	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		initView();	}    private void initView()    {		list1 = (ListView) findViewById(R.id.list1);		list2 = (ListView) findViewById(R.id.list2);		list3 = (ListView) findViewById(R.id.list3);		list1.setAdapter(new MyListAdapter(array1,this));		list2.setAdapter(new MyListAdapter(array2,this));		list3.setAdapter(new MyListAdapter(array3,this));    }}
后面我们自己定义一个MyListAdapter 继承BaseAdapter

public class MyListAdapter extends BaseAdapter {	private LayoutInflater inflater;	private String[] array;	private Context mContext;	public MyListAdapter(String[] array,Context context) {		inflater = LayoutInflater.from(context);		this.array = array;		this.mContext =context; 	}	@Override	public int getCount() {		// TODO Auto-generated method stub		return array.length;	}	@Override	public Object getItem(int position) {		// TODO Auto-generated method stub		return array[position];	}	@Override	public long getItemId(int position) {		// TODO Auto-generated method stub		return position;	}	@Override	public View getView(int position, View convertView, ViewGroup parent) {		// TODO Auto-generated method stub		convertView = inflater.inflate(R.layout.item, null);		TextView tv = (TextView) convertView.findViewById(R.id.text);		tv.setText(array[position]);		if (array.length == 1) {			setBackgroundDrawable(convertView,					R.drawable.list_round_selector);		} else if (array.length == 2) {			if (position == 0) {				setBackgroundDrawable(convertView,						R.drawable.list_top_selector);			} else if (position == array.length - 1) {				setBackgroundDrawable(convertView,						R.drawable.list_bottom_selector);			}		} else {			if (position == 0) {				setBackgroundDrawable(convertView,						R.drawable.list_top_selector);			} else if (position == array.length - 1) {				setBackgroundDrawable(convertView,						R.drawable.list_bottom_selector);			} else {				setBackgroundDrawable(convertView,						R.drawable.list_rect_selector);			}		}		return convertView;	}	private void setBackgroundDrawable(View view, int resID) {		view.setBackgroundDrawable(mContext.getResources().getDrawable(resID));	}}

效果图:

   

你可能感兴趣的文章
c# mschart 学习
查看>>
加入目录结构
查看>>
fdisk与parted分区
查看>>
Flask第十六篇 Flask-SQLAlchemy
查看>>
the specified child alread has a parent
查看>>
普通验证码解决方法
查看>>
选择排序——1简单选择排序实现
查看>>
html中的表格 bootstrap-table
查看>>
(10)odoo控制器操作
查看>>
049——VUE中使用animation与transform实现vue的动画效果
查看>>
在Windows与Linux下Samba共享文件夹以及映射的详细使用说明
查看>>
Team Queue (HDU:1387)
查看>>
NYOJ 737 石子合并(一)
查看>>
阿里云服务器上配置并使用: PHP + Redis + Mysql 从配置到使用
查看>>
[ASP.NET] 如何利用Javascript分割檔案上傳至後端合併
查看>>
AC日记——仙岛求药 openjude 2727
查看>>
AC日记——银河英雄传说 codevs 1540
查看>>
ios控件 UILabel
查看>>
使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据
查看>>
在线编程测试网站
查看>>