先定义一张圆角的图片shape_bg_listview.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle"
- >
- <gradient
- android:startColor="@android:color/white"
- android:endColor="#FFCCCCCC"
- android:angle="180"
- />
- <stroke android:width="0px"
- android:color="@android:color/white"
- />
- <solid android:color="@android:color/white"
- />
- <corners
- android:bottomRightRadius="20px"
- android:bottomLeftRadius="20px"
- android:topLeftRadius="20px"
- android:topRightRadius="20px"
- />
- </shape>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="@android:color/white" android:endColor="#FFCCCCCC" android:angle="180" /> <stroke android:width="0px" android:color="@android:color/white" /> <solid android:color="@android:color/white" /> <corners android:bottomRightRadius="20px" android:bottomLeftRadius="20px" android:topLeftRadius="20px" android:topRightRadius="20px" /> </shape>
然后在ListView中引用它,注意android:listSelector为了去掉选中效果:
- <ListView android:id="@+id/list"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_margin="20.0dip"
- android:cacheColorHint="@null"
- android:listSelector="@drawable/shape_bg_listview"
- android:background="@drawable/shape_bg_listview"
- />
<ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="20.0dip" android:cacheColorHint="@null" android:listSelector="@drawable/shape_bg_listview" android:background="@drawable/shape_bg_listview" />
代码:
- public class App extends Activity {
- private ListView mListView = null;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- ArrayList<String> list =new ArrayList<String>();
- list.add("1");
- list.add("2");
- list.add("3");
- mListView = (ListView)findViewById(R.id.list);
- mListView.setAdapter(new AppAdapter(this,list));
- }
- class AppAdapter extends BaseAdapter{
- Context context;
- ArrayList<String> list;
- AppAdapter(Context context,ArrayList<String> list){
- this.context=context;
- this.list=list;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return list.size();
- }
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return list.get(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
- TextView tv;
- if(convertView==null){
- convertView=LayoutInflater.from(context).inflate(R.layout.simple_item_2, null);
- }
- tv=(TextView)convertView.findViewById(R.id.name);
- tv.setText(list.get(position));
- return convertView;
- }
- }
- }
public class App extends Activity { private ListView mListView = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList<String> list =new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); mListView = (ListView)findViewById(R.id.list); mListView.setAdapter(new AppAdapter(this,list)); } class AppAdapter extends BaseAdapter{ Context context; ArrayList<String> list; AppAdapter(Context context,ArrayList<String> list){ this.context=context; this.list=list; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return list.get(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 TextView tv; if(convertView==null){ convertView=LayoutInflater.from(context).inflate(R.layout.simple_item_2, null); } tv=(TextView)convertView.findViewById(R.id.name); tv.setText(list.get(position)); return convertView; } } }
simple_item_2.xml定义如下:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:id="@+id/name"
- android:textSize="17.0sp"
- android:textColor="@android:color/black"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="20.0dip"
- android:layout_alignParentLeft="true"
- android:layout_centerVertical="true"
- >
- </TextView>
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="20.0dip"
- android:src="@drawable/arrow"
- android:layout_alignParentRight="true"
- android:layout_centerVertical="true"
- >
- </ImageView>
- </RelativeLayout>
from:http://gundumw100.iteye.com/blog/1085930