GuillotineMenu实现

本文介绍如何在Android Studio中实现GuillotineMenu菜单效果,包括配置开发环境、添加依赖、部署资源及代码实现过程。

网上的源码实现不太全,自己写一份,详细实现原理在实际代码应用填坑过后再总结吧。


GitHub源码下载:

https://github.com/Yalantis/GuillotineMenu-Android

 

AS—>open 

报错

在修改了一下dependencies添加ButterKnife和GuillotineMenu依赖后依然无法解决,所以干脆直接新建一个project,在里面部署,

 

开发环境:Android Studio 3.0.1

         gradle 4.1-all

         applicationId “com.test.testt

         minSdkVersion>=21(原因在于有个组件需要至少21才支持,忘了是啥了)

android {
   
compileSdkVersion 26
   
defaultConfig {
       
applicationId "com.test.testt"
       
minSdkVersion 21
       
targetSdkVersion 26
       
versionCode 1
       
versionName "1.0"
       
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   
}

 

默认添加MainActivity.java和activity_main.xml

 

添加ButterKnife 8.4.0依赖

https://blog.youkuaiyun.com/qq_39587209/article/details/79677279

 

添加GuillotineMenu依赖

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}
dependencies {
    ……
compile 'com.github.Yalantis:GuillotineMenu-Android:1.2'
}


java代码目录根据源码新建“activity”package,部署相关资源

导入GuillotineMenu源码中/main/assets/fonts/canaro_extra_bold.otf, App.java、guillotine.xml、

相关Themes,drawable,style,color,dimen等

代码实现

package com.test.testt.activity;

import
android.os.Bundle;
import
android.support.annotation.Nullable;
import
android.support.v7.app.AppCompatActivity;
import
android.support.v7.widget.Toolbar;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.widget.FrameLayout;
import
android.widget.ImageView;

import
com..test.testt.R;
import
com.yalantis.guillotine.animation.GuillotineAnimation;

import
butterknife.BindView;
import
butterknife.ButterKnife;

/**
 
* Created by Ricardo on 2018/3/25.
 */

public class MainActivity extends AppCompatActivity {
   
@BindView(R.id.content_hamburger)
   
ImageView contentHamburger;
   
@BindView(R.id.toolbar)
   
Toolbar toolbar;
   
@BindView(R.id.root)
   
FrameLayout root;

   
@Override
   
protected void onCreate(@Nullable Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
       
setContentView(R.layout.activity_main);
       
ButterKnife.bind(this);

       
if (toolbar!= null) {
           
setSupportActionBar(toolbar);
           
getSupportActionBar().setTitle(null);
       
}

       
//弹出的菜单
       
View guillotineMenu = LayoutInflater.from(this).inflate(R.layout.guillotine, null);
       
root.addView(guillotineMenu);


       
// 添加弹出的菜单
       
//GuillotineBuilder的第一个参数为菜单的View,第二个参数为关闭菜单的View也就是菜单布局中的按钮,第三个参数为打开菜单的View也就是主页面中的按钮
        new GuillotineAnimation.GuillotineBuilder(guillotineMenu, guillotineMenu.findViewById(R.id.guillotine_hamburger), contentHamburger)
//                .setStartDelay(RIPPLE_DURATION)
                .setActionBarViewForAnimation(toolbar)
               
.build()
                .close();//close()关闭菜单,open()打开菜单
       

   
}

}

 效果图就不放了,希望能帮助到你吧~

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值