├── .gitignore ├── .idea ├── copyright │ ├── profiles_settings.xml │ └── youssef.xml ├── gradle.xml ├── misc.xml ├── modules.xml └── runConfigurations.xml ├── GIMB ├── Back │ ├── wave_back_1 │ ├── wave_back_2_to │ ├── wave_back_3_to │ ├── wave_back_4_to │ └── wave_back_5_to └── Front │ ├── wave_front_1 │ ├── wave_front_2 │ ├── wave_front_3 │ ├── wave_front_4 │ └── wave_front_5 ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── zatrek │ │ └── wavenavigationdrawer │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── zatrek │ │ │ └── wavenavigationdrawer │ │ │ ├── Activity_Main.java │ │ │ └── Adapter_menu.java │ └── res │ │ ├── animator │ │ ├── back_wave_path1.xml │ │ ├── back_wave_path2.xml │ │ ├── back_wave_path3.xml │ │ ├── back_wave_path4.xml │ │ ├── back_wave_path5.xml │ │ ├── front_wave_path1.xml │ │ ├── front_wave_path2.xml │ │ ├── front_wave_path3.xml │ │ ├── front_wave_path4.xml │ │ └── front_wave_path5.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── animate_wave_1.xml │ │ ├── animate_wave_2.xml │ │ ├── animate_wave_3.xml │ │ ├── animate_wave_4.xml │ │ ├── animate_wave_5.xml │ │ ├── default_background.xml │ │ ├── ic_history_linear.png │ │ ├── ic_home_linear.png │ │ ├── ic_invite3.png │ │ ├── ic_launcher_background.xml │ │ ├── ic_like.png │ │ ├── ic_notification_linear.png │ │ ├── ic_settings_linear.png │ │ ├── ic_share.png │ │ ├── ic_users_linear.png │ │ └── side_nav_bar.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── app_bar_main.xml │ │ ├── content_main.xml │ │ ├── menu_header.xml │ │ ├── menu_item.xml │ │ └── menu_space.xml │ │ ├── menu │ │ ├── activity_main_drawer.xml │ │ └── main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-v21 │ │ └── styles.xml │ │ └── values │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── drawables.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── zatrek │ └── wavenavigationdrawer │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/copyright/youssef.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /GIMB/Back/wave_back_1: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Back/wave_back_2_to: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Back/wave_back_3_to: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Back/wave_back_4_to: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Back/wave_back_5_to: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Front/wave_front_1: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Front/wave_front_2: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Front/wave_front_3: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Front/wave_front_4: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /GIMB/Front/wave_front_5: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Youssef Assad 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NavigationDrawer-WaveAnimation 2 | The idea is to create wave transitions below the header when the user opens the Navigation Drawer, 3 | the transitions have to be meaningful so I created a loop of 5 different waves 4 | that synched with each other in a series order using Android's VectorDrawable. 5 | 6 | ![Alt Text](https://cdn-images-1.medium.com/max/1600/1*-QxingaedQq6R5ArUKwNvw.gif) 7 | 8 | Full Documentation here 9 | 10 | https://medium.com/@youssefassad/navigation-drawer-with-wave-animation-21bfb4e647fd 11 | 12 | 13 | 14 | ``` 15 | MIT License 16 | 17 | Copyright (c) 2018 Youssef Assad 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so. 25 | ``` 26 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 26 5 | defaultConfig { 6 | applicationId "zatrek.wavenavigationdrawer" 7 | minSdkVersion 16 8 | targetSdkVersion 26 9 | versionCode 1 10 | versionName "1.0" 11 | vectorDrawables.useSupportLibrary = true 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation fileTree(dir: 'libs', include: ['*.jar']) 24 | implementation 'com.android.support:appcompat-v7:26.1.0' 25 | implementation 'com.android.support:design:26.1.0' 26 | implementation 'com.android.support.constraint:constraint-layout:1.1.0' 27 | testImplementation 'junit:junit:4.12' 28 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 29 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 30 | compile 'com.android.support:support-vector-drawable:26.0.0' 31 | compile 'com.android.support:animated-vector-drawable:26.0.0' 32 | compile 'com.intuit.sdp:sdp-android:1.0.4' 33 | } 34 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/androidTest/java/zatrek/wavenavigationdrawer/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package zatrek.wavenavigationdrawer; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("zatrek.wavenavigationdrawer", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/zatrek/wavenavigationdrawer/Activity_Main.java: -------------------------------------------------------------------------------- 1 | /* 2 | * * 3 | * * Created by Youssef Assad on 5/12/18 8:41 PM 4 | * * Copyright (c) 2018 . All rights reserved. 5 | * * Last modified 5/12/18 8:34 PM 6 | * 7 | */ 8 | 9 | package zatrek.wavenavigationdrawer; 10 | 11 | import android.os.Build; 12 | import android.os.Bundle; 13 | import android.support.design.widget.FloatingActionButton; 14 | import android.support.design.widget.Snackbar; 15 | import android.support.graphics.drawable.AnimatedVectorDrawableCompat; 16 | import android.support.v7.widget.LinearLayoutManager; 17 | import android.support.v7.widget.RecyclerView; 18 | import android.view.View; 19 | import android.support.design.widget.NavigationView; 20 | import android.support.v4.view.GravityCompat; 21 | import android.support.v4.widget.DrawerLayout; 22 | import android.support.v7.app.ActionBarDrawerToggle; 23 | import android.support.v7.app.AppCompatActivity; 24 | import android.support.v7.widget.Toolbar; 25 | import android.view.Menu; 26 | import android.view.MenuItem; 27 | import android.widget.RelativeLayout; 28 | 29 | public class Activity_Main extends AppCompatActivity { 30 | 31 | private int AnimateNumber = 1 ; 32 | DrawerLayout mDrawer; 33 | NavigationView navigationView; 34 | RecyclerView recyclerView; 35 | RelativeLayout WaveContainer; 36 | 37 | 38 | @Override 39 | protected void onCreate(Bundle savedInstanceState) { 40 | super.onCreate(savedInstanceState); 41 | setContentView(R.layout.activity_main); 42 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 43 | setSupportActionBar(toolbar); 44 | 45 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 46 | fab.setOnClickListener(new View.OnClickListener() { 47 | @Override 48 | public void onClick(View view) { 49 | Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 50 | .setAction("Action", null).show(); 51 | } 52 | }); 53 | 54 | mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); 55 | ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( 56 | this, mDrawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 57 | mDrawer.addDrawerListener(toggle); 58 | toggle.syncState(); 59 | 60 | navigationView = (NavigationView) findViewById(R.id.nav_view); 61 | View header = navigationView.getHeaderView(0); 62 | 63 | recyclerView = navigationView.findViewById(R.id.nav_drawer_recycler_view); 64 | WaveContainer = navigationView.findViewById(R.id.WaveContainer); 65 | recyclerView.setLayoutManager(new LinearLayoutManager(this)); 66 | Adapter_menu adapter_menu = new Adapter_menu(this, new Adapter_menu.ListenerOnMenuItemClick() { 67 | @Override 68 | public void Item(int Position) { 69 | mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); 70 | mDrawer.closeDrawer(GravityCompat.START); 71 | } 72 | }); 73 | recyclerView.setAdapter(adapter_menu); 74 | 75 | mDrawer.addDrawerListener(new DrawerLayout.DrawerListener() { 76 | @Override 77 | public void onDrawerSlide(View drawerView, float slideOffset) { 78 | 79 | 80 | } 81 | @Override 82 | public void onDrawerOpened(View drawerView) { 83 | StartAnimation(); 84 | } 85 | 86 | @Override 87 | public void onDrawerClosed(View drawerView) { 88 | 89 | } 90 | 91 | @Override 92 | public void onDrawerStateChanged(int newState) { 93 | 94 | } 95 | }); 96 | 97 | 98 | if (Build.VERSION.SDK_INT < 21) { 99 | AnimatedVectorDrawableCompat drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_1); 100 | recyclerView.setBackground(drawable); 101 | } 102 | } 103 | 104 | @Override 105 | public void onBackPressed() { 106 | DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 107 | if (drawer.isDrawerOpen(GravityCompat.START)) { 108 | drawer.closeDrawer(GravityCompat.START); 109 | } else { 110 | super.onBackPressed(); 111 | } 112 | } 113 | 114 | @Override 115 | public boolean onCreateOptionsMenu(Menu menu) { 116 | // Inflate the menu; this adds items to the action bar if it is present. 117 | getMenuInflater().inflate(R.menu.main, menu); 118 | return true; 119 | } 120 | 121 | @Override 122 | public boolean onOptionsItemSelected(MenuItem item) { 123 | // Handle action bar item clicks here. The action bar will 124 | // automatically handle clicks on the Home/Up button, so long 125 | // as you specify a parent activity in AndroidManifest.xml. 126 | int id = item.getItemId(); 127 | 128 | //noinspection SimplifiableIfStatement 129 | if (id == R.id.action_settings) { 130 | return true; 131 | } 132 | return super.onOptionsItemSelected(item); 133 | } 134 | 135 | 136 | 137 | private void StartAnimation(){ 138 | 139 | 140 | AnimatedVectorDrawableCompat drawable = null; 141 | switch (AnimateNumber){ 142 | case 1: 143 | drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_1); 144 | break; 145 | case 2: 146 | drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_2); 147 | break; 148 | case 3: 149 | drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_3); 150 | break; 151 | case 4: 152 | drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_4); 153 | break; 154 | case 5: 155 | drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_5); 156 | AnimateNumber = 0; 157 | break; 158 | default: 159 | drawable = AnimatedVectorDrawableCompat.create(this,R.drawable.animate_wave_1); 160 | } 161 | 162 | 163 | AnimateNumber ++ ; 164 | WaveContainer.setBackground(drawable); 165 | assert drawable != null; 166 | drawable.start(); 167 | } 168 | } 169 | -------------------------------------------------------------------------------- /app/src/main/java/zatrek/wavenavigationdrawer/Adapter_menu.java: -------------------------------------------------------------------------------- 1 | /* 2 | * * 3 | * * Created by Youssef Assad on 5/12/18 8:41 PM 4 | * * Copyright (c) 2018 . All rights reserved. 5 | * * Last modified 5/12/18 1:12 PM 6 | * 7 | */ 8 | 9 | package zatrek.wavenavigationdrawer; 10 | 11 | import android.app.Activity; 12 | import android.content.res.TypedArray; 13 | import android.support.v7.widget.RecyclerView; 14 | import android.view.LayoutInflater; 15 | import android.view.View; 16 | import android.view.ViewGroup; 17 | import android.widget.ImageView; 18 | import android.widget.TextView; 19 | 20 | 21 | /** 22 | * Created by Joseph27 on 5/11/17. 23 | */ 24 | 25 | public class Adapter_menu extends RecyclerView.Adapter { 26 | 27 | 28 | private final TypedArray img; 29 | private final TypedArray titles; 30 | 31 | private final int space = 2; 32 | private final int item = 3; 33 | private static final String KEY_SPACE = "SPACE"; 34 | ListenerOnMenuItemClick MenuItemClickListener; 35 | 36 | 37 | 38 | public Adapter_menu(Activity activity ,ListenerOnMenuItemClick menuItemClick){ 39 | img = activity.getResources().obtainTypedArray(R.array.menu_array); 40 | titles = activity.getResources().obtainTypedArray(R.array.MenuTitles); 41 | this.MenuItemClickListener = menuItemClick; 42 | 43 | } 44 | 45 | @Override 46 | public int getItemViewType(int position) { 47 | 48 | if (titles.getString(position).equals(KEY_SPACE)){ 49 | return space; 50 | }else { 51 | return item; 52 | } 53 | 54 | } 55 | 56 | @Override 57 | public ViewHolder_Menu onCreateViewHolder(ViewGroup parent, int viewType) { 58 | //Log.d(TAG, "onCreateViewHolder: "); 59 | View v = null; 60 | if (viewType == space){ 61 | v = LayoutInflater.from(parent.getContext()) 62 | .inflate(R.layout.menu_space, parent, false); 63 | 64 | }else if (viewType == item){ 65 | v = LayoutInflater.from(parent.getContext()) 66 | .inflate(R.layout.menu_item, parent, false); 67 | } 68 | 69 | return new ViewHolder_Menu(v); 70 | } 71 | 72 | @Override 73 | public void onBindViewHolder(ViewHolder_Menu holder, final int position) { 74 | 75 | 76 | if (getItemViewType(position) != space) { 77 | 78 | holder.SetIcon(); 79 | if (holder.im_icon != null) { 80 | holder.im_icon.setImageResource(img.getResourceId(position, 0)); 81 | } 82 | 83 | if (holder.im_title != null) { 84 | holder.im_title.setText(titles.getString(position)); 85 | } 86 | holder.mView.setOnClickListener(new View.OnClickListener() { 87 | @Override 88 | public void onClick(View view) { 89 | MenuItemClickListener.Item(position); 90 | } 91 | }); 92 | } 93 | } 94 | 95 | 96 | @Override 97 | public int getItemCount() { 98 | return img.length(); 99 | } 100 | 101 | 102 | 103 | public class ViewHolder_Menu extends RecyclerView.ViewHolder { 104 | 105 | final View mView; 106 | ImageView im_icon; 107 | TextView im_title; 108 | public ViewHolder_Menu(View itemView) { 109 | super(itemView); 110 | this.mView = itemView; 111 | 112 | } 113 | public void SetIcon(){ 114 | im_icon = itemView.findViewById(R.id.iv_icon); 115 | im_title = itemView.findViewById(R.id.tv_title); 116 | 117 | } 118 | } 119 | 120 | 121 | public interface ListenerOnMenuItemClick { 122 | void Item(int Position); 123 | } 124 | 125 | 126 | } 127 | 128 | -------------------------------------------------------------------------------- /app/src/main/res/animator/back_wave_path1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/animator/back_wave_path2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/animator/back_wave_path3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/animator/back_wave_path4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/animator/back_wave_path5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/animator/front_wave_path1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/animator/front_wave_path2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/animator/front_wave_path3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/animator/front_wave_path4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/animator/front_wave_path5.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animate_wave_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animate_wave_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animate_wave_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animate_wave_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animate_wave_5.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/default_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 20 | 21 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_history_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_history_linear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_home_linear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_invite3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_invite3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_like.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notification_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_notification_linear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_settings_linear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_users_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/drawable/ic_users_linear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 17 | 25 | 26 | 27 | 33 | 34 | 35 | 41 | 42 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 20 | 21 | 22 | 23 | 24 | 25 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/menu_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 18 | 19 | 24 | 25 | 26 | 27 | 34 | 35 | 36 | 37 | 44 | 45 | 54 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /app/src/main/res/layout/menu_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 20 | 21 | 22 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/menu_space.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/menu/activity_main_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 11 | 15 | 19 | 23 | 24 | 25 | 26 | 27 | 31 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joseph27/NavigationDrawer-WaveAnimation/b9496d17019bcd4763a27fb9bc1e571aa88292fa/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @drawable/ic_home_linear 7 | @drawable/ic_notification_linear 8 | @drawable/ic_like 9 | @drawable/ic_history_linear 10 | @drawable/ic_users_linear 11 | @drawable/ic_settings_linear 12 | @drawable/ic_invite3 13 | @drawable/ic_share 14 | @drawable/ic_settings_linear 15 | 16 | 17 | 18 | HOME 19 | NOTIFICATIONS 20 | COLLECTION 21 | HISTORY 22 | USERS 23 | SPACE 24 | INVITE FRIENDS 25 | SHARE APP 26 | SETTINGS 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | #141928 7 | #14548c 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 8dp 6 | 175dp 7 | 16dp 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/drawables.xml: -------------------------------------------------------------------------------- 1 | 2 | @android:drawable/ic_menu_camera 3 | @android:drawable/ic_menu_gallery 4 | @android:drawable/ic_menu_slideshow 5 | @android:drawable/ic_menu_manage 6 | @android:drawable/ic_menu_share 7 | @android:drawable/ic_menu_send 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | WaveNavigationDrawer 3 | 4 | Open navigation drawer 5 | Close navigation drawer 6 | 7 | Settings 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |