Drawerlayout实现左右nineoldandroids-2.4.0.jar双向侧滑菜单

来源:互联网 发布:淘宝虚拟自动发货软件 编辑:程序博客网 时间:2024/04/29 09:35
1.首先,要加入使用到的包

compile'com.nineoldandroids:library:2.4.0'或

eclipse可以加入nineoldandroids-2.4.0.jar

第一步,在res-layout下面的主界面activity.main.xml加入要显示的右侧点击侧滑按钮和引入的两个fragment

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/drawerlayout">    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="@drawable/qq" >        <Button            android:layout_width="40dp"            android:layout_height="30dp"            android:layout_marginTop="10dp"            android:layout_alignParentRight="true"            android:background="@drawable/youce"            android:onClick="OpenRightMenu" />    </RelativeLayout>    <fragment        android:id="@+id/id_left_menu"        android:name="com.zhy.demo_zhy_17_drawerlayout.MenuLeftFragment"        android:layout_width="200dp"        android:layout_height="match_parent"        android:layout_gravity="left"        android:tag="LEFT" />    <fragment        android:id="@+id/id_right_menu"        android:name="com.zhy.demo_zhy_17_drawerlayout.MenuRightFragment"        android:layout_width="100dp"        android:layout_height="match_parent"        android:layout_gravity="right"        android:tag="RIGHT" /></android.support.v4.widget.DrawerLayout>
第二步,建立layout_left_fragment.xml显示左边fragment的内容
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:orientation="vertical" >        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <ImageView                android:id="@+id/one"                android:layout_width="50dp"                android:layout_height="50dp"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_marginTop="20dp"                android:src="@drawable/img_1" />            <TextView                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_toRightOf="@id/one"                android:text="第1个Item"                android:textColor="#f0f0f0"                android:textSize="20sp" />        </RelativeLayout>        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <ImageView                android:id="@+id/two"                android:layout_width="50dp"                android:layout_height="50dp"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_marginTop="20dp"                android:src="@drawable/img_2" />            <TextView                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_toRightOf="@id/two"                android:text="第2个Item"                android:textColor="#f0f0f0"                android:textSize="20sp" />        </RelativeLayout>        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <ImageView                android:id="@+id/three"                android:layout_width="50dp"                android:layout_height="50dp"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_marginTop="20dp"                android:src="@drawable/img_3" />            <TextView                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_toRightOf="@id/three"                android:text="第3个Item"                android:textColor="#f0f0f0"                android:textSize="20sp" />        </RelativeLayout>        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <ImageView                android:id="@+id/four"                android:layout_width="50dp"                android:layout_height="50dp"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_marginTop="20dp"                android:src="@drawable/img_4" />            <TextView                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_toRightOf="@id/four"                android:text="第4个Item"                android:textColor="#f0f0f0"                android:textSize="20sp" />        </RelativeLayout>        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <ImageView                android:id="@+id/five"                android:layout_width="50dp"                android:layout_height="50dp"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_marginTop="20dp"                android:src="@drawable/img_5" />            <TextView                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_centerVertical="true"                android:layout_marginLeft="20dp"                android:layout_toRightOf="@id/five"                android:text="第5个Item"                android:textColor="#f0f0f0"                android:textSize="20sp" />        </RelativeLayout>    </LinearLayout></LinearLayout>
同理,右边fragment的内容
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center_vertical">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:layout_gravity="center_vertical"        android:layout_marginBottom="20dp"        android:orientation="vertical" >        <ImageView            android:layout_width="60dp"            android:layout_height="60dp"            android:layout_gravity="center"            android:src="@drawable/wode" />        <TextView            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:text="扫一扫"            android:textColor="#ffffff" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:layout_gravity="center_vertical"        android:layout_marginBottom="20dp"        android:orientation="vertical" >        <ImageView            android:layout_width="60dp"            android:layout_height="60dp"            android:layout_gravity="center"            android:src="@drawable/saoma" />        <TextView            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:text="讨论组"            android:textColor="#ffffff" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:layout_gravity="center_vertical"        android:layout_marginBottom="20dp"        android:orientation="vertical" >        <ImageView            android:layout_width="60dp"            android:layout_height="60dp"            android:layout_gravity="center"            android:src="@drawable/wode" />        <TextView            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:text="扫一扫"            android:textColor="#ffffff" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:layout_gravity="center_vertical"        android:layout_marginBottom="20dp"        android:orientation="vertical" >        <ImageView            android:layout_width="60dp"            android:layout_height="60dp"            android:layout_gravity="center"            android:src="@drawable/saoma" />        <TextView            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:text="讨论组"            android:textColor="#ffffff" />    </LinearLayout></LinearLayout>
在main里面新建两个fragment,分别为找到对应的布局,这边就只列举一个
package com.zhy.demo_zhy_17_drawerlayout;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import activity.chuangdun.com.drawerlayout.R;public class MenuLeftFragment extends Fragment {    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.layout_left_fragment, container, false);    }}
最后一步,就是在MainActivity里面继承FragmentActivity
package activity.chuangdun.com.drawerlayout;import android.support.v4.app.FragmentActivity;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.View;import com.nineoldandroids.view.ViewHelper;public class MainActivity extends FragmentActivity {    private DrawerLayout drawerLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initview();        initEvents();    }    public void OpenRightMenu(View view)    {        drawerLayout.openDrawer(Gravity.RIGHT);        drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED,                Gravity.RIGHT);    }    private void initEvents()    {        drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener()        {            @Override            public void onDrawerStateChanged(int newState)            {            }            @Override            public void onDrawerSlide(View drawerView, float slideOffset)            {                View mContent = drawerLayout.getChildAt(0);                View mMenu = drawerView;                float scale = 1 - slideOffset;                float rightScale = 0.8f + scale * 0.2f;                if (drawerView.getTag().equals("LEFT"))                {                    float leftScale = 1 - 0.3f * scale;                    ViewHelper.setScaleX(mMenu, leftScale);                    ViewHelper.setScaleY(mMenu, leftScale);                    ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale));                    ViewHelper.setTranslationX(mContent,                            mMenu.getMeasuredWidth() * (1 - scale));                    ViewHelper.setPivotX(mContent, 0);                    ViewHelper.setPivotY(mContent,                            mContent.getMeasuredHeight() / 2);                    mContent.invalidate();                    ViewHelper.setScaleX(mContent, rightScale);                    ViewHelper.setScaleY(mContent, rightScale);                } else                {                    ViewHelper.setTranslationX(mContent,                        -mMenu.getMeasuredWidth() * slideOffset);                    ViewHelper.setPivotX(mContent, mContent.getMeasuredWidth());                    ViewHelper.setPivotY(mContent,                            mContent.getMeasuredHeight() / 2);                    mContent.invalidate();                    ViewHelper.setScaleX(mContent, rightScale);                    ViewHelper.setScaleY(mContent, rightScale);                }            }            @Override            public void onDrawerOpened(View drawerView)            {            }            @Override            public void onDrawerClosed(View drawerView)            {                drawerLayout.setDrawerLockMode(                        DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT);            }        });    }    public  void initview(){        drawerLayout=(DrawerLayout) findViewById(R.id.drawerlayout);        drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,                Gravity.RIGHT);    }}
以上就实现了简单的左右侧滑了





0 0
原创粉丝点击