All Projects → hariprasanths → Googlenewsstandanimation Android

hariprasanths / Googlenewsstandanimation Android

Licence: apache-2.0
Navigation pattern like in Google News Stand app with transitions

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Googlenewsstandanimation Android

Layerjs
layerJS: Javascript UI composition framework
Stars: ✭ 1,825 (+1303.85%)
Mutual labels:  library, transition, swipe
Transitioner
A library for dynamic view-to-view transitions
Stars: ✭ 2,049 (+1476.15%)
Mutual labels:  library, transition
Swipelayout
A library what allows you to execute a swipe for the android platform
Stars: ✭ 150 (+15.38%)
Mutual labels:  library, swipe
SPStorkController
Now playing controller from Apple Music, Mail & Podcasts Apple's apps.
Stars: ✭ 2,515 (+1834.62%)
Mutual labels:  swipe, transition
Kau
An extensive collection of Kotlin Android Utils
Stars: ✭ 182 (+40%)
Mutual labels:  library, swipe
Spstorkcontroller
Now playing controller from Apple Music, Mail & Podcasts Apple's apps.
Stars: ✭ 2,494 (+1818.46%)
Mutual labels:  transition, swipe
Search Engine Parser
Lightweight package to query popular search engines and scrape for result titles, links and descriptions
Stars: ✭ 216 (+66.15%)
Mutual labels:  google, library
Leku
🌍 Map location picker component for Android. Based on Google Maps. An alternative to Google Place Picker.
Stars: ✭ 612 (+370.77%)
Mutual labels:  google, library
Djangae
The best way to run Django on Google Cloud. This project is now on GitLab: https://gitlab.com/potato-oss/djangae/djangae
Stars: ✭ 576 (+343.08%)
Mutual labels:  google, library
Google Material Icons For Sketch
Google Material Icons Library for Sketch App
Stars: ✭ 420 (+223.08%)
Mutual labels:  google, library
Swipetransition
Allows trendy transitions using swipe gesture such as "swipe back anywhere".
Stars: ✭ 272 (+109.23%)
Mutual labels:  transition, swipe
Androidoauth
A simple way to authenticate with Google and Facebook using OAuth 2.0 in Android
Stars: ✭ 88 (-32.31%)
Mutual labels:  google, library
Liquidswipe
Android LiquidSwipe Library
Stars: ✭ 721 (+454.62%)
Mutual labels:  library, swipe
Sunset.css
This library offers a collection of different CSS-powered transitions.
Stars: ✭ 99 (-23.85%)
Mutual labels:  library, transition
Rxmusicplayer Android
An android music player using ExoPlayer and RxJava2
Stars: ✭ 127 (-2.31%)
Mutual labels:  library
Jstoxml
JavaScript object to XML converter (useful for RSS, podcasts, GPX, AMP, etc)
Stars: ✭ 127 (-2.31%)
Mutual labels:  google
Phplrt
PHP Language Recognition Tool
Stars: ✭ 127 (-2.31%)
Mutual labels:  library
Unsupervised Data Augmentation
Unofficial PyTorch Implementation of Unsupervised Data Augmentation.
Stars: ✭ 127 (-2.31%)
Mutual labels:  google
Opacclient
A Java client library and an Android app to access more than 1,000 public and scientific libraries from all over the world.
Stars: ✭ 128 (-1.54%)
Mutual labels:  library
Sensu Plugin
A framework for writing Sensu plugins & handlers with Ruby.
Stars: ✭ 127 (-2.31%)
Mutual labels:  library

Google-NewsStand-Animation-Android

Navigation pattern like in Google News Stand app with transitions

Android Arsenal

Screenshots

Getting Started

In your build.gradle

dependencies {
    implementation 'hari.allagi:allagi:0.1.1'
    //or in lower versions:
    //compile 'hari.allagi:allagi:0.1.1'
}

Usage

Choose one of the NoActionBar themes to use in MenuListActivity and override it to define your app color palette.

<style name="AppTheme.MenuListActivity.NoActionBar" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent" >@color/colorAccent</item>
</style>

Define the colors for ScrollableMenuActivity too.

<style name="AppTheme.ScrollableMenuActivity.NoActionBar" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

Declare the Allagi activities in AndroidManifest.xml file using your new app themes.

<activity
    android:name="hari.allagi.MenuListActivity"
    android:theme="@style/AppTheme.MenuListActivity.NoActionBar" />
<activity
    android:name="hari.allagi.ScrollableMenuActivity"
    android:theme="@style/AppTheme.ScrollableMenuActivity.NoActionBar" />

Set largeHeap to true in AndroidManifest.xml.

<application
  ...
  android:largeHeap="true"/>

Open Allagi from a activity like so:

ArrayList<String> menuList = new ArrayList<>();     //menu titles
ArrayList<Integer> imagesList = new ArrayList<>();      //menu backgrounds
ArrayList<Fragment> fragmentsList = new ArrayList<>();      //fragments for each menu headers in second activity

menuList.add("UPCOMING");       //add titles
menuList.add("EVENTS");         //limit to 8 items for the animation to work
...

imagesList.add(R.drawable.upcoming);        //add background images
imagesList.add(R.drawable.events);
...

fragmentsList.add(UpcomingFragment.newInstance());      //add fragment instances
fragmentsList.add(EventsFragment.newInstance());
...

Allagi allagi = Allagi.initialize(MainActivity.this, menuList, imagesList, fragmentsList);
allagi.start();         //start the menu list activity

Change the duration of the animation:

allagi.setTransitionDuration(900);      //default value is 1000 milliseconds

Libraries used in the project

Credits

Inspired by and thanks to Aurélien Salomon's Google Newsstand Navigation Pattern

Show your support

Give a ⭐️ if this project helped you!

License

Copyright ©️ 2018 Hariprasanth S

This project is licensed under the Apache License, Version 2.0
You may also obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].