Night-Mode-Button

Night Mode Button Library for Android

Easy to use night mode button with cool day night animation.

Night-Mode-Button

Installation

  • Gradle

    Add it in your root build.gradle at the end of repositories:

    allprojects {
    	repositories {
    		...
    		maven { url 'https://jitpack.io' }
    	}
    }
    

    Add the dependency in your app build.gradle

    dependencies {
            implementation 'com.github.shrikanth7698:Night-Mode-Button:V1.0'
    }
    
  • Maven

    Add the JitPack repository to your build file

    <repositories>
    	<repository>
    	    <id>jitpack.io</id>
    	    <url>https://jitpack.io</url>
    	</repository>
    </repositories>
    

    Add the dependency

    <dependency>
        <groupId>com.github.shrikanth7698</groupId>
        <artifactId>Night-Mode-Button</artifactId>
        <version>V1.0</version>
      </dependency>
    

Usage

Drop the Night Mode Button in your XML layout as is shown below:

    	<com.shrikanthravi.library.NightModeButton
		      android:layout_width="wrap_content"
		      android:layout_height="wrap_content"
		      android:layout_centerHorizontal="true"
		      android:id="@+id/nightModeButton"
		      android:layout_centerVertical="true"/>

And then in your Activity or fragment

        
        //Inside onCreate()
         
         NightModeButton nightModeButton;
         RelativeLayout relativeLayout;
    
        relativeLayout = findViewById(R.id.rootLayout);
        nightModeButton = findViewById(R.id.nightModeButton);

        final int colorFrom = getResources().getColor(R.color.white);
        final int colorTo = getResources().getColor(R.color.dark);



        nightModeButton.setOnSwitchListener(new NightModeButton.OnSwitchListener() {
            @Override
            public void onSwitchListener(boolean isNight) {
                if(isNight){
                    //Function to change color
                    animateBackground(colorFrom,colorTo);
                    animateStatusActionBar(getResources().getColor(R.color.colorPrimary),colorTo);
                    Toast.makeText(getApplicationContext(),"Night Mode On",Toast.LENGTH_SHORT).show();
                }else {
                    animateBackground(colorTo,colorFrom);
                    animateStatusActionBar(colorTo,getResources().getColor(R.color.colorPrimary));
                    Toast.makeText(getApplicationContext(),"Night Mode Off",Toast.LENGTH_SHORT).show();
                }
            }
        });
        

        

TODO

  1. Color Customization
  2. Animation Speed
  3. Add Confetti effect

GitHub