├── README.md ├── SpringingLayoutImage.gif ├── SpringingLayoutSample ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── app │ ├── .gitignore │ ├── build.gradle │ ├── libs │ │ └── SpringingLayout.jar │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── dym │ │ │ └── unique │ │ │ └── com │ │ │ └── springinglayoutsample │ │ │ └── ApplicationTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── dym │ │ │ │ └── unique │ │ │ │ └── com │ │ │ │ └── springinglayoutsample │ │ │ │ ├── ListActivity.java │ │ │ │ └── RegisterActivity.java │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── default_avatar_man.png │ │ │ └── icon_back.png │ │ │ ├── drawable-xhdpi │ │ │ ├── default_avatar_man.png │ │ │ └── icon_back.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── default_avatar_man.png │ │ │ └── icon_back.png │ │ │ ├── drawable │ │ │ ├── drawable_login_background.xml │ │ │ └── drawable_regist_background.xml │ │ │ ├── layout │ │ │ ├── activity_list.xml │ │ │ └── activity_register.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── dym │ │ └── unique │ │ └── com │ │ └── springinglayoutsample │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle └── jar └── SpringingLayout.jar /README.md: -------------------------------------------------------------------------------- 1 | # SpringingLayout 2 | Android交互动画库 3 | 4 | 一直以来我都对Android界面效果和交互动画特别的着迷,而且每次做工程都需要重写一大堆的组件,动画,感觉颇为繁杂,于是趁着有空闲做了一套交互动画的库,现在只是第一版,支持的交互动画不是特别的多,后续会不断的进行增加和修改Bug,所以先不开源了(jar包引入工程后可以看到代码),只提供示例程序和jar包给大家试用下~ 5 | 6 | ![image](https://github.com/dayiming/SpringingLayout/blob/master/SpringingLayoutImage.gif) 7 | 8 | ####主要支持功能: 9 | 10 | 1. 组件的上下左右方向的随手指的弹动 11 | 2. 组件的点击弹动效果 12 | 3. 组件的跳动警告 13 | 4. 组件的旋转警告 14 | 5. 组件指定方向的点击弹出,松手回弹 15 | 6. 5.0水波效果 16 | 7. 透明度变化的显示组件和隐藏组件 17 | 8. 位移变化的显示组件和隐藏组件 18 | 19 | ####主要支持的控件: 20 | 21 | 1. Button 22 | 2. EditText 23 | 3. ImageView 24 | 4. ListView 25 | 5. TextView 26 | 6. FrameLayout 27 | 7. HorizontalScrollView 28 | 8. ScrollView 29 | 9. LinearLayout 30 | 10. RelativeLayout 31 | 32 | 支持4.0以上Android系统(夭寿啊~还需要兼容4.0以下啊)这些功能都可以被随意的组合和添加到我重写的控件上面,如果觉的控件和动画不够使用,可以仿照我的代码重写其他组件和动画,十分的方便,如果发现任何Bug和不足请大家给我评论,我会持续不断的更新和加强这个控件的。 33 | -------------------------------------------------------------------------------- /SpringingLayoutImage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutImage.gif -------------------------------------------------------------------------------- /SpringingLayoutSample/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/.name: -------------------------------------------------------------------------------- 1 | SpringingLayoutSample -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 51 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /SpringingLayoutSample/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | applicationId "dym.unique.com.springinglayoutsample" 9 | minSdkVersion 14 10 | targetSdkVersion 23 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(include: ['*.jar'], dir: 'libs') 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:23.1.1' 26 | compile 'com.android.support:design:23.1.1' 27 | compile files('libs/SpringingLayout.jar') 28 | } 29 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/libs/SpringingLayout.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/libs/SpringingLayout.jar -------------------------------------------------------------------------------- /SpringingLayoutSample/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 D:\Eclipse\adt-bundle-windows-x86_64-20140702\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 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/androidTest/java/dym/unique/com/springinglayoutsample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package dym.unique.com.springinglayoutsample; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/java/dym/unique/com/springinglayoutsample/ListActivity.java: -------------------------------------------------------------------------------- 1 | package dym.unique.com.springinglayoutsample; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.view.View; 6 | import android.widget.AdapterView; 7 | import android.widget.ArrayAdapter; 8 | import android.widget.Toast; 9 | 10 | import dym.unique.com.springinglayoutlibrary.view.SpringingListView; 11 | 12 | public class ListActivity extends AppCompatActivity { 13 | 14 | private SpringingListView slv_list = null; 15 | private ArrayAdapter adapter = null; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_list); 21 | 22 | slv_list = (SpringingListView) findViewById(R.id.slv_list); 23 | slv_list.setOnSpringingListViewItemClickListener(new SpringingListView.OnSpringingListViewItemClickListener() { 24 | @Override 25 | public void OnSpringingListViewItemClicked(AdapterView parent, View view, int position, long id) { 26 | Toast.makeText(ListActivity.this, position + "", Toast.LENGTH_SHORT).show(); 27 | } 28 | }); 29 | adapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1); 30 | slv_list.setAdapter(adapter); 31 | 32 | for (int i = 0; i < 12; i ++) { 33 | adapter.add(String.valueOf(i)); 34 | } 35 | adapter.notifyDataSetInvalidated(); 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/java/dym/unique/com/springinglayoutsample/RegisterActivity.java: -------------------------------------------------------------------------------- 1 | package dym.unique.com.springinglayoutsample; 2 | 3 | import android.app.Activity; 4 | import android.app.ListActivity; 5 | import android.content.Intent; 6 | import android.os.Bundle; 7 | import android.util.TypedValue; 8 | import android.view.View; 9 | import android.view.animation.OvershootInterpolator; 10 | import android.widget.Toast; 11 | 12 | import dym.unique.com.springinglayoutlibrary.handler.SpringTouchRippleHandler; 13 | import dym.unique.com.springinglayoutlibrary.handler.SpringingAlphaHideHandler; 14 | import dym.unique.com.springinglayoutlibrary.handler.SpringingAlphaShowHandler; 15 | import dym.unique.com.springinglayoutlibrary.handler.SpringingNotificationJumpHandler; 16 | import dym.unique.com.springinglayoutlibrary.handler.SpringingNotificationRotateHandler; 17 | import dym.unique.com.springinglayoutlibrary.handler.SpringingTouchDragHandler; 18 | import dym.unique.com.springinglayoutlibrary.handler.SpringingTouchPointHandler; 19 | import dym.unique.com.springinglayoutlibrary.handler.SpringingTouchScaleHandler; 20 | import dym.unique.com.springinglayoutlibrary.handler.SpringingTranslationHideHandler; 21 | import dym.unique.com.springinglayoutlibrary.handler.SpringingTranslationShowHandler; 22 | import dym.unique.com.springinglayoutlibrary.view.SpringingEditText; 23 | import dym.unique.com.springinglayoutlibrary.view.SpringingImageView; 24 | import dym.unique.com.springinglayoutlibrary.view.SpringingTextView; 25 | import dym.unique.com.springinglayoutlibrary.viewgroup.SpringingLinearLayout; 26 | import dym.unique.com.springinglayoutlibrary.viewgroup.SpringingRelativeLayout; 27 | 28 | 29 | public class RegisterActivity extends Activity implements View.OnClickListener { 30 | 31 | private SpringingRelativeLayout srl_actionBar = null; 32 | private SpringingImageView simg_back = null; 33 | private SpringingLinearLayout sll_mainContainer = null; 34 | private SpringingImageView simg_avatarMan = null; 35 | private SpringingEditText sedt_account = null; 36 | private SpringingEditText sedt_password = null; 37 | private SpringingTextView stv_regist = null; 38 | private SpringingTextView stv_login = null; 39 | 40 | private boolean isContentShow = true; 41 | 42 | @Override 43 | protected void onCreate(Bundle savedInstanceState) { 44 | super.onCreate(savedInstanceState); 45 | setContentView(R.layout.activity_register); 46 | 47 | findView(); 48 | initSpringLayout(); 49 | initEvent(); 50 | showViews(); 51 | } 52 | 53 | private void findView() { 54 | srl_actionBar = (SpringingRelativeLayout) findViewById(R.id.srl_actionBar); 55 | simg_back = (SpringingImageView) findViewById(R.id.simg_back); 56 | sll_mainContainer = (SpringingLinearLayout) findViewById(R.id.sll_mainContainer); 57 | simg_avatarMan = ((SpringingImageView) findViewById(R.id.simg_avatarMan)).setIsCircleImage(true); 58 | sedt_account = (SpringingEditText) findViewById(R.id.sedt_account); 59 | sedt_password = (SpringingEditText) findViewById(R.id.sedt_password); 60 | stv_regist = (SpringingTextView) findViewById(R.id.stv_regist); 61 | stv_login = (SpringingTextView) findViewById(R.id.stv_login); 62 | } 63 | 64 | private void initSpringLayout() { 65 | srl_actionBar.getSpringingHandlerController().addSpringingHandler(new SpringTouchRippleHandler(this, srl_actionBar).setOnlyOnChildren(true, simg_back)); 66 | simg_back.getSpringingHandlerController().addSpringingHandler(new SpringingTouchPointHandler(this, simg_back).setAngle(SpringingTouchPointHandler.ANGLE_LEFT)); 67 | sll_mainContainer.getSpringingHandlerController().addSpringingHandler(new SpringingTouchDragHandler(this, sll_mainContainer).setBackInterpolator(new OvershootInterpolator()).setBackDuration(SpringingTouchDragHandler.DURATION_LONG).setDirection(SpringingTouchDragHandler.DIRECTOR_BOTTOM | SpringingTouchDragHandler.DIRECTOR_TOP).setMinDistance(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, getResources().getDisplayMetrics()))); 68 | sll_mainContainer.getSpringingHandlerController().addSpringingHandler(new SpringTouchRippleHandler(this, sll_mainContainer).setOnlyOnChildren(true, sedt_account, sedt_password)); 69 | simg_avatarMan.getSpringingHandlerController().addSpringingHandler(new SpringingTouchScaleHandler(this, simg_avatarMan)); 70 | stv_regist.getSpringingHandlerController().addSpringingHandler(new SpringTouchRippleHandler(this, stv_regist)); 71 | stv_login.getSpringingHandlerController().addSpringingHandler(new SpringTouchRippleHandler(this, stv_login)); 72 | } 73 | 74 | private void initEvent() { 75 | stv_regist.setOnClickListener(this); 76 | stv_login.setOnClickListener(this); 77 | simg_avatarMan.setOnClickListener(this); 78 | simg_back.setOnClickListener(this); 79 | } 80 | 81 | private void showViews() { 82 | new SpringingAlphaShowHandler(this, sll_mainContainer).showChildrenSequence(500, 100); 83 | new SpringingTranslationShowHandler(this, sll_mainContainer).showChildrenSequence(500, 100); 84 | } 85 | 86 | @Override 87 | public void onClick(View v) { 88 | switch (v.getId()) { 89 | case R.id.stv_regist: { 90 | if (sedt_account.getText().toString().equals("")) { 91 | new SpringingNotificationJumpHandler(this, sedt_account).start(1); 92 | return; 93 | } 94 | if (sedt_password.getText().toString().equals("")) { 95 | new SpringingNotificationJumpHandler(this, sedt_password).start(1); 96 | return; 97 | } 98 | new SpringingNotificationRotateHandler(this, simg_avatarMan).start(1); 99 | } 100 | break; 101 | case R.id.stv_login: { 102 | startActivity(new Intent(this, ListActivity.class)); 103 | } 104 | break; 105 | case R.id.simg_avatarMan: { 106 | Toast.makeText(this, "设置头像", Toast.LENGTH_SHORT).show(); 107 | } 108 | break; 109 | case R.id.simg_back: { 110 | if (isContentShow) { 111 | new SpringingAlphaHideHandler(this, sll_mainContainer).hideChildrenSequence(View.INVISIBLE, 100); 112 | new SpringingTranslationHideHandler(this, sll_mainContainer).hideChildrenSequence(View.INVISIBLE, 100); 113 | } else { 114 | new SpringingAlphaShowHandler(this, sll_mainContainer).showChildrenSequence(100); 115 | new SpringingTranslationShowHandler(this, sll_mainContainer).showChildrenSequence(100); 116 | } 117 | isContentShow = !isContentShow; 118 | } 119 | break; 120 | } 121 | } 122 | } 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable-hdpi/default_avatar_man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/drawable-hdpi/default_avatar_man.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable-hdpi/icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/drawable-hdpi/icon_back.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable-xhdpi/default_avatar_man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/drawable-xhdpi/default_avatar_man.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable-xhdpi/icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/drawable-xhdpi/icon_back.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable-xxhdpi/default_avatar_man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/drawable-xxhdpi/default_avatar_man.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable-xxhdpi/icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/drawable-xxhdpi/icon_back.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable/drawable_login_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/drawable/drawable_regist_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/layout/activity_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 37 | 38 | 39 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/layout/activity_register.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 22 | 30 | 31 | 32 | 37 | 45 | 53 | 61 | 71 | 72 | 73 | 80 | 88 | 98 | 99 | 100 | 112 | 113 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daiyiming-hh/SpringingLayout/c4c94cff76a9485858957fac5122c93cf70e3874/SpringingLayoutSample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | > 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | SpringingLayout 3 | 账号 4 | 请输入账号 5 | 密码 6 | 请输入密码 7 | 注册 8 | 登录 9 | TestActivity 10 | 11 | -------------------------------------------------------------------------------- /SpringingLayoutSample/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |