Android:仿微信设置菜单
在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


浙公网安备 33010602011771号