├── .gitignore
├── README.md
├── app
├── .gitignore
├── build.gradle
├── demo.apk
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── saulmm
│ │ └── myapplication
│ │ ├── AvatarImageBehavior.java
│ │ └── MainActivity.java
│ └── res
│ ├── drawable-hdpi
│ ├── ic_account.png
│ ├── ic_heart_outline_white_24dp.png
│ ├── ic_menu_add.png
│ ├── ic_menu_delete.png
│ ├── ic_menu_edit_annonce.png
│ └── ic_phone.png
│ ├── drawable-mdpi
│ ├── ic_account.png
│ ├── ic_heart_outline_white_24dp.png
│ └── ic_phone.png
│ ├── drawable-nodpi
│ ├── quila.png
│ ├── quila2.png
│ └── sea.png
│ ├── drawable-xhdpi
│ ├── ic_account.png
│ ├── ic_heart_outline_white_24dp.png
│ └── ic_phone.png
│ ├── drawable-xxhdpi
│ ├── ic_account.png
│ ├── ic_heart_outline_white_24dp.png
│ └── ic_phone.png
│ ├── drawable-xxxhdpi
│ ├── ic_account.png
│ └── ic_phone.png
│ ├── layout
│ └── activity_main.xml
│ ├── menu
│ └── menu_main.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ └── values
│ └── example_resources.xml
├── art
└── hammerheadLMY48Isaulmm08162015053205.gif
├── build.gradle
├── gradle.properties
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | #Android generated
2 | bin
3 | gen
4 | lint.xml
5 | lint
6 |
7 | #Eclipse
8 | .project
9 | .classpath
10 | .settings
11 | .checkstyle
12 |
13 | #IntelliJ IDEA
14 | .idea
15 | *.iml
16 | *.ipr
17 | *.iws
18 | classes
19 | gen-external-apklibs
20 |
21 | #gradle
22 | .gradle
23 | local.properties
24 | gradlew
25 | gradlew.bat
26 | gradle/
27 | build/
28 |
29 | #vi
30 | *.swp
31 |
32 | #other editors
33 | *.bak
34 |
35 | #Maven
36 | target
37 | release.properties
38 | pom.xml.*
39 |
40 | #Ant
41 | build.xml
42 | ant.properties
43 | local.properties
44 | proguard.cfg
45 | proguard-project.txt
46 |
47 | #Other
48 | .DS_Store
49 | Thumbs.db
50 | tmp
51 | *.tgz
52 | *.lock
53 | *.lck
54 | com_crashlytics_export_strings.xml
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## CoordinatorLayout example
2 |
3 | 
4 |
5 | In this example I've tried to replicate the profile animation of `Hangouts 4.0`to show how a `CoordinatorLayout.Behavior` could be used
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 22
5 | buildToolsVersion = "22.0.1"
6 |
7 | defaultConfig {
8 | applicationId "saulmm.myapplication"
9 | minSdkVersion 21
10 | targetSdkVersion 22
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(dir: 'libs', include: ['*.jar'])
24 | compile 'com.android.support:appcompat-v7:22.2.1'
25 | compile "com.android.support:design:22.2.1"
26 | compile 'de.hdodenhof:circleimageview:1.3.0'
27 | compile 'com.android.support:cardview-v7:22.2.1'
28 | }
29 |
--------------------------------------------------------------------------------
/app/demo.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/demo.apk
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/saulmm/android-sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/java/saulmm/myapplication/AvatarImageBehavior.java:
--------------------------------------------------------------------------------
1 | package saulmm.myapplication;
2 |
3 | import android.content.Context;
4 | import android.support.design.widget.CoordinatorLayout;
5 | import android.support.v7.widget.Toolbar;
6 | import android.util.AttributeSet;
7 | import android.view.View;
8 |
9 | import de.hdodenhof.circleimageview.CircleImageView;
10 |
11 | @SuppressWarnings("unused")
12 | public class AvatarImageBehavior extends CoordinatorLayout.Behavior {
13 |
14 | private final static float MIN_AVATAR_PERCENTAGE_SIZE = 0.3f;
15 | private final static int EXTRA_FINAL_AVATAR_PADDING = 80;
16 |
17 | private final static String TAG = "behavior";
18 | private final Context mContext;
19 | private float mAvatarMaxSize;
20 |
21 | private float mFinalLeftAvatarPadding;
22 | private float mStartPosition;
23 | private int mStartXPosition;
24 | private float mStartToolbarPosition;
25 |
26 | public AvatarImageBehavior(Context context, AttributeSet attrs) {
27 | mContext = context;
28 | init();
29 |
30 | mFinalLeftAvatarPadding = context.getResources().getDimension(
31 | R.dimen.abc_action_bar_navigation_padding_start_material);
32 | }
33 |
34 | private void init() {
35 | bindDimensions();
36 | }
37 |
38 | private void bindDimensions() {
39 | mAvatarMaxSize = mContext.getResources().getDimension(R.dimen.image_width);
40 | }
41 |
42 | private int mStartYPosition;
43 |
44 | private int mFinalYPosition;
45 | private int finalHeight;
46 | private int mStartHeight;
47 | private int mFinalXPosition;
48 | @Override
49 | public boolean layoutDependsOn(CoordinatorLayout parent, CircleImageView child, View dependency) {
50 | return dependency instanceof Toolbar;
51 | }
52 |
53 | @Override
54 | public boolean onDependentViewChanged(CoordinatorLayout parent, CircleImageView child, View dependency) {
55 |
56 | // Called once
57 | if (mStartYPosition == 0)
58 | mStartYPosition = (int) (child.getY() + (child.getHeight() / 2));
59 |
60 | if (mFinalYPosition == 0)
61 | mFinalYPosition = (dependency.getHeight() /2);
62 |
63 | if (mStartHeight == 0)
64 | mStartHeight = child.getHeight();
65 |
66 | if (finalHeight == 0)
67 | finalHeight = mContext.getResources().getDimensionPixelOffset(R.dimen.image_final_width);
68 |
69 | if (mStartXPosition == 0)
70 | mStartXPosition = (int) (child.getX() + (child.getWidth() / 2));
71 |
72 | if (mFinalXPosition == 0)
73 | mFinalXPosition = mContext.getResources().getDimensionPixelOffset(R.dimen.abc_action_bar_content_inset_material) + (finalHeight / 2);
74 |
75 | if (mStartToolbarPosition == 0)
76 | mStartToolbarPosition = dependency.getY() + (dependency.getHeight()/2);
77 |
78 | final int maxScrollDistance = (int) (mStartToolbarPosition - getStatusBarHeight());
79 | float expandedPercentageFactor = dependency.getY() / maxScrollDistance;
80 |
81 | float distanceYToSubtract = ((mStartYPosition - mFinalYPosition)
82 | * (1f - expandedPercentageFactor)) + (child.getHeight()/2);
83 |
84 | float distanceXToSubtract = ((mStartXPosition - mFinalXPosition)
85 | * (1f - expandedPercentageFactor)) + (child.getWidth()/2);
86 |
87 | float heightToSubtract = ((mStartHeight - finalHeight) * (1f - expandedPercentageFactor));
88 |
89 | child.setY(mStartYPosition - distanceYToSubtract);
90 | child.setX(mStartXPosition - distanceXToSubtract);
91 |
92 | int proportionalAvatarSize = (int) (mAvatarMaxSize * (expandedPercentageFactor));
93 |
94 | CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) child.getLayoutParams();
95 | lp.width = (int) (mStartHeight - heightToSubtract);
96 | lp.height = (int) (mStartHeight - heightToSubtract);
97 | child.setLayoutParams(lp);
98 | return true;
99 | }
100 |
101 | public int getStatusBarHeight() {
102 | int result = 0;
103 | int resourceId = mContext.getResources().getIdentifier("status_bar_height", "dimen", "android");
104 |
105 | if (resourceId > 0) {
106 | result = mContext.getResources().getDimensionPixelSize(resourceId);
107 | }
108 | return result;
109 | }
110 | }
--------------------------------------------------------------------------------
/app/src/main/java/saulmm/myapplication/MainActivity.java:
--------------------------------------------------------------------------------
1 | package saulmm.myapplication;
2 |
3 | import android.os.Bundle;
4 | import android.support.design.widget.AppBarLayout;
5 | import android.support.design.widget.CollapsingToolbarLayout;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.support.v7.widget.Toolbar;
8 | import android.view.Menu;
9 | import android.view.View;
10 | import android.view.animation.AlphaAnimation;
11 | import android.widget.FrameLayout;
12 | import android.widget.ImageView;
13 | import android.widget.LinearLayout;
14 | import android.widget.TextView;
15 |
16 | public class MainActivity extends AppCompatActivity
17 | implements AppBarLayout.OnOffsetChangedListener {
18 |
19 | private static final float PERCENTAGE_TO_SHOW_TITLE_AT_TOOLBAR = 0.9f;
20 | private static final float PERCENTAGE_TO_HIDE_TITLE_DETAILS = 0.3f;
21 | private static final int ALPHA_ANIMATIONS_DURATION = 200;
22 |
23 | private boolean mIsTheTitleVisible = false;
24 | private boolean mIsTheTitleContainerVisible = true;
25 |
26 | private LinearLayout mTitleContainer;
27 | private TextView mTitle;
28 | private AppBarLayout mAppBarLayout;
29 | private ImageView mImageparallax;
30 | private FrameLayout mFrameParallax;
31 | private Toolbar mToolbar;
32 |
33 |
34 | @Override
35 | protected void onCreate(Bundle savedInstanceState) {
36 |
37 | super.onCreate(savedInstanceState);
38 | setContentView(R.layout.activity_main);
39 |
40 | bindActivity();
41 |
42 | mToolbar.setTitle("");
43 | setSupportActionBar(mToolbar);
44 | startAlphaAnimation(mTitle, 0, View.INVISIBLE);
45 | mAppBarLayout.addOnOffsetChangedListener(this);
46 | initParallaxValues();
47 | }
48 |
49 | private void bindActivity() {
50 |
51 | mToolbar = (Toolbar) findViewById(R.id.main_toolbar);
52 | mTitle = (TextView) findViewById(R.id.main_textview_title);
53 | mTitleContainer = (LinearLayout) findViewById(R.id.main_linearlayout_title);
54 | mAppBarLayout = (AppBarLayout) findViewById(R.id.main_appbar);
55 | mImageparallax = (ImageView) findViewById(R.id.main_imageview_placeholder);
56 | mFrameParallax = (FrameLayout) findViewById(R.id.main_framelayout_title);
57 |
58 | }
59 |
60 | private void initParallaxValues() {
61 |
62 | CollapsingToolbarLayout.LayoutParams petDetailsLp =
63 | (CollapsingToolbarLayout.LayoutParams) mImageparallax.getLayoutParams();
64 |
65 | CollapsingToolbarLayout.LayoutParams petBackgroundLp =
66 | (CollapsingToolbarLayout.LayoutParams) mFrameParallax.getLayoutParams();
67 |
68 | petDetailsLp.setParallaxMultiplier(0.9f);
69 | petBackgroundLp.setParallaxMultiplier(0.3f);
70 |
71 | mImageparallax.setLayoutParams(petDetailsLp);
72 | mFrameParallax.setLayoutParams(petBackgroundLp);
73 | }
74 |
75 | @Override
76 | public boolean onCreateOptionsMenu(Menu menu) {
77 |
78 | getMenuInflater().inflate(R.menu.menu_main, menu);
79 | return true;
80 | }
81 |
82 | @Override
83 | public void onOffsetChanged(AppBarLayout appBarLayout, int offset) {
84 |
85 | int maxScroll = appBarLayout.getTotalScrollRange();
86 | float percentage = (float) Math.abs(offset) / (float) maxScroll;
87 |
88 | handleAlphaOnTitle(percentage);
89 | handleToolbarTitleVisibility(percentage);
90 |
91 | }
92 |
93 | private void handleToolbarTitleVisibility(float percentage) {
94 |
95 | if (percentage >= PERCENTAGE_TO_SHOW_TITLE_AT_TOOLBAR) {
96 |
97 | if(!mIsTheTitleVisible) {
98 | startAlphaAnimation(mTitle, ALPHA_ANIMATIONS_DURATION, View.VISIBLE);
99 | mIsTheTitleVisible = true;
100 | }
101 |
102 | } else {
103 |
104 | if (mIsTheTitleVisible) {
105 | startAlphaAnimation(mTitle, ALPHA_ANIMATIONS_DURATION, View.INVISIBLE);
106 | mIsTheTitleVisible = false;
107 | }
108 | }
109 | }
110 |
111 | private void handleAlphaOnTitle(float percentage) {
112 |
113 | if (percentage >= PERCENTAGE_TO_HIDE_TITLE_DETAILS) {
114 |
115 | if(mIsTheTitleContainerVisible) {
116 | startAlphaAnimation(mTitleContainer, ALPHA_ANIMATIONS_DURATION, View.INVISIBLE);
117 | mIsTheTitleContainerVisible = false;
118 | }
119 |
120 | } else {
121 |
122 | if (!mIsTheTitleContainerVisible) {
123 | startAlphaAnimation(mTitleContainer, ALPHA_ANIMATIONS_DURATION, View.VISIBLE);
124 | mIsTheTitleContainerVisible = true;
125 | }
126 | }
127 | }
128 |
129 | public static void startAlphaAnimation (View v, long duration, int visibility) {
130 |
131 | AlphaAnimation alphaAnimation = (visibility == View.VISIBLE)
132 | ? new AlphaAnimation(0f, 1f)
133 | : new AlphaAnimation(1f, 0f);
134 |
135 | alphaAnimation.setDuration(duration);
136 | alphaAnimation.setFillAfter(true);
137 | v.startAnimation(alphaAnimation);
138 | }
139 | }
140 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-hdpi/ic_account.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_heart_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-hdpi/ic_heart_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_menu_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-hdpi/ic_menu_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_menu_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-hdpi/ic_menu_delete.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_menu_edit_annonce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-hdpi/ic_menu_edit_annonce.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-hdpi/ic_phone.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-mdpi/ic_account.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_heart_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-mdpi/ic_heart_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-mdpi/ic_phone.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-nodpi/quila.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-nodpi/quila.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-nodpi/quila2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-nodpi/quila2.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-nodpi/sea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-nodpi/sea.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xhdpi/ic_account.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_heart_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xhdpi/ic_heart_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xhdpi/ic_phone.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xxhdpi/ic_account.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_heart_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xxhdpi/ic_heart_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xxhdpi/ic_phone.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xxxhdpi/ic_account.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/drawable-xxxhdpi/ic_phone.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
16 |
17 |
23 |
24 |
30 |
31 |
40 |
41 |
50 |
51 |
58 |
59 |
68 |
69 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
92 |
99 |
100 |
107 |
108 |
109 |
110 |
111 |
112 |
121 |
122 |
127 |
128 |
132 |
133 |
143 |
144 |
145 |
146 |
147 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values/example_resources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | #785447
6 | #5B3F36
7 |
8 |
9 | 120dp
10 | 32dp
11 |
12 |
13 |
17 |
18 |
19 | Coordinator example
20 | Quila
21 | I love bones and slippers
22 | Quila!
23 |
24 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vehicula sem a malesuada rhoncus. Pellentesque ut dolor a dui porttitor porta lacinia non libero. Nunc volutpat arcu quis quam convallis molestie. Etiam ac tristique sem, id commodo justo. Phasellus congue tincidunt lectus, at dignissim ligula maximus eu. Quisque interdum nunc eget tellus bibendum suscipit. Phasellus feugiat ultricies posuere. Nullam porta accumsan velit, ut rutrum massa fermentum eu. Nunc ac bibendum nunc. Mauris eu ultricies ipsum. Ut id dolor dui. Pellentesque dictum dui vel tempus maximus. Vivamus non nisi quis libero scelerisque pretium. Ut eu tristique justo. Sed pellentesque placerat quam, ut ultricies turpis feugiat a. Aliquam a volutpat risus.
25 |
26 | Praesent at lectus semper, suscipit elit in, facilisis massa. Phasellus sed vestibulum ante, a euismod sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin tincidunt orci augue, a porta odio lacinia eu. Nunc in congue risus. Maecenas commodo nibh ac enim fermentum, eu sagittis massa blandit. Vestibulum elementum massa nec dapibus mollis. Etiam porta, est sit amet aliquet porta, odio elit finibus risus, id rutrum purus mi non ipsum. Nulla viverra nec enim sed venenatis.
27 |
28 | Maecenas mattis, erat et viverra euismod, neque diam porttitor tellus, in fringilla metus est id augue. Nunc at metus cursus, porttitor nisi vitae, congue diam. Curabitur ligula massa, ullamcorper eget scelerisque vel, pharetra ac sapien. Ut auctor luctus ultricies. Nullam semper tortor ac elementum luctus. In et tempus ex. Praesent sodales, dolor id volutpat elementum, ligula enim euismod odio, maximus sodales magna neque nec neque. Curabitur pretium nisl neque, consequat aliquet dui tincidunt ac. Vivamus augue nunc, aliquet eu ex a, ultrices aliquam lorem. Duis nibh lectus, ultricies vel iaculis sit amet, imperdiet id sapien. Duis scelerisque sodales metus eu rutrum. Suspendisse posuere nisi ac magna consequat, eu vestibulum ipsum venenatis. Suspendisse auctor nisi nec leo venenatis tristique.
29 |
30 | Praesent tincidunt lorem sit amet mi consequat cursus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent vitae blandit sapien. Curabitur est sapien, lobortis sit amet facilisis vel, faucibus eu quam. Nam tempus libero at tellus tempor laoreet. Pellentesque quam lorem, tincidunt in molestie eget, dictum vel risus. Nunc gravida convallis mattis.
31 |
32 |
33 |
--------------------------------------------------------------------------------
/art/hammerheadLMY48Isaulmm08162015053205.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HeroBarry/CoordinatorLayout/378ec3040b836c6bb3236ca4747837234049868c/art/hammerheadLMY48Isaulmm08162015053205.gif
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 |
4 | buildscript {
5 | repositories {
6 | jcenter()
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:1.2.3'
10 |
11 |
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------