在Android应用开发中,应用设置界面是非常重要的()。如何设计一个好看的设置界面也很重要。于是在网上搜索一番,自己写写。
1.第一种方法:CornerListView
使用CornerListView的方法是,在布局中创建一个CornerListView。然后使用代码添加item,每个选项的布局使用另一个布局文件设置。
列表布局文件main_tab_setting.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"> <com.tianxia.app.floworld.view.CornerListView android:id="@+id/setting_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dip" android:background="@drawable/app_list_corner_border" android:cacheColorHint="#00000000"> </com.tianxia.app.floworld.view.CornerListView> </LinearLayout>列表项布局文件main_tab_setting_list_item.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="fill_parent"> <ImageView android:id="@+id/setting_list_item_arrow" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:src="@drawable/appreciate_tab_list_item_arrow_small"/> <TextView android:id="@+id/setting_list_item_text" android:layout_toLeftOf="@id/setting_list_item_arrow" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="16dip" android:textColor="#000000" android:paddingTop="10dip" android:paddingBottom="10dip" android:paddingLeft="10dip" /> </RelativeLayout>显示界面SettingTabActivity.java:
public class SettingTabActivity extends Activity{
private CornerListView cornerListView = null;
private List<Map<String,String>> listData = null;
private SimpleAdapter adapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_tab_setting);
cornerListView = (CornerListView)findViewById(R.id.setting_list);
setListData();
adapter = new SimpleAdapter(getApplicationContext(), listData, R.layout.main_tab_setting_list_item , new String[]{"text"}, new int[]{R.id.setting_list_item_text});
cornerListView.setAdapter(adapter);
}
/**
* 设置列表数据
*/
private void setListData(){
listData = new ArrayList<Map<String,String>>();
Map<String,String> map = new HashMap<String, String>();
map.put("text", "图库更新");
listData.add(map);
map = new HashMap<String, String>();
map.put("text", "收藏图片");
listData.add(map);
map = new HashMap<String, String>();
map.put("text", "下载目录");
listData.add(map);
}
}
使用这种方法界面效果图如下:
使用CornerListView要注意的事项:当列表太多需要滚动时,要注意scrollview与listview共存问题。这个问题的解决方法在我前一篇博文:Android:scrollview与listview共存中已经说到并提供了解决方法。而且如果使用这种做法,假设在代码中药更改item相对麻烦一点。
2.使用背景layout组合布局
创建四种圆角选项:单独选项、第一个选项、中间选项和最后一个选项。
第一个选项布局:
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/ic_preference_first_pressed" /> <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/ic_preference_first_pressed" /> <item android:drawable="@drawable/ic_preference_first_normal" /> </selector>中间选项布局:
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/ic_preference_pressed" /> <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/ic_preference_pressed" /> <item android:drawable="@drawable/ic_preference_normal" /> </selector>最后一个选项:
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/ic_preference_last_pressed" /> <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/ic_preference_last_pressed" /> <item android:drawable="@drawable/ic_preference_last_normal" /> </selector>单独选项:
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/ic_preference_single_pressed" /> <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/ic_preference_single_pressed" /> <item android:drawable="@drawable/ic_preference_single_normal" /> </selector>整体布局文件:
<?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:background="#eee" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="45dp" android:id="@+id/title" android:background="@drawable/title_bar" android:gravity="center_horizontal|center_vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设置" android:textSize="20sp" android:textColor="#ffffff" /> </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbarStyle="outsideOverlay" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <!-- *********************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayoutT" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" > <TextView android:id="@+id/StxtViewT" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="2dp" android:text="" android:textSize="2sp" android:textColor="#000" /> </RelativeLayout> <!-- *********************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_single_item" > <TextView android:id="@+id/StxtView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="名片" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <!-- *********************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_first_item" > <TextView android:id="@+id/StxtView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="背景" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <RelativeLayout android:id="@+id/SrelativeLayout3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_last_item" > <TextView android:id="@+id/StxtView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="字体大小" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <!-- *********************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayout4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_first_item" > <TextView android:id="@+id/StxtView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="听筒播放" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/brand_unsetting_icon" /> </RelativeLayout> <RelativeLayout android:id="@+id/SrelativeLayout5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_last_item" > <TextView android:id="@+id/StxtView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="自动播放" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/brand_unsetting_icon" /> </RelativeLayout> <!-- *********************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayout6" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_single_item" > <TextView android:id="@+id/StxtView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="隐私设置" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <!-- *********************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayout7" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_first_item" > <TextView android:id="@+id/StxtView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="清空微日记" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <RelativeLayout android:id="@+id/SrelativeLayout8" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_item" > <TextView android:id="@+id/StxtView8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="初始化设置" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <RelativeLayout android:id="@+id/SrelativeLayout9" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_last_item" > <TextView android:id="@+id/StxtView9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="初始化应用程序" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <!-- ******************************************************************** --> <RelativeLayout android:id="@+id/SrelativeLayout10" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_first_item" > <TextView android:id="@+id/StxtView10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="帮助与反馈" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <RelativeLayout android:id="@+id/SrelativeLayout11" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true" android:background="@drawable/preference_last_item" > <TextView android:id="@+id/StxtView11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" android:text="关于" android:textSize="20sp" android:textColor="#000" /> <ImageView android:id="@+id/SimageView11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/mm_submenu" /> </RelativeLayout> <Button android:id="@+id/Sbtn_close" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:padding="4dp" android:text="退出登录" android:textSize="15sp" android:textColor="#fff" android:gravity="center" android:background="@drawable/btn_style_red" android:onClick="exit_settings" /> </LinearLayout> </ScrollView> </LinearLayout>这种方法效果图:
具体代码参考:http://www.cnblogs.com/qianxudetianxia/archive/2011/09/19/2068760.html http://www.apkbus.com/forum.php?mod=viewthread&tid=70342