带有边框的ListView和item
想为ListView和item四周添加边框有两种方法:
1.贴一张带有边框效果的背景图
2.自定义Draw的方法
第一种方法较第二种方法更耗系统资源,但是用法简单,只需要一张图设置为相应控件的背景即可,而第二种灵活性好些。
这次是实现带有边框的ListView和item,为此写个简单Demo 学习学习
先看下Demo运行效果吧
下面是主要代码,主要是用到Canvas.drawLine(...)代码简单,我就不啰嗦了
BorderListView.java
package com.borderlistview.manymore13;import java.util.List;import android.content.Context;import android.os.Handler;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import android.widget.BaseAdapter;import android.widget.ImageView;public class MyBaseAdaper extends BaseAdapter{private List<String> list;private Context c;MyBaseAdaper(Context c, List<String> list){this.list = list;this.c = c;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic Object getItem(int i) {// TODO Auto-generated method stubreturn list.get(i);}@Overridepublic long getItemId(int i) {// TODO Auto-generated method stubreturn i;} @Overridepublic View getView(int i, View view, ViewGroup viewgroup) { ListViewItem itemView = null ;if(view == null){itemView = new ListViewItem(c);}else{itemView = (ListViewItem)view;}itemView.setEventName(list.get(i)); return itemView; } }
另外,在写本次Demo的时候报了错误,有错就改 Caused by: java.lang.NoSuchMethodException:BorderListView(Context,AttributeSet)
在 BorderListView类中加一个构造函数 搞定
public BorderListView(Context context, AttributeSet attrs)
{
super(context, attrs);
}