转:Android兑现矩形设置菜单

转:Android实现矩形设置菜单
最近试着做下图的界面,源码分享,先上图看看效果吧,下面代码为白色区域。







xml Layout



Xml代码
<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent"> 
 
    <LinearLayout android:id="@+id/all_details" 
        android:layout_width="fill_parent" android:layout_height="fill_parent" 
        android:orientation="vertical"> 
        <TextView android:text="@string/settings" 
            android:layout_width="fill_parent" android:layout_height="wrap_content" 
            android:layout_marginLeft="10px" android:id="@+id/settingsText" 
            android:textSize="20sp" android:textStyle="bold" android:layout_marginBottom="10dip"> 
        </TextView> 
        <RelativeLayout android:layout_width="fill_parent" 
            android:layout_height="wrap_content" android:orientation="horizontal" 
            android:layout_gravity="center_vertical" android:background="@drawable/imagetop" 
            android:layout_marginLeft="10px" 
            android:layout_marginRight="10px" android:paddingLeft="10px"> 
            <CheckBox android:id="@+id/firewall_checkBox" android:layout_width="@android:dimen/app_icon_size" 
                android:layout_height="@android:dimen/app_icon_size" 
                android:layout_alignParentRight="true" android:scaleType="fitCenter" 
                android:layout_gravity="center" /> 
            <TextView android:id="@+id/apps_name" android:layout_width="wrap_content" 
                android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" 
                android:textColor="#000000" android:textSize="18dip" 
                android:layout_alignParentTop="true" android:layout_alignParentLeft="true" 
                android:paddingTop="10dip" android:paddingRight="6dip" 
                android:paddingLeft="6dip" android:layout_gravity="center" 
                android:text="@string/firewall_switch" /> 
 
 
        </RelativeLayout> 
        <RelativeLayout android:layout_width="fill_parent" 
            android:layout_height="wrap_content" android:orientation="horizontal" 
            android:layout_gravity="center_vertical" android:background="@drawable/imagemid" 
            android:layout_marginLeft="10px"   
            android:layout_marginRight="10px" android:paddingLeft="10px"> 
            <CheckBox android:id="@+id/call_checkBox" android:layout_width="@android:dimen/app_icon_size" 
                android:layout_height="@android:dimen/app_icon_size" 
                android:layout_alignParentRight="true" android:scaleType="fitCenter" 
                android:layout_gravity="center" /> 
            <TextView android:id="@+id/apps_name" android:layout_width="wrap_content" 
                android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" 
                android:textColor="#000000" android:textSize="18dip" 
                android:layout_alignParentTop="true" android:layout_alignParentLeft="true" 
                android:paddingTop="10dip" android:paddingRight="6dip" 
                android:paddingLeft="6dip" android:layout_gravity="center" 
                android:text="@string/blockincomingcall"/> 
 
 
        </RelativeLayout> 
        <RelativeLayout android:layout_width="fill_parent" 
            android:layout_height="wrap_content" android:orientation="horizontal" 
            android:layout_gravity="center_vertical" android:background="@drawable/imagebottom" 
            android:layout_marginLeft="10px" 
            android:layout_marginRight="10px" android:paddingLeft="10px"> 
            <CheckBox android:id="@+id/sms_checkbox" android:layout_width="@android:dimen/app_icon_size" 
                android:layout_height="@android:dimen/app_icon_size" 
                android:layout_alignParentRight="true" android:scaleType="fitCenter" 
                android:layout_gravity="center" /> 
            <TextView android:id="@+id/apps_name" android:layout_width="wrap_content" 
                android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" 
                android:textColor="#000000" android:textSize="18dip" 
                android:layout_alignParentTop="true" android:layout_alignParentLeft="true" 
                android:paddingTop="10dip" android:paddingRight="6dip" 
                android:paddingLeft="6dip" android:layout_gravity="center" 
                 android:text="@string/showcalllocation"/> 
 
 
        </RelativeLayout> 
 
    </LinearLayout> 
</ScrollView> 

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">

<LinearLayout android:id="@+id/all_details"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:text="@string/settings"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="10px" android:id="@+id/settingsText"
android:textSize="20sp" android:textStyle="bold" android:layout_marginBottom="10dip">
</TextView>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_gravity="center_vertical" android:background="@drawable/imagetop"
android:layout_marginLeft="10px"
android:layout_marginRight="10px" android:paddingLeft="10px">
<CheckBox android:id="@+id/firewall_checkBox" android:layout_width="@android:dimen/app_icon_size"
android:layout_height="@android:dimen/app_icon_size"
android:layout_alignParentRight="true" android:scaleType="fitCenter"
android:layout_gravity="center" />
<TextView android:id="@+id/apps_name" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000" android:textSize="18dip"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true"
android:paddingTop="10dip" android:paddingRight="6dip"
android:paddingLeft="6dip" android:layout_gravity="center"
android:text="@string/firewall_switch" />


</RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_gravity="center_vertical" android:background="@drawable/imagemid"
android:layout_marginLeft="10px"
android:layout_marginRight="10px" android:paddingLeft="10px">
<CheckBox android:id="@+id/call_checkBox" android:layout_width="@android:dimen/app_icon_size"
android:layout_height="@android:dimen/app_icon_size"
android:layout_alignParentRight="true" android:scaleType="fitCenter"
android:layout_gravity="center" />
<TextView android:id="@+id/apps_name" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000" android:textSize="18dip"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true"
android:paddingTop="10dip" android:paddingRight="6dip"
android:paddingLeft="6dip" android:layout_gravity="center"
android:text="@string/blockincomingcall"/>


</RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_gravity="center_vertical" android:background="@drawable/imagebottom"
android:layout_marginLeft="10px"
android:layout_marginRight="10px" android:paddingLeft="10px">
<CheckBox android:id="@+id/sms_checkbox" android:layout_width="@android:dimen/app_icon_size"
android:layout_height="@android:dimen/app_icon_size"
android:layout_alignParentRight="true" android:scaleType="fitCenter"
android:layout_gravity="center" />
<TextView android:id="@+id/apps_name" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000" android:textSize="18dip"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true"
android:paddingTop="10dip" android:paddingRight="6dip"
android:paddingLeft="6dip" android:layout_gravity="center"
android:text="@string/showcalllocation"/>


</RelativeLayout>

</LinearLayout>
</ScrollView>

imagetop.xml(保存于drawable)



Xml代码
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient   
        android:startColor="#FFFFFF"   
        android:endColor="#CCCCCC"   
        android:angle="270" android:centerY="0.75" 
        /> 
   
    <corners android:radius="1dp" 
             android:bottomRightRadius="0dp" 
             android:topRightRadius="7dp" 
             android:bottomLeftRadius="0dp" 
             android:topLeftRadius="7dp" 
             /> 
   
             <!--  
    <corners android:radius="5dip" /> 
    --> 
</shape> 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
    android:startColor="#FFFFFF"
    android:endColor="#CCCCCC"
    android:angle="270" android:centerY="0.75"
    />

    <corners android:radius="1dp"
             android:bottomRightRadius="0dp"
             android:topRightRadius="7dp"
             android:bottomLeftRadius="0dp"
             android:topLeftRadius="7dp"
             />

             <!--
    <corners android:radius="5dip" />
    -->
</shape>

imagemid.xml



Xml代码
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient   
        android:startColor="#FFFFFF"   
        android:endColor="#CCCCCC"   
        android:angle="270" android:centerY="0.75" 
        /> 
 
</shape> 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
    android:startColor="#FFFFFF"
    android:endColor="#CCCCCC"
    android:angle="270" android:centerY="0.75"
    />

</shape>


imagebottom.xml



Java代码
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android">  
    <gradient   
        android:startColor="#FFFFFF"   
        android:endColor="#CCCCCC"   
        android:angle="270" android:centerY="0.75" 
        />  
 
    <corners android:radius="1dp" 
             android:bottomRightRadius="7dp" 
             android:topRightRadius="0dp" 
             android:bottomLeftRadius="7dp" 
             android:topLeftRadius="0dp" 
             />  
</shape> 
转载:http://fonter.iteye.com/blog/676278