首先看一下运行效果:
开始新建项目,首先准备几张图片,如下:
1.handle_normal.png 下载
2.handle_focused.png 下载
3.handle_pressed.png 下载
4.list_selector_background_pressed.png 下载
以上图片均放置在drawable-hdpi/drawable-ldpi/drawable-mdpi/drawable-xhdpi中。
然后我们来看代码如何写:
1.在es/drawable目录下定义一个资源文件handle.xml,参考代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android=http://schemas.android.com/apk/res/android>
<item android:state_window_focused="false" android:drawable="@drawable/handle_normal" />
<item android:state_focused="true" android:drawable="@drawable/handle_focused" />
<item android:state_pressed="true" android:drawable="@drawable/handle_pressed" />
</selector>
2.在es/drawable目录下定义一个资源文件listview_selected.xml,参考代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android=http://schemas.android.com/apk/res/android>
<item android:state_pressed="true"
android:drawable="@drawable/list_selector_background_pressed" />
</selector>
3.main.xml文件中的参考代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SlidingDrawer
android:id="@+id/slidingdrawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:handle="@+id/handle"
android:content="@+id/content">
<Button
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/handle" />
<ListView
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</SlidingDrawer>
</LinearLayout>
4.在res/layout文件家中新建listview_layout.xml,文件参考代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/listview_selected"
android:padding="6px">
<TextView
android:id="@+id/webName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20px"
android:textColor="#000000"/>
<TextView
android:id="@+id/webDescript"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16px"
android:textColor="#000000"/>
</LinearLayout>
</LinearLayout>
5.对应java文件(本例是AndroidSlidingDrawerActivity.java)的参考代码:
public class AndroidSlidingDrawerActivity extends Activity {
private ListView myListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
private void setupViews(){
myListView = (ListView)findViewById(R.id.content);
myListView.setAdapter(new ListViewAdapter());
}
private class ListViewAdapter extends BaseAdapter{
//这里返回10行,ListView有多少行取决于getCount()方法
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View v, ViewGroup parent) {
final LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
if(v == null){
v = inflater.inflate(R.layout.listview_layout, null);
}
TextView myWebName = (TextView)v.findViewById(R.id.webName);
TextView myWebDescript = (TextView)v.findViewById(R.id.webDescript);
myWebName.setText("Android开发学习网" + position);
myWebDescript.setText("slidingdrawer用法详解" + position);
return v;
}
}
}
运行即可看到效果.