zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    如何查看自己的显卡是否支持DirectX 12
    笔记本屏幕忽然变暗的解决办法
    Python 自动给数字前面补0
    vscode左边侧边栏字体的大小
    .NET 异步详解
    新版 C# 高效率编程指南
    轻松学会 React 钩子:以 useEffect() 为例
    React Hooks 入门教程
    UMI.js开发知识总结
    处理react项目ie11浏览器运行空白问题
  • 原文地址:https://www.cnblogs.com/finlay/p/3234734.html
Copyright © 2011-2022 走看看