diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..8d38397
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,33 @@
+language: java
+jdk: oraclejdk7
+env:
+ matrix:
+ - ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a
+
+before_install:
+ # Install base Android SDK
+ - sudo apt-get update -qq
+ - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch > /dev/null; fi
+ - wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz
+ - tar xzf android-sdk_r22.3-linux.tgz
+ - export ANDROID_HOME=$PWD/android-sdk-linux
+ - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
+
+ # Gradle
+ - wget http://services.gradle.org/distributions/gradle-1.9-bin.zip
+ - unzip gradle-1.9-bin.zip
+ - export GRADLE_HOME=$PWD/gradle-1.9
+ - export PATH=$GRADLE_HOME/bin:$PATH
+
+ # Install required components
+ # For a full list, run `android list sdk -a --extended`
+ # Note that sysimg-19 downloads only ARM, because only the first license query is accepted.
+ - echo yes | android update sdk --filter platform-tools --no-ui --force > /dev/null
+ - echo yes | android update sdk --all --filter build-tools-19.0.3 --no-ui --force > /dev/null
+ - echo yes | android update sdk --filter android-19 --no-ui --force > /dev/null
+ - echo yes | android update sdk --filter sysimg-19 --no-ui --force > /dev/null
+ - echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null
+ - echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
+
+install:
+ - ./gradlew assemble
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e8ad082
--- /dev/null
+++ b/README.md
@@ -0,0 +1,81 @@
+# Android View Animations [![Build Status](https://travis-ci.org/daimajia/AndroidAnimations)](https://travis-ci.org/daimajia/AndroidAnimations)
+
+One day, I saw [an iOS library](https://github.com/ArtFeel/AFViewShaker), which is a view shaker, it's very beautiful. I think Android also need one, and should be better.
+
+So, I started to collect animation effects... and in two days, this project born.
+
+# Demo
+
+![](http://ww3.sinaimg.cn/mw690/610dc034jw1ehnv2r93jpg20bx0kokjl.gif)
+
+# Usage
+
+## Step 1
+
+```groovy
+dependencies {
+ compile 'com.nineoldandroids:library:2.4.0'
+ compile 'com.daimajia.androidanimations:library:1.0.0@aar'
+}
+```
+or Maven
+
+```xml
+
+ com.nineoldandroids
+ library
+ 2.4.0
+
+
+ com.daimajia.androidanimation
+ library
+ 1.0.0
+ apklib
+
+```
+
+## Step2
+
+Just like play Yo-yo.
+
+```java
+YoYo.play(YoYo.Techniques.Shake,findViewById(R.id.eidtor));
+```
+
+### Effects
+#### attension
+`Flash`, `Pulse`, `RubberBand`, `Shake`, `Swing`, `Wobble`, `Bounce`, `Tada`
+
+#### Special
+`Hinge`, `RollIn`, `RollOut`
+
+#### Bounce
+`BounceIn`, `BounceInDown`, `BounceInLeft`, `BounceInRight`, `BounceInUp`
+
+#### Fade
+`FadeIn`, `FadeInDown`, `FadeInLeft`, `FadeInRight`
+`FadeOut`, `FadeOutDown`, `FadeOutLeft`, `FadeOutRight`, `FadeOutUp`
+
+#### Flip
+`FlipInX`, `FlipOutX`, `FlipOutY`
+
+#### Rotate
+`RotateIn`, `RotateInDownLeft`, `RotateInDownRight`, `RotateInUpLeft`, `RotateInUpRight`
+`RotateOut`, `RotateOutDownLeft`, `RotateOutDownRight`, `RotateOutUpLeft`, `RotateOutUpRight`
+
+#### Slide
+`SlideInLeft`, `SlideInRight`, `SlideInUp`, `SlideInDown`
+`SlideOutLeft`, `SlideOutRight`, `SlideOutUp`, `SlideOutDown`
+
+#### Zoom
+`ZoomIn`, `ZoomInDown`, `ZoomInLeft`, `ZoomInRight`, `ZoomInUp`
+`ZoomOut`, `ZoomOutDown`, `ZoomOutLeft`, `ZoomOutRight`, `ZoomOutUp`
+
+Welcome contribute your amazing animation effect. :-D
+
+#About me
+
+A student in mainland China.
+
+Welcome to [offer me an internship](mailto:daimajia@gmail.com).
+If you have any new idea about this project, feel free to [contact me](mailto:daimajia@gmail.com).
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index aadd3db..881b632 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:0.11.+'
-
+ classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/app/.gitignore b/demo/.gitignore
similarity index 100%
rename from app/.gitignore
rename to demo/.gitignore
diff --git a/app/build.gradle b/demo/build.gradle
similarity index 94%
rename from app/build.gradle
rename to demo/build.gradle
index 5f1d777..56bd973 100644
--- a/app/build.gradle
+++ b/demo/build.gradle
@@ -1,3 +1,4 @@
+apply plugin: 'android-sdk-manager'
apply plugin: 'android'
android {
diff --git a/app/proguard-rules.pro b/demo/proguard-rules.pro
similarity index 100%
rename from app/proguard-rules.pro
rename to demo/proguard-rules.pro
diff --git a/app/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml
similarity index 100%
rename from app/src/main/AndroidManifest.xml
rename to demo/src/main/AndroidManifest.xml
diff --git a/app/src/main/java/com/daimajia/androidanimations/EffectAdapter.java b/demo/src/main/java/com/daimajia/androidanimations/EffectAdapter.java
similarity index 100%
rename from app/src/main/java/com/daimajia/androidanimations/EffectAdapter.java
rename to demo/src/main/java/com/daimajia/androidanimations/EffectAdapter.java
diff --git a/app/src/main/java/com/daimajia/androidanimations/ExampleActivity.java b/demo/src/main/java/com/daimajia/androidanimations/ExampleActivity.java
similarity index 100%
rename from app/src/main/java/com/daimajia/androidanimations/ExampleActivity.java
rename to demo/src/main/java/com/daimajia/androidanimations/ExampleActivity.java
diff --git a/app/src/main/java/com/daimajia/androidanimations/MyActivity.java b/demo/src/main/java/com/daimajia/androidanimations/MyActivity.java
similarity index 100%
rename from app/src/main/java/com/daimajia/androidanimations/MyActivity.java
rename to demo/src/main/java/com/daimajia/androidanimations/MyActivity.java
diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/demo/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/ic_launcher.png
rename to demo/src/main/res/drawable-hdpi/ic_launcher.png
diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/demo/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/ic_launcher.png
rename to demo/src/main/res/drawable-mdpi/ic_launcher.png
diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/demo/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/ic_launcher.png
rename to demo/src/main/res/drawable-xhdpi/ic_launcher.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/demo/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_launcher.png
rename to demo/src/main/res/drawable-xxhdpi/ic_launcher.png
diff --git a/app/src/main/res/layout/activity_my.xml b/demo/src/main/res/layout/activity_my.xml
similarity index 100%
rename from app/src/main/res/layout/activity_my.xml
rename to demo/src/main/res/layout/activity_my.xml
diff --git a/app/src/main/res/layout/example.xml b/demo/src/main/res/layout/example.xml
similarity index 100%
rename from app/src/main/res/layout/example.xml
rename to demo/src/main/res/layout/example.xml
diff --git a/app/src/main/res/layout/item.xml b/demo/src/main/res/layout/item.xml
similarity index 100%
rename from app/src/main/res/layout/item.xml
rename to demo/src/main/res/layout/item.xml
diff --git a/app/src/main/res/menu/my.xml b/demo/src/main/res/menu/my.xml
similarity index 100%
rename from app/src/main/res/menu/my.xml
rename to demo/src/main/res/menu/my.xml
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/demo/src/main/res/values-w820dp/dimens.xml
similarity index 100%
rename from app/src/main/res/values-w820dp/dimens.xml
rename to demo/src/main/res/values-w820dp/dimens.xml
diff --git a/app/src/main/res/values/dimens.xml b/demo/src/main/res/values/dimens.xml
similarity index 100%
rename from app/src/main/res/values/dimens.xml
rename to demo/src/main/res/values/dimens.xml
diff --git a/app/src/main/res/values/strings.xml b/demo/src/main/res/values/strings.xml
similarity index 100%
rename from app/src/main/res/values/strings.xml
rename to demo/src/main/res/values/strings.xml
diff --git a/app/src/main/res/values/styles.xml b/demo/src/main/res/values/styles.xml
similarity index 100%
rename from app/src/main/res/values/styles.xml
rename to demo/src/main/res/values/styles.xml
diff --git a/gradle.properties b/gradle.properties
index 5d08ba7..ec0329e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,4 +15,20 @@
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
\ No newline at end of file
+# org.gradle.parallel=true
+
+
+VERSION_NAME=1.0.0
+VERSION_CODE=1
+GROUP=com.daimajia.androidanimations
+
+POM_DESCRIPTION=Collect android animations
+POM_URL=https://github.com/daimajia/AndroidAnimations
+POM_SCM_URL=https://github.com/daimajia/AndroidAnimations
+POM_SCM_CONNECTION=scm:https://github.com/daimajia/AndroidAnimations.git
+POM_SCM_DEV_CONNECTION=scm:https://github.com/daimajia/AndroidAnimations.git
+POM_LICENCE_NAME=MIT
+POM_LICENCE_URL=http://opensource.org/licenses/MIT
+POM_LICENCE_DIST=repo
+POM_DEVELOPER_ID=daimajia
+POM_DEVELOPER_NAME=daimajia
\ No newline at end of file
diff --git a/library/build.gradle b/library/build.gradle
index 9cd649e..85d4fb3 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -9,7 +9,7 @@ android {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
- versionName "1.0"
+ versionName "1.0.0"
}
buildTypes {
release {
@@ -24,3 +24,4 @@ dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.nineoldandroids:library:2.4.0'
}
+apply from: './gradle-mvn-push.gradle'
\ No newline at end of file
diff --git a/library/gradle-mvn-push.gradle b/library/gradle-mvn-push.gradle
new file mode 100644
index 0000000..ae4b440
--- /dev/null
+++ b/library/gradle-mvn-push.gradle
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2013 Chris Banes
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+apply plugin: 'maven'
+apply plugin: 'signing'
+
+def isReleaseBuild() {
+ return VERSION_NAME.contains("SNAPSHOT") == false
+}
+
+def getReleaseRepositoryUrl() {
+ return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
+ : "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
+}
+
+def getSnapshotRepositoryUrl() {
+ return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
+ : "https://oss.sonatype.org/content/repositories/snapshots/"
+}
+
+def getRepositoryUsername() {
+ return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
+}
+
+def getRepositoryPassword() {
+ return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
+}
+
+afterEvaluate { project ->
+ uploadArchives {
+ repositories {
+ mavenDeployer {
+ beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+
+ pom.groupId = GROUP
+ pom.artifactId = POM_ARTIFACT_ID
+ pom.version = VERSION_NAME
+
+ repository(url: getReleaseRepositoryUrl()) {
+ authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
+ }
+ snapshotRepository(url: getSnapshotRepositoryUrl()) {
+ authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
+ }
+
+ pom.project {
+ name POM_NAME
+ packaging POM_PACKAGING
+ description POM_DESCRIPTION
+ url POM_URL
+
+ scm {
+ url POM_SCM_URL
+ connection POM_SCM_CONNECTION
+ developerConnection POM_SCM_DEV_CONNECTION
+ }
+
+ licenses {
+ license {
+ name POM_LICENCE_NAME
+ url POM_LICENCE_URL
+ distribution POM_LICENCE_DIST
+ }
+ }
+
+ developers {
+ developer {
+ id POM_DEVELOPER_ID
+ name POM_DEVELOPER_NAME
+ }
+ }
+ }
+ }
+ }
+ }
+
+ signing {
+ required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
+ sign configurations.archives
+ }
+
+ task apklib(type: Zip){
+ appendix = extension = 'apklib'
+
+ from 'AndroidManifest.xml'
+ into('res') {
+ from 'res'
+ }
+ into('src') {
+ from 'src'
+ }
+ }
+
+ task androidJavadocs(type: Javadoc) {
+ source = android.sourceSets.main
+ classpath += project.files(android.getBootClasspath() .join(File.pathSeparator))
+ }
+
+ task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
+ classifier = 'javadoc'
+ from androidJavadocs.destinationDir
+ }
+
+ task androidSourcesJar(type: Jar) {
+ classifier = 'sources'
+ from android.sourceSets.main
+ }
+
+ artifacts {
+ archives androidSourcesJar
+ archives androidJavadocsJar
+ archives apklib
+ }
+}
diff --git a/library/gradle.properties b/library/gradle.properties
new file mode 100644
index 0000000..1c7fa2d
--- /dev/null
+++ b/library/gradle.properties
@@ -0,0 +1,22 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+
+POM_NAME=AndroidAnimations Library
+POM_ARTIFACT_ID=library
+POM_PACKAGING=aar
diff --git a/library/src/main/java/com/daimajia/androidanimations/library/BaseViewAnimator.java b/library/src/main/java/com/daimajia/androidanimations/library/BaseViewAnimator.java
index fd77e38..4d3f728 100644
--- a/library/src/main/java/com/daimajia/androidanimations/library/BaseViewAnimator.java
+++ b/library/src/main/java/com/daimajia/androidanimations/library/BaseViewAnimator.java
@@ -59,7 +59,7 @@ public BaseViewAnimator setDuration(long duration){
return this;
}
- public BaseViewAnimator setStartDeley(long delay){
+ public BaseViewAnimator setStartDelay(long delay){
getAnimatorAgent().setStartDelay(delay);
return this;
}
diff --git a/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java b/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java
index 2c8d4eb..870454d 100644
--- a/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java
+++ b/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java
@@ -164,11 +164,11 @@ public static void play(Techniques name, View target, Animator.AnimatorListener.
}
public static void play(Techniques name, View target,long delay,long duration){
- name.getAnimator().setDuration(duration).setStartDeley(delay).animate(target);
+ name.getAnimator().setDuration(duration).setStartDelay(delay).animate(target);
}
public static void play(Techniques name, View target,long delay,long duration,Interpolator interpolator){
- name.getAnimator().setDuration(duration).setStartDeley(delay).setInterpolator(interpolator).animate(target);
+ name.getAnimator().setDuration(duration).setStartDelay(delay).setInterpolator(interpolator).animate(target);
}
public static void play(Techniques name, View target, long delay, long duration, Interpolator interpolator, Animator.AnimatorListener ... listeners){
@@ -178,7 +178,7 @@ public static void play(Techniques name, View target, long delay, long duration,
}
animator.setDuration(duration);
animator.setInterpolator(interpolator);
- animator.setStartDeley(delay);
+ animator.setStartDelay(delay);
animator.animate(target);
}
}
diff --git a/settings.gradle b/settings.gradle
index 3306997..a2ad509 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app', ':library'
+include ':library', 'demo'