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

原文地址:https://www.cnblogs.com/finlay/p/3234734.html