android中listview中设计左图标

来源:互联网 发布:档案制作软件 编辑:程序博客网 时间:2024/06/07 10:43
在listview中,如果做成一个象下图那样的列表,每个列表项的前面有一个小的图形呢?
比如如下图:
[img]
http://pareshnmayani.files.wordpress.com/2011/11/bulleted-listview.png
[/img]

可以这样做:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp">

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:listSelector="@android:color/transparent"
        android:divider="@null"/>
</LinearLayout>

listview中每个项的样式文件
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/itemText"
    android:drawableLeft="@drawable/bullet"
    android:drawablePadding="8dp"
    android:padding="5dp"
    android:textSize="20sp"
    android:text="List Item"/>

注意这里是android:drawableLeft="@drawable/bullet"
指定了左边的小图形是在drawable目录下的bullet.xml中的样式

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <size
        android:width="6dp"
        android:height="6dp"/>
    <solid
        android:color="#FF00F0"/>
</shape>
最后的主程序
public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);            GetArrayList();//获得一个列表数组,比如得到一个listCountry数组                        ListView listView = (ListView)findViewById(R.id.listView);            listView.setAdapter(new ArrayAdapter<String>(                                this, R.layout.list_item, listCountry));    }