DrawerLayout 防qq特效

DrawerLayout 用法,先从布局文件看,如下所示

需要注意的是:用ToolBar替换ActionBar的时候,必须调用这个方法supportRequestWindowFeature(Window.FEATURE_NO_TITLE);否则会报错

package com.example.bluetooth;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.RelativeLayout;

public class BitmapActivity extends AppCompatActivity {

private DrawerLayout drawerLayout;
private RelativeLayout mainLeft;
private RelativeLayout mainRight;
private Toolbar toolbar;
private ActionBarDrawerToggle drawerToggle;
public static String TAG = "BitmapActivity lgj";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_bitmap);
    initView();
    //将actionBar替换成toolbar
    setSupportActionBar(toolbar);
    initEvent();

}

private void initEvent() {
    drawerToggle = new ActionBarDrawerToggle(this,drawerLayout,toolbar, R.string.drawerOpen,R.string.drawerClose);
    //同步状态
    drawerToggle.syncState();
    //给侧滑空间设置监听

// drawerLayout.setDrawerListener(drawerToggle);
drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
View content = drawerLayout.getChildAt(0);
//侧滑的view
View menu = drawerView;
Log.i(TAG,slideOffset+”“);
//缩放侧滑菜单从0.7到 -> 1
float scaleLeft = (float) (0.7 + 0.3*slideOffset);
//放大侧滑面板
menu.setScaleX(scaleLeft);
menu.setScaleY(scaleLeft);
//content 放大从1到0.7
float scaleContent = (float) (1-0.3*slideOffset);
content.setScaleX(scaleContent);
content.setScaleY(scaleContent);
//content平移从0到1,
int id = menu.getId();
if (id == R.id.main_left_drawer_layout){
content.setTranslationX(menu.getMeasuredWidth()*slideOffset);
}else {
content.setTranslationX(-menu.getMeasuredWidth()*slideOffset);
}
}

        @Override
        public void onDrawerOpened(View drawerView) {
        }

        @Override
        public void onDrawerClosed(View drawerView) {
        }

        @Override
        public void onDrawerStateChanged(int newState) {
        }
    });
}    //左边菜单开关事件
public void openLeftLayout(View view) {
    if (drawerLayout.isDrawerOpen(mainLeft)) {
        drawerLayout.closeDrawer(mainLeft);
    } else {
        drawerLayout.openDrawer(mainLeft);
    }
}
// 右边菜单开关事件
public void openRightLayout(View view) {
    if (drawerLayout.isDrawerOpen(mainRight)) {
        drawerLayout.closeDrawer(mainRight);
    } else {
        drawerLayout.openDrawer(mainRight);
    }
}
private void initView() {
    toolbar = (Toolbar) findViewById(R.id.toolBar);
    drawerLayout = (DrawerLayout) findViewById(R.id.main_drawer_layout);
    mainLeft = (RelativeLayout) findViewById(R.id.main_left_drawer_layout);
    mainRight = (RelativeLayout) findViewById(R.id.main_right_drawer_layout);
}

}

“`

猜你喜欢

转载自blog.csdn.net/weixin_39413778/article/details/82628504