├── .gitignore ├── .idea ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── maning │ │ └── mnswipetoloaddemo │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── maning │ │ │ └── mnswipetoloaddemo │ │ │ ├── ui │ │ │ ├── BaiDuRefreshActivity.java │ │ │ ├── ElmRefreshActivity.java │ │ │ ├── JDRefreshActivity.java │ │ │ ├── MTWMRefreshActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── TianMaoRefreshActivity.java │ │ │ ├── WeatherRefreshActivity.java │ │ │ └── WeiboRefreshActivity.java │ │ │ └── view │ │ │ ├── BaiduRefreshHeaderView.java │ │ │ ├── CookRefreshHeaderView.java │ │ │ ├── JDRefreshHeaderView.java │ │ │ ├── MTWMRefreshHeaderView.java │ │ │ ├── TianMaoRefreshHeaderView.java │ │ │ ├── WeatherRefreshHeaderView.java │ │ │ └── WeiboRefreshHeaderView.java │ └── res │ │ ├── anim │ │ ├── pull_back_anim_left_cloud_linear.xml │ │ ├── pull_back_anim_left_linear.xml │ │ ├── pull_back_anim_right_cloud_linear.xml │ │ ├── pull_back_anim_right_linear.xml │ │ ├── rotate_down.xml │ │ ├── rotate_sun.xml │ │ ├── rotate_up.xml │ │ ├── translate_view.xml │ │ └── twinkle.xml │ │ ├── drawable │ │ ├── animation_list_refresh_baidu.xml │ │ ├── animation_list_refresh_jd.xml │ │ ├── animation_list_refresh_mtwm.xml │ │ ├── animation_list_refresh_tm_pull.xml │ │ ├── animation_list_refresh_tm_release.xml │ │ ├── icon_baidu_pull_back_castle.png │ │ ├── icon_baidu_pull_back_cloud.png │ │ ├── icon_baidu_pull_default_background.jpg │ │ ├── icon_baidu_pull_main_castle.png │ │ ├── icon_baidu_pull_sun.png │ │ ├── icon_cook_01.png │ │ ├── icon_cook_02.png │ │ ├── icon_cook_03.png │ │ ├── icon_cook_04.png │ │ ├── icon_cook_pan.png │ │ ├── icon_cook_pan_cover.png │ │ ├── icon_cook_water.png │ │ ├── icon_weather_sun.png │ │ ├── icon_weibo_pull_arrow_white.png │ │ ├── jd_box.png │ │ ├── jd_people_0.png │ │ ├── jd_people_1.png │ │ ├── jd_people_2.png │ │ ├── jd_people_3.png │ │ ├── jd_speed.png │ │ ├── loading_bear_1.png │ │ ├── loading_bear_2.png │ │ ├── loading_bear_3.png │ │ ├── loading_bear_4.png │ │ ├── loading_bear_5.png │ │ ├── loading_bear_6.png │ │ ├── loading_bear_7.png │ │ ├── loading_bear_8.png │ │ ├── tm_loading_pull_01.png │ │ ├── tm_loading_pull_02.png │ │ ├── tm_loading_pull_03.png │ │ ├── tm_loading_pull_04.png │ │ ├── tm_loading_pull_05.png │ │ ├── tm_loading_pull_06.png │ │ ├── tm_loading_pull_07.png │ │ ├── tm_loading_pull_08.png │ │ ├── tm_loading_pull_09.png │ │ ├── tm_loading_pull_10.png │ │ ├── tm_loading_pull_11.png │ │ ├── tm_loading_pull_12.png │ │ ├── tm_loading_pull_13.png │ │ ├── tm_loading_pull_14.png │ │ ├── tm_loading_pull_15.png │ │ ├── tm_loading_pull_16.png │ │ ├── tm_loading_pull_17.png │ │ ├── tm_loading_pull_18.png │ │ ├── tm_loading_pull_19.png │ │ ├── tm_loading_pull_20.png │ │ ├── tm_loading_pull_21.png │ │ ├── tm_loading_pull_22.png │ │ ├── tm_loading_release_01.png │ │ ├── tm_loading_release_02.png │ │ ├── tm_loading_release_03.png │ │ ├── tm_loading_release_04.png │ │ ├── tm_loading_release_05.png │ │ ├── tm_loading_release_06.png │ │ ├── tm_loading_release_07.png │ │ ├── tm_loading_release_08.png │ │ ├── tm_loading_release_09.png │ │ ├── tm_loading_release_10.png │ │ ├── tm_loading_release_11.png │ │ ├── tm_loading_release_12.png │ │ ├── tm_loading_release_13.png │ │ ├── tm_loading_release_14.png │ │ ├── tm_loading_release_15.png │ │ ├── tm_loading_release_16.png │ │ ├── wm_common_img_loading_list1.png │ │ ├── wm_common_img_loading_list10.png │ │ ├── wm_common_img_loading_list11.png │ │ ├── wm_common_img_loading_list12.png │ │ ├── wm_common_img_loading_list13.png │ │ ├── wm_common_img_loading_list14.png │ │ ├── wm_common_img_loading_list15.png │ │ ├── wm_common_img_loading_list2.png │ │ ├── wm_common_img_loading_list3.png │ │ ├── wm_common_img_loading_list4.png │ │ ├── wm_common_img_loading_list5.png │ │ ├── wm_common_img_loading_list6.png │ │ ├── wm_common_img_loading_list7.png │ │ ├── wm_common_img_loading_list8.png │ │ └── wm_common_img_loading_list9.png │ │ ├── layout │ │ ├── activity_baidu_refresh.xml │ │ ├── activity_elm_refresh.xml │ │ ├── activity_jd_refresh.xml │ │ ├── activity_main.xml │ │ ├── activity_mtwm_refresh.xml │ │ ├── activity_tianmao_refresh.xml │ │ ├── activity_weather_refresh.xml │ │ ├── activity_weibo_refresh.xml │ │ ├── layout_bd_header.xml │ │ ├── layout_cook_header.xml │ │ ├── layout_jd_header.xml │ │ ├── layout_mtwm_header.xml │ │ ├── layout_tianmao_header.xml │ │ ├── layout_weather_header.xml │ │ └── layout_weibo_header.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-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── maning │ └── mnswipetoloaddemo │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots ├── mn_swipetoload_001.png ├── mn_swipetoload_002.gif ├── mn_swipetoload_002.png ├── mn_swipetoload_003.gif ├── mn_swipetoload_003.png ├── mn_swipetoload_004.gif ├── mn_swipetoload_004.png ├── mn_swipetoload_005.gif ├── mn_swipetoload_005.png ├── mn_swipetoload_006.gif ├── mn_swipetoload_006.png ├── mn_swipetoload_007.gif ├── mn_swipetoload_007.png ├── mn_swipetoload_008.gif └── mn_swipetoload_008.png └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MNSwipeToLoadDemo 2 | 利用SwipeToLoadLayout实现的各种下拉刷新效果(饿了吗,京东,百度外卖,美团外卖,天猫下拉刷新等) 3 | 4 | ## 截图: 5 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_001.png) 6 |
7 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_002.png) 8 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_002.gif) 9 |
10 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_003.png) 11 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_003.gif) 12 |
13 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_004.png) 14 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_004.gif) 15 |
16 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_005.png) 17 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_005.gif) 18 |
19 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_006.png) 20 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_006.gif) 21 |
22 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_007.png) 23 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_007.gif) 24 |
25 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_008.png) 26 | ![](https://github.com/maning0303/MNSwipeToLoadDemo/raw/master/screenshots/mn_swipetoload_008.gif) 27 |
28 | 29 | 30 | ## 详情查看Demo 31 | ---------------------------------------------------------- 32 | 33 | ## 感谢: 34 | ### [SwipeToLoadLayout](https://github.com/Aspsine/SwipeToLoadLayout) 35 | 36 | ## 推荐: 37 | Name | Describe | 38 | --- | --- | 39 | [GankMM](https://github.com/maning0303/GankMM) | (Material Design & MVP & Retrofit + OKHttp & RecyclerView ...)Gank.io Android客户端:每天一张美女图片,一个视频短片,若干Android,iOS等程序干货,周一到周五每天更新,数据全部由 干货集中营 提供,持续更新。 | 40 | [MNUpdateAPK](https://github.com/maning0303/MNUpdateAPK) | Android APK 版本更新的下载和安装,适配7.0,简单方便。 | 41 | [MNImageBrowser](https://github.com/maning0303/MNImageBrowser) | 交互特效的图片浏览框架,微信向下滑动动态关闭 | 42 | [MNCalendar](https://github.com/maning0303/MNCalendar) | 简单的日历控件练习,水平方向日历支持手势滑动切换,跳转月份;垂直方向日历选取区间范围。 | 43 | [MClearEditText](https://github.com/maning0303/MClearEditText) | 带有删除功能的EditText | 44 | [MNCrashMonitor](https://github.com/maning0303/MNCrashMonitor) | Debug监听程序崩溃日志,展示崩溃日志列表,方便自己平时调试。 | 45 | [MNProgressHUD](https://github.com/maning0303/MNProgressHUD) | MNProgressHUD是对常用的自定义弹框封装,加载ProgressDialog,状态显示的StatusDialog和自定义Toast,支持背景颜色,圆角,边框和文字的自定义。 | 46 | [MNXUtilsDB](https://github.com/maning0303/MNXUtilsDB) | xUtils3 数据库模块单独抽取出来,方便使用。 | 47 | [MNVideoPlayer](https://github.com/maning0303/MNVideoPlayer) | SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。------代码简单,新手可以看一看。 | 48 | [MNZXingCode](https://github.com/maning0303/MNZXingCode) | 快速集成二维码扫描和生成二维码 | 49 | [MNChangeSkin](https://github.com/maning0303/MNChangeSkin) | Android夜间模式,通过Theme实现 | 50 | [SwitcherView](https://github.com/maning0303/SwitcherView) | 垂直滚动的广告栏文字展示。 | 51 | [MNPasswordEditText](https://github.com/maning0303/MNPasswordEditText) | 类似微信支付宝的密码输入框。 | 52 | [MNSwipeToLoadDemo](https://github.com/maning0303/MNSwipeToLoadDemo) | 利用SwipeToLoadLayout实现的各种下拉刷新效果(饿了吗,京东,百度外卖,美团外卖,天猫下拉刷新等)。 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion "25.0.3" 6 | defaultConfig { 7 | applicationId "com.maning.mnswipetoloaddemo" 8 | minSdkVersion 16 9 | targetSdkVersion 25 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 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 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 25 | exclude group: 'com.android.support', module: 'support-annotations' 26 | }) 27 | compile 'com.android.support:appcompat-v7:25.3.1' 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.github.Aspsine:SwipeToLoadLayout:1.0.4' 30 | } 31 | -------------------------------------------------------------------------------- /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/maning/Develop/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/androidTest/java/com/maning/mnswipetoloaddemo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.maning.mnswipetoloaddemo", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/BaiDuRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.util.Log; 6 | import android.widget.ImageView; 7 | 8 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 9 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 10 | import com.maning.mnswipetoloaddemo.R; 11 | import com.maning.mnswipetoloaddemo.view.BaiduRefreshHeaderView; 12 | 13 | /** 14 | * 百度外卖刷新界面 15 | */ 16 | public class BaiDuRefreshActivity extends AppCompatActivity implements OnRefreshListener { 17 | 18 | private static final String TAG = "BaiDuRefreshActivity"; 19 | private SwipeToLoadLayout swipeToLoadLayout; 20 | private ImageView iv_refresh_bg; 21 | private BaiduRefreshHeaderView swipe_refresh_header; 22 | 23 | @Override 24 | protected void onCreate(Bundle savedInstanceState) { 25 | super.onCreate(savedInstanceState); 26 | setContentView(R.layout.activity_baidu_refresh); 27 | 28 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 29 | iv_refresh_bg = (ImageView) findViewById(R.id.iv_refresh_bg); 30 | swipe_refresh_header = (BaiduRefreshHeaderView) findViewById(R.id.swipe_refresh_header); 31 | 32 | swipeToLoadLayout.setOnRefreshListener(this); 33 | swipeToLoadLayout.postDelayed(new Runnable() { 34 | @Override 35 | public void run() { 36 | swipeToLoadLayout.setRefreshing(true); 37 | swipeToLoadLayout.setRefreshFinalDragOffset(iv_refresh_bg.getHeight() - 100); 38 | } 39 | }, 100); 40 | 41 | swipe_refresh_header.setOnMoveListener(new BaiduRefreshHeaderView.OnMoveListener() { 42 | @Override 43 | public void onMove(int y) { 44 | int height = iv_refresh_bg.getHeight(); 45 | int move = height - y - 20; 46 | Log.i(TAG, "y:" + y + ",move:" + move); 47 | if (move < 20) { 48 | move = 20; 49 | } 50 | iv_refresh_bg.setY(-move); 51 | } 52 | }); 53 | 54 | } 55 | 56 | @Override 57 | public void onRefresh() { 58 | swipeToLoadLayout.postDelayed(new Runnable() { 59 | @Override 60 | public void run() { 61 | swipeToLoadLayout.setRefreshing(false); 62 | } 63 | }, 3000); 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/ElmRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 7 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | /** 11 | * 饿了吗刷新界面 12 | */ 13 | public class ElmRefreshActivity extends AppCompatActivity implements OnRefreshListener { 14 | 15 | private SwipeToLoadLayout swipeToLoadLayout; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_elm_refresh); 21 | 22 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 23 | 24 | swipeToLoadLayout.setOnRefreshListener(this); 25 | 26 | swipeToLoadLayout.postDelayed(new Runnable() { 27 | @Override 28 | public void run() { 29 | swipeToLoadLayout.setRefreshing(true); 30 | } 31 | }, 100); 32 | } 33 | 34 | @Override 35 | public void onRefresh() { 36 | swipeToLoadLayout.postDelayed(new Runnable() { 37 | @Override 38 | public void run() { 39 | swipeToLoadLayout.setRefreshing(false); 40 | } 41 | }, 3000); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/JDRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 7 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | /** 11 | * 京东刷新界面 12 | */ 13 | public class JDRefreshActivity extends AppCompatActivity implements OnRefreshListener { 14 | 15 | private SwipeToLoadLayout swipeToLoadLayout; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_jd_refresh); 21 | 22 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 23 | 24 | swipeToLoadLayout.setOnRefreshListener(this); 25 | 26 | swipeToLoadLayout.postDelayed(new Runnable() { 27 | @Override 28 | public void run() { 29 | swipeToLoadLayout.setRefreshing(true); 30 | } 31 | }, 100); 32 | } 33 | 34 | @Override 35 | public void onRefresh() { 36 | swipeToLoadLayout.postDelayed(new Runnable() { 37 | @Override 38 | public void run() { 39 | swipeToLoadLayout.setRefreshing(false); 40 | } 41 | }, 3000); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/MTWMRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 7 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | /** 11 | * 美团外面刷新界面 12 | */ 13 | public class MTWMRefreshActivity extends AppCompatActivity implements OnRefreshListener { 14 | 15 | private SwipeToLoadLayout swipeToLoadLayout; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_mtwm_refresh); 21 | 22 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 23 | 24 | swipeToLoadLayout.setOnRefreshListener(this); 25 | 26 | swipeToLoadLayout.postDelayed(new Runnable() { 27 | @Override 28 | public void run() { 29 | swipeToLoadLayout.setRefreshing(true); 30 | } 31 | }, 100); 32 | 33 | } 34 | 35 | @Override 36 | public void onRefresh() { 37 | swipeToLoadLayout.postDelayed(new Runnable() { 38 | @Override 39 | public void run() { 40 | swipeToLoadLayout.setRefreshing(false); 41 | } 42 | }, 3000); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.view.View; 7 | 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | public class MainActivity extends AppCompatActivity { 11 | 12 | 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | setContentView(R.layout.activity_main); 17 | } 18 | 19 | public void click01(View view) { 20 | startActivity(new Intent(this, ElmRefreshActivity.class)); 21 | } 22 | 23 | public void click02(View view) { 24 | startActivity(new Intent(this, WeatherRefreshActivity.class)); 25 | } 26 | 27 | public void click03(View view) { 28 | startActivity(new Intent(this, WeiboRefreshActivity.class)); 29 | } 30 | 31 | public void click04(View view) { 32 | startActivity(new Intent(this, JDRefreshActivity.class)); 33 | } 34 | public void click05(View view) { 35 | startActivity(new Intent(this, BaiDuRefreshActivity.class)); 36 | } 37 | public void click06(View view) { 38 | startActivity(new Intent(this, MTWMRefreshActivity.class)); 39 | } 40 | public void click07(View view) { 41 | startActivity(new Intent(this, TianMaoRefreshActivity.class)); 42 | } 43 | 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/TianMaoRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 7 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | /** 11 | * 天猫刷新界面 12 | */ 13 | public class TianMaoRefreshActivity extends AppCompatActivity implements OnRefreshListener { 14 | 15 | private SwipeToLoadLayout swipeToLoadLayout; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_tianmao_refresh); 21 | 22 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 23 | 24 | swipeToLoadLayout.setOnRefreshListener(this); 25 | 26 | swipeToLoadLayout.postDelayed(new Runnable() { 27 | @Override 28 | public void run() { 29 | swipeToLoadLayout.setRefreshing(true); 30 | } 31 | }, 100); 32 | } 33 | 34 | @Override 35 | public void onRefresh() { 36 | swipeToLoadLayout.postDelayed(new Runnable() { 37 | @Override 38 | public void run() { 39 | swipeToLoadLayout.setRefreshing(false); 40 | } 41 | }, 3000); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/WeatherRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 7 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | /** 11 | * 天气刷新界面 12 | */ 13 | public class WeatherRefreshActivity extends AppCompatActivity implements OnRefreshListener { 14 | 15 | private SwipeToLoadLayout swipeToLoadLayout; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_weather_refresh); 21 | 22 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 23 | 24 | swipeToLoadLayout.setOnRefreshListener(this); 25 | 26 | swipeToLoadLayout.postDelayed(new Runnable() { 27 | @Override 28 | public void run() { 29 | swipeToLoadLayout.setRefreshing(true); 30 | } 31 | }, 100); 32 | } 33 | 34 | @Override 35 | public void onRefresh() { 36 | swipeToLoadLayout.postDelayed(new Runnable() { 37 | @Override 38 | public void run() { 39 | swipeToLoadLayout.setRefreshing(false); 40 | } 41 | }, 3000); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/ui/WeiboRefreshActivity.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | 6 | import com.aspsine.swipetoloadlayout.OnRefreshListener; 7 | import com.aspsine.swipetoloadlayout.SwipeToLoadLayout; 8 | import com.maning.mnswipetoloaddemo.R; 9 | 10 | /** 11 | * 微博刷新界面 12 | */ 13 | public class WeiboRefreshActivity extends AppCompatActivity implements OnRefreshListener { 14 | 15 | private SwipeToLoadLayout swipeToLoadLayout; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_weibo_refresh); 21 | 22 | swipeToLoadLayout = (SwipeToLoadLayout) findViewById(R.id.swipeToLoadLayout); 23 | 24 | swipeToLoadLayout.setOnRefreshListener(this); 25 | 26 | swipeToLoadLayout.postDelayed(new Runnable() { 27 | @Override 28 | public void run() { 29 | swipeToLoadLayout.setRefreshing(true); 30 | } 31 | }, 100); 32 | 33 | } 34 | 35 | @Override 36 | public void onRefresh() { 37 | swipeToLoadLayout.postDelayed(new Runnable() { 38 | @Override 39 | public void run() { 40 | swipeToLoadLayout.setRefreshing(false); 41 | } 42 | }, 3000); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/BaiduRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.drawable.AnimationDrawable; 5 | import android.util.AttributeSet; 6 | import android.util.Log; 7 | import android.view.animation.Animation; 8 | import android.view.animation.AnimationUtils; 9 | import android.view.animation.LinearInterpolator; 10 | import android.widget.ImageView; 11 | 12 | import com.aspsine.swipetoloadlayout.SwipeRefreshHeaderLayout; 13 | import com.maning.mnswipetoloaddemo.R; 14 | 15 | 16 | /** 17 | * Created by maning on 2017/4/10. 18 | * 百度外卖刷新 19 | */ 20 | public class BaiduRefreshHeaderView extends SwipeRefreshHeaderLayout { 21 | 22 | private Animation rotateAnimation; 23 | private Animation pull_back_anim_right_cloud_linear; 24 | private Animation pull_back_anim_left_cloud_linear; 25 | private Animation pull_back_anim_left_linear; 26 | private Animation pull_back_anim_right_linear; 27 | 28 | private ImageView iv_sun; 29 | private ImageView ivRefresh; 30 | private ImageView iv_back_cloud; 31 | private ImageView iv_back_cloud2; 32 | private ImageView iv_back_castle; 33 | private ImageView iv_back_castle2; 34 | 35 | private AnimationDrawable mAnimDrawable; 36 | 37 | 38 | public BaiduRefreshHeaderView(Context context) { 39 | this(context, null); 40 | } 41 | 42 | public BaiduRefreshHeaderView(Context context, AttributeSet attrs) { 43 | this(context, attrs, 0); 44 | } 45 | 46 | public BaiduRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 47 | super(context, attrs, defStyleAttr); 48 | rotateAnimation = AnimationUtils.loadAnimation(context, R.anim.rotate_sun); 49 | LinearInterpolator lir = new LinearInterpolator(); 50 | rotateAnimation.setInterpolator(lir); 51 | 52 | pull_back_anim_left_cloud_linear = AnimationUtils.loadAnimation(context, R.anim.pull_back_anim_left_cloud_linear); 53 | pull_back_anim_right_cloud_linear = AnimationUtils.loadAnimation(context, R.anim.pull_back_anim_right_cloud_linear); 54 | pull_back_anim_left_linear = AnimationUtils.loadAnimation(context, R.anim.pull_back_anim_left_linear); 55 | pull_back_anim_right_linear = AnimationUtils.loadAnimation(context, R.anim.pull_back_anim_right_linear); 56 | 57 | } 58 | 59 | @Override 60 | protected void onFinishInflate() { 61 | super.onFinishInflate(); 62 | ivRefresh = (ImageView) findViewById(R.id.ivRefresh); 63 | iv_sun = (ImageView) findViewById(R.id.iv_sun); 64 | iv_back_cloud = (ImageView) findViewById(R.id.iv_back_cloud); 65 | iv_back_cloud2 = (ImageView) findViewById(R.id.iv_back_cloud2); 66 | iv_back_castle = (ImageView) findViewById(R.id.iv_back_castle); 67 | iv_back_castle2 = (ImageView) findViewById(R.id.iv_back_castle2); 68 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 69 | 70 | //开启动画 71 | openAnimation(); 72 | 73 | } 74 | 75 | private void openAnimation() { 76 | //开启动画 77 | if (!mAnimDrawable.isRunning()) { 78 | mAnimDrawable.start(); 79 | } 80 | 81 | iv_sun.clearAnimation(); 82 | iv_back_cloud.clearAnimation(); 83 | iv_back_cloud2.clearAnimation(); 84 | iv_back_castle.clearAnimation(); 85 | iv_back_castle2.clearAnimation(); 86 | 87 | iv_sun.startAnimation(rotateAnimation); 88 | iv_back_cloud.startAnimation(pull_back_anim_left_cloud_linear); 89 | iv_back_cloud2.startAnimation(pull_back_anim_right_cloud_linear); 90 | iv_back_castle.startAnimation(pull_back_anim_left_linear); 91 | iv_back_castle2.startAnimation(pull_back_anim_right_linear); 92 | } 93 | 94 | @Override 95 | public void onRefresh() { 96 | 97 | 98 | } 99 | 100 | @Override 101 | public void onPrepare() { 102 | Log.d("BaiduRefreshHeaderView", "onPrepare()"); 103 | //开启动画 104 | openAnimation(); 105 | 106 | } 107 | 108 | @Override 109 | public void onMove(int y, boolean isComplete, boolean automatic) { 110 | if (!isComplete) { 111 | if (onMoveListener != null) { 112 | onMoveListener.onMove(y); 113 | } 114 | } 115 | } 116 | 117 | @Override 118 | public void onRelease() { 119 | Log.d("BaiduRefreshHeaderView", "onRelease()"); 120 | } 121 | 122 | @Override 123 | public void onComplete() { 124 | 125 | } 126 | 127 | @Override 128 | public void onReset() { 129 | mAnimDrawable.stop(); 130 | iv_sun.clearAnimation(); 131 | iv_back_cloud.clearAnimation(); 132 | iv_back_cloud2.clearAnimation(); 133 | iv_back_castle.clearAnimation(); 134 | iv_back_castle2.clearAnimation(); 135 | } 136 | 137 | private OnMoveListener onMoveListener; 138 | 139 | public interface OnMoveListener { 140 | void onMove(int y); 141 | } 142 | 143 | public void setOnMoveListener(OnMoveListener onMoveListener) { 144 | this.onMoveListener = onMoveListener; 145 | } 146 | 147 | } 148 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/CookRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.animation.Keyframe; 4 | import android.animation.ObjectAnimator; 5 | import android.animation.PropertyValuesHolder; 6 | import android.content.Context; 7 | import android.os.Handler; 8 | import android.util.AttributeSet; 9 | import android.util.Log; 10 | import android.view.View; 11 | import android.widget.ImageView; 12 | import android.widget.RelativeLayout; 13 | 14 | import com.aspsine.swipetoloadlayout.SwipeRefreshHeaderLayout; 15 | import com.maning.mnswipetoloaddemo.R; 16 | 17 | import java.util.Random; 18 | 19 | /** 20 | * Created by maning on 2017/4/10. 21 | * 菜谱刷新 22 | */ 23 | 24 | public class CookRefreshHeaderView extends SwipeRefreshHeaderLayout { 25 | 26 | private int mHeaderHeight; 27 | 28 | private boolean rotated = false; 29 | 30 | private Handler mHandler = new Handler(); 31 | private ImageView ivTest; 32 | private ImageView ivTest02; 33 | private ImageView ivTest03; 34 | private ImageView ivTest04; 35 | private RelativeLayout iv_pan_cover; 36 | private ImageView iv_pan; 37 | 38 | public CookRefreshHeaderView(Context context) { 39 | this(context, null); 40 | } 41 | 42 | public CookRefreshHeaderView(Context context, AttributeSet attrs) { 43 | this(context, attrs, 0); 44 | } 45 | 46 | public CookRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 47 | super(context, attrs, defStyleAttr); 48 | mHeaderHeight = getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_cook); 49 | } 50 | 51 | @Override 52 | protected void onFinishInflate() { 53 | super.onFinishInflate(); 54 | ivTest = (ImageView) findViewById(R.id.ivTest); 55 | ivTest02 = (ImageView) findViewById(R.id.ivTest02); 56 | ivTest03 = (ImageView) findViewById(R.id.ivTest03); 57 | ivTest04 = (ImageView) findViewById(R.id.ivTest04); 58 | iv_pan_cover = (RelativeLayout) findViewById(R.id.iv_pan_cover); 59 | iv_pan = (ImageView) findViewById(R.id.iv_pan); 60 | } 61 | 62 | @Override 63 | public void onRefresh() { 64 | //正在刷新,执行动画 65 | iv_pan_cover.setVisibility(View.INVISIBLE); 66 | ivTest.setVisibility(View.VISIBLE); 67 | ivTest02.setVisibility(View.VISIBLE); 68 | ivTest03.setVisibility(View.VISIBLE); 69 | ivTest04.setVisibility(View.VISIBLE); 70 | iv_pan_cover.setAlpha(0); 71 | startAnimation(); 72 | } 73 | 74 | @Override 75 | public void onPrepare() { 76 | Log.d("CookRefreshHeaderView", "onPrepare()"); 77 | } 78 | 79 | @Override 80 | public void onMove(int y, boolean isComplete, boolean automatic) { 81 | if (!isComplete) { 82 | if (y >= mHeaderHeight) { 83 | if (!rotated) { 84 | rotated = true; 85 | } 86 | } else if (y < mHeaderHeight) { 87 | float tan = (float) (y - mHeaderHeight * 2 / 3) / (float) (iv_pan_cover.getWidth()); 88 | int angle = (int) (tan * 90); 89 | if (angle > 30) { 90 | angle = 30; 91 | } 92 | if (angle < 0) { 93 | angle = 0; 94 | } 95 | iv_pan_cover.setRotation(-angle); 96 | } 97 | } 98 | } 99 | 100 | @Override 101 | public void onRelease() { 102 | Log.d("CookRefreshHeaderView", "onRelease()"); 103 | } 104 | 105 | @Override 106 | public void onComplete() { 107 | rotated = false; 108 | mHandler.removeCallbacksAndMessages(null); 109 | iv_pan_cover.setVisibility(View.VISIBLE); 110 | ivTest.setVisibility(View.GONE); 111 | ivTest02.setVisibility(View.GONE); 112 | ivTest03.setVisibility(View.GONE); 113 | ivTest04.setVisibility(View.GONE); 114 | iv_pan_cover.setAlpha(1); 115 | iv_pan_cover.setRotation(0); 116 | float[] defaultPoint = {0, 0}; 117 | startParabolaAnimation(ivTest, defaultPoint, defaultPoint, defaultPoint); 118 | startParabolaAnimation(ivTest02, defaultPoint, defaultPoint, defaultPoint); 119 | startParabolaAnimation(ivTest03, defaultPoint, defaultPoint, defaultPoint); 120 | startParabolaAnimation(ivTest04, defaultPoint, defaultPoint, defaultPoint); 121 | } 122 | 123 | @Override 124 | public void onReset() { 125 | rotated = false; 126 | } 127 | 128 | 129 | private void startAnimation() { 130 | float x = 0; 131 | float y = 0; 132 | final float[] startPoint = {x, y}; 133 | 134 | Random random = new Random(); 135 | int nextInt = random.nextInt(50); 136 | final float[] endPoint = {nextInt + 180, nextInt + 30}; 137 | final float[] midPoint = {nextInt + 100, nextInt - 70}; 138 | 139 | nextInt = random.nextInt(40); 140 | final float[] endPoint2 = {nextInt + 160, nextInt + 40}; 141 | final float[] midPoint2 = {nextInt + 80, nextInt - 80}; 142 | 143 | nextInt = random.nextInt(30); 144 | final float[] endPoint3 = {nextInt - 200, nextInt + 40}; 145 | final float[] midPoint3 = {nextInt - 100, nextInt - 70}; 146 | 147 | nextInt = random.nextInt(60); 148 | final float[] endPoint4 = {nextInt - 170, nextInt + 45}; 149 | final float[] midPoint4 = {nextInt - 80, nextInt - 80}; 150 | 151 | mHandler.postDelayed(new Runnable() { 152 | @Override 153 | public void run() { 154 | startParabolaAnimation(ivTest, startPoint, endPoint, midPoint); 155 | } 156 | }, 100); 157 | mHandler.postDelayed(new Runnable() { 158 | @Override 159 | public void run() { 160 | startParabolaAnimation(ivTest02, startPoint, endPoint2, midPoint2); 161 | } 162 | }, 200); 163 | mHandler.postDelayed(new Runnable() { 164 | @Override 165 | public void run() { 166 | startParabolaAnimation(ivTest03, startPoint, endPoint3, midPoint3); 167 | } 168 | }, 300); 169 | mHandler.postDelayed(new Runnable() { 170 | @Override 171 | public void run() { 172 | startParabolaAnimation(ivTest04, startPoint, endPoint4, midPoint4); 173 | 174 | } 175 | }, 400); 176 | 177 | mHandler.postDelayed(new Runnable() { 178 | @Override 179 | public void run() { 180 | startAnimation(); 181 | } 182 | }, 500); 183 | } 184 | 185 | /** 186 | * 抛物线动画 187 | * 188 | * @param view 189 | * @param startPoint 起点坐标 190 | * @param endPoint 结束点坐标 191 | * @param midPoint 中间点坐标 192 | * @return 193 | */ 194 | public static ObjectAnimator startParabolaAnimation(final View view, float[] startPoint, float[] endPoint, float[] midPoint) { 195 | //分300帧完成动画 196 | int count = 200; 197 | //动画时间持续1.5秒 198 | int duration = 600; 199 | Keyframe[] keyframes = new Keyframe[count]; 200 | final float keyStep = 1f / (float) count; 201 | float key = keyStep; 202 | //计算并保存每一帧x轴的位置 203 | for (int i = 0; i < count; ++i) { 204 | keyframes[i] = Keyframe.ofFloat(key, i * getDx(startPoint, endPoint) / count + startPoint[0]); 205 | key += keyStep; 206 | } 207 | PropertyValuesHolder pvhX = PropertyValuesHolder.ofKeyframe("translationX", keyframes); 208 | key = keyStep; 209 | //计算并保存每一帧y轴的位置 210 | for (int i = 0; i < count; ++i) { 211 | keyframes[i] = Keyframe.ofFloat(key, getY(startPoint, endPoint, midPoint, i * getDx(startPoint, endPoint) / count + startPoint[0])); 212 | key += keyStep; 213 | } 214 | PropertyValuesHolder pvhY = PropertyValuesHolder.ofKeyframe("translationY", keyframes); 215 | ObjectAnimator yxBouncer = ObjectAnimator.ofPropertyValuesHolder(view, pvhY, pvhX).setDuration(duration); 216 | //开始动画 217 | yxBouncer.start(); 218 | return yxBouncer; 219 | } 220 | 221 | private static float getDx(float[] startPoint, float[] endPoint) { 222 | return endPoint[0] - startPoint[0]; 223 | } 224 | 225 | private static float getDy(float[] startPoint, float[] endPoint) { 226 | return endPoint[1] - startPoint[1]; 227 | } 228 | 229 | /** 230 | * 这里是根据三个坐标点{(0,0),(300,0),(150,300)}计算出来的抛物线方程 231 | * y = ax² + bx + c 232 | * 233 | * @param x 234 | * @return 235 | */ 236 | private static float getY(float[] startPoint, float[] endPoint, float[] midPoint, float x) { 237 | float x1 = startPoint[0]; 238 | float y1 = startPoint[1]; 239 | float x2 = endPoint[0]; 240 | float y2 = endPoint[1]; 241 | float x3 = midPoint[0]; 242 | float y3 = midPoint[1]; 243 | float a, b, c; 244 | a = (y1 * (x2 - x3) + y2 * (x3 - x1) + y3 * (x1 - x2)) 245 | / (x1 * x1 * (x2 - x3) + x2 * x2 * (x3 - x1) + x3 * x3 * (x1 - x2)); 246 | b = (y1 - y2) / (x1 - x2) - a * (x1 + x2); 247 | c = y1 - (x1 * x1) * a - x1 * b; 248 | return a * x * x + b * x + c; 249 | } 250 | 251 | 252 | } 253 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/JDRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.drawable.AnimationDrawable; 5 | import android.util.AttributeSet; 6 | import android.view.View; 7 | import android.view.animation.Animation; 8 | import android.view.animation.AnimationUtils; 9 | import android.widget.ImageView; 10 | import android.widget.LinearLayout; 11 | import android.widget.RelativeLayout; 12 | 13 | import com.aspsine.swipetoloadlayout.SwipeRefreshTrigger; 14 | import com.aspsine.swipetoloadlayout.SwipeTrigger; 15 | import com.maning.mnswipetoloaddemo.R; 16 | 17 | /** 18 | * Created by maning on 2017/4/10. 19 | * 京东下拉刷新 20 | */ 21 | public class JDRefreshHeaderView extends RelativeLayout implements SwipeTrigger, SwipeRefreshTrigger { 22 | 23 | private ImageView ivSpeed; 24 | 25 | private ImageView ivRefresh; 26 | private LinearLayout llRefresh; 27 | private ImageView ivBox; 28 | 29 | private AnimationDrawable mAnimDrawable; 30 | 31 | private Animation mTwinkleAnim; 32 | 33 | private int mHeaderHeight; 34 | 35 | 36 | public JDRefreshHeaderView(Context context) { 37 | this(context, null); 38 | } 39 | 40 | public JDRefreshHeaderView(Context context, AttributeSet attrs) { 41 | this(context, attrs, 0); 42 | } 43 | 44 | public JDRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 45 | super(context, attrs, defStyleAttr); 46 | mHeaderHeight = context.getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_80); 47 | } 48 | 49 | @Override 50 | protected void onFinishInflate() { 51 | super.onFinishInflate(); 52 | ivRefresh = (ImageView) findViewById(R.id.ivRefresh); 53 | llRefresh = (LinearLayout) findViewById(R.id.llRefresh); 54 | ivSpeed = (ImageView) findViewById(R.id.ivSpeed); 55 | ivBox = (ImageView) findViewById(R.id.ivBox); 56 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 57 | mTwinkleAnim = AnimationUtils.loadAnimation(getContext(), R.anim.twinkle); 58 | ivSpeed.setVisibility(View.GONE); 59 | } 60 | 61 | @Override 62 | public void onRefresh() { 63 | ivSpeed.setVisibility(VISIBLE); 64 | ivBox.setVisibility(GONE); 65 | ivSpeed.startAnimation(mTwinkleAnim); 66 | llRefresh.setAlpha(1.0f); 67 | ivBox.setAlpha(1.0f); 68 | if (!mAnimDrawable.isRunning()) { 69 | mAnimDrawable.start(); 70 | } 71 | } 72 | 73 | @Override 74 | public void onPrepare() { 75 | ivSpeed.clearAnimation(); 76 | ivSpeed.setVisibility(GONE); 77 | ivBox.setVisibility(VISIBLE); 78 | llRefresh.setAlpha(0.3f); 79 | ivBox.setAlpha(0.3f); 80 | } 81 | 82 | @Override 83 | public void onMove(int y, boolean isComplete, boolean automatic) { 84 | if (!isComplete) { 85 | float scale = (float) y / (float) mHeaderHeight; 86 | if (y >= mHeaderHeight) { 87 | ivRefresh.setScaleX(1); 88 | ivRefresh.setScaleY(1); 89 | llRefresh.setAlpha(1.0f); 90 | ivBox.setAlpha(1.0f); 91 | ivBox.setScaleX(1); 92 | ivBox.setScaleY(1); 93 | } else if (y > 0 && y < mHeaderHeight) { 94 | ivRefresh.setScaleX(scale); 95 | ivRefresh.setScaleY(scale); 96 | llRefresh.setAlpha(scale); 97 | ivBox.setAlpha(scale); 98 | ivBox.setScaleX(scale); 99 | ivBox.setScaleY(scale); 100 | } else { 101 | ivRefresh.setScaleX(0.4f); 102 | ivRefresh.setScaleY(0.4f); 103 | ivBox.setScaleX(0.5f); 104 | ivBox.setScaleY(0.5f); 105 | llRefresh.setAlpha(0.3f); 106 | ivBox.setAlpha(0.3f); 107 | } 108 | } 109 | } 110 | 111 | @Override 112 | public void onRelease() { 113 | mAnimDrawable.stop(); 114 | } 115 | 116 | @Override 117 | public void onComplete() { 118 | } 119 | 120 | @Override 121 | public void onReset() { 122 | mAnimDrawable.stop(); 123 | ivSpeed.clearAnimation(); 124 | ivSpeed.setVisibility(GONE); 125 | ivBox.setVisibility(VISIBLE); 126 | llRefresh.setAlpha(1.0f); 127 | ivBox.setAlpha(1.0f); 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/MTWMRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.drawable.AnimationDrawable; 5 | import android.util.AttributeSet; 6 | import android.widget.ImageView; 7 | import android.widget.LinearLayout; 8 | import android.widget.RelativeLayout; 9 | 10 | import com.aspsine.swipetoloadlayout.SwipeRefreshTrigger; 11 | import com.aspsine.swipetoloadlayout.SwipeTrigger; 12 | import com.maning.mnswipetoloaddemo.R; 13 | 14 | /** 15 | * Created by maning on 2017/4/10. 16 | * 美团外卖下拉刷新 17 | */ 18 | public class MTWMRefreshHeaderView extends RelativeLayout implements SwipeTrigger, SwipeRefreshTrigger { 19 | 20 | private ImageView ivRefresh; 21 | private LinearLayout llRefresh; 22 | 23 | private AnimationDrawable mAnimDrawable; 24 | 25 | private int mHeaderHeight; 26 | 27 | 28 | public MTWMRefreshHeaderView(Context context) { 29 | this(context, null); 30 | } 31 | 32 | public MTWMRefreshHeaderView(Context context, AttributeSet attrs) { 33 | this(context, attrs, 0); 34 | } 35 | 36 | public MTWMRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 37 | super(context, attrs, defStyleAttr); 38 | mHeaderHeight = context.getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_100); 39 | } 40 | 41 | @Override 42 | protected void onFinishInflate() { 43 | super.onFinishInflate(); 44 | ivRefresh = (ImageView) findViewById(R.id.ivRefresh); 45 | llRefresh = (LinearLayout) findViewById(R.id.llRefresh); 46 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 47 | if (!mAnimDrawable.isRunning()) { 48 | mAnimDrawable.start(); 49 | } 50 | } 51 | 52 | @Override 53 | public void onRefresh() { 54 | if (!mAnimDrawable.isRunning()) { 55 | mAnimDrawable.start(); 56 | } 57 | } 58 | 59 | @Override 60 | public void onPrepare() { 61 | llRefresh.setAlpha(0.3f); 62 | ivRefresh.setScaleX(0.4f); 63 | ivRefresh.setScaleY(0.4f); 64 | if (!mAnimDrawable.isRunning()) { 65 | mAnimDrawable.start(); 66 | } 67 | } 68 | 69 | @Override 70 | public void onMove(int y, boolean isComplete, boolean automatic) { 71 | if (!isComplete) { 72 | float scale = (float) y / (float) mHeaderHeight; 73 | if (y >= mHeaderHeight) { 74 | ivRefresh.setScaleX(1); 75 | ivRefresh.setScaleY(1); 76 | llRefresh.setAlpha(1.0f); 77 | } else if (y > 0 && y < mHeaderHeight) { 78 | ivRefresh.setScaleX(scale); 79 | ivRefresh.setScaleY(scale); 80 | llRefresh.setAlpha(scale); 81 | } else { 82 | ivRefresh.setScaleX(0.4f); 83 | ivRefresh.setScaleY(0.4f); 84 | llRefresh.setAlpha(0.3f); 85 | } 86 | } 87 | } 88 | 89 | @Override 90 | public void onRelease() { 91 | mAnimDrawable.stop(); 92 | } 93 | 94 | @Override 95 | public void onComplete() { 96 | } 97 | 98 | @Override 99 | public void onReset() { 100 | mAnimDrawable.stop(); 101 | llRefresh.setAlpha(1.0f); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/TianMaoRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.drawable.AnimationDrawable; 5 | import android.util.AttributeSet; 6 | import android.widget.ImageView; 7 | import android.widget.LinearLayout; 8 | import android.widget.RelativeLayout; 9 | import android.widget.TextView; 10 | 11 | import com.aspsine.swipetoloadlayout.SwipeRefreshTrigger; 12 | import com.aspsine.swipetoloadlayout.SwipeTrigger; 13 | import com.maning.mnswipetoloaddemo.R; 14 | 15 | /** 16 | * Created by maning on 2017/4/10. 17 | * 天猫下拉刷新 18 | */ 19 | public class TianMaoRefreshHeaderView extends RelativeLayout implements SwipeTrigger, SwipeRefreshTrigger { 20 | 21 | private static final String TAG = "TianMaoRefreshHeaderView"; 22 | 23 | private ImageView ivRefresh; 24 | private LinearLayout llRefresh; 25 | private TextView tvRefresh; 26 | 27 | private AnimationDrawable mAnimDrawable; 28 | 29 | private int mHeaderHeight; 30 | 31 | 32 | public TianMaoRefreshHeaderView(Context context) { 33 | this(context, null); 34 | } 35 | 36 | public TianMaoRefreshHeaderView(Context context, AttributeSet attrs) { 37 | this(context, attrs, 0); 38 | } 39 | 40 | public TianMaoRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 41 | super(context, attrs, defStyleAttr); 42 | mHeaderHeight = context.getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_100); 43 | } 44 | 45 | @Override 46 | protected void onFinishInflate() { 47 | super.onFinishInflate(); 48 | ivRefresh = (ImageView) findViewById(R.id.ivRefresh); 49 | llRefresh = (LinearLayout) findViewById(R.id.llRefresh); 50 | tvRefresh = (TextView) findViewById(R.id.tvRefresh); 51 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 52 | if (!mAnimDrawable.isRunning()) { 53 | mAnimDrawable.start(); 54 | } 55 | } 56 | 57 | @Override 58 | public void onRefresh() { 59 | tvRefresh.setText("正在刷新..."); 60 | ivRefresh.setBackgroundResource(R.drawable.animation_list_refresh_tm_release); 61 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 62 | if (!mAnimDrawable.isRunning()) { 63 | mAnimDrawable.start(); 64 | } 65 | } 66 | 67 | @Override 68 | public void onPrepare() { 69 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 70 | if (!mAnimDrawable.isRunning()) { 71 | mAnimDrawable.start(); 72 | } 73 | } 74 | 75 | @Override 76 | public void onMove(int y, boolean isComplete, boolean automatic) { 77 | if (!isComplete) { 78 | if (y > mHeaderHeight) { 79 | tvRefresh.setText("释放刷新"); 80 | } else if (y < mHeaderHeight) { 81 | tvRefresh.setText("下拉刷新"); 82 | } 83 | } 84 | } 85 | 86 | @Override 87 | public void onRelease() { 88 | 89 | } 90 | 91 | @Override 92 | public void onComplete() { 93 | mAnimDrawable.stop(); 94 | ivRefresh.setBackgroundResource(R.drawable.animation_list_refresh_tm_pull); 95 | tvRefresh.setText("刷新完成"); 96 | } 97 | 98 | @Override 99 | public void onReset() { 100 | mAnimDrawable.stop(); 101 | ivRefresh.setBackgroundResource(R.drawable.animation_list_refresh_tm_pull); 102 | mAnimDrawable = (AnimationDrawable) ivRefresh.getBackground(); 103 | tvRefresh.setText("下拉刷新"); 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/WeatherRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.util.Log; 6 | import android.view.animation.Animation; 7 | import android.view.animation.AnimationUtils; 8 | import android.view.animation.LinearInterpolator; 9 | import android.widget.RelativeLayout; 10 | import android.widget.TextView; 11 | 12 | import com.aspsine.swipetoloadlayout.SwipeRefreshHeaderLayout; 13 | import com.maning.mnswipetoloaddemo.R; 14 | 15 | /** 16 | * Created by maning on 2017/4/10. 17 | * 天气下拉刷新 18 | */ 19 | public class WeatherRefreshHeaderView extends SwipeRefreshHeaderLayout { 20 | 21 | private int mHeaderHeight; 22 | 23 | private Animation rotateAnimation; 24 | 25 | private boolean rotated = false; 26 | 27 | private RelativeLayout iv_sun; 28 | private TextView tvRefresh; 29 | 30 | 31 | public WeatherRefreshHeaderView(Context context) { 32 | this(context, null); 33 | } 34 | 35 | public WeatherRefreshHeaderView(Context context, AttributeSet attrs) { 36 | this(context, attrs, 0); 37 | } 38 | 39 | public WeatherRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 40 | super(context, attrs, defStyleAttr); 41 | mHeaderHeight = getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_80); 42 | rotateAnimation = AnimationUtils.loadAnimation(context, R.anim.rotate_sun); 43 | LinearInterpolator lir = new LinearInterpolator(); 44 | rotateAnimation.setInterpolator(lir); 45 | } 46 | 47 | @Override 48 | protected void onFinishInflate() { 49 | super.onFinishInflate(); 50 | tvRefresh = (TextView) findViewById(R.id.tvRefresh); 51 | iv_sun = (RelativeLayout) findViewById(R.id.iv_sun); 52 | } 53 | 54 | @Override 55 | public void onRefresh() { 56 | iv_sun.clearAnimation(); 57 | iv_sun.startAnimation(rotateAnimation); 58 | tvRefresh.setText("正在刷新..."); 59 | } 60 | 61 | @Override 62 | public void onPrepare() { 63 | Log.d("WeatherRefreshHeader", "onPrepare()"); 64 | } 65 | 66 | @Override 67 | public void onMove(int y, boolean isComplete, boolean automatic) { 68 | if (!isComplete) { 69 | if (y > mHeaderHeight) { 70 | tvRefresh.setText("释放刷新"); 71 | if (!rotated) { 72 | iv_sun.clearAnimation(); 73 | iv_sun.startAnimation(rotateAnimation); 74 | rotated = true; 75 | } 76 | } else if (y < mHeaderHeight) { 77 | if (rotated) { 78 | rotated = false; 79 | } 80 | tvRefresh.setText("下拉刷新"); 81 | } 82 | } 83 | } 84 | 85 | @Override 86 | public void onRelease() { 87 | Log.d("WeatherRefreshHeader", "onRelease()"); 88 | } 89 | 90 | @Override 91 | public void onComplete() { 92 | rotated = false; 93 | tvRefresh.setText("刷新完成"); 94 | iv_sun.clearAnimation(); 95 | } 96 | 97 | @Override 98 | public void onReset() { 99 | rotated = false; 100 | tvRefresh.setText("下拉刷新"); 101 | } 102 | 103 | } 104 | -------------------------------------------------------------------------------- /app/src/main/java/com/maning/mnswipetoloaddemo/view/WeiboRefreshHeaderView.java: -------------------------------------------------------------------------------- 1 | package com.maning.mnswipetoloaddemo.view; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.util.Log; 6 | import android.view.animation.Animation; 7 | import android.view.animation.AnimationUtils; 8 | import android.widget.ImageView; 9 | import android.widget.ProgressBar; 10 | import android.widget.TextView; 11 | 12 | import com.aspsine.swipetoloadlayout.SwipeRefreshHeaderLayout; 13 | import com.maning.mnswipetoloaddemo.R; 14 | 15 | /** 16 | * Created by maning on 2017/4/10. 17 | * 微博下拉刷新 18 | */ 19 | public class WeiboRefreshHeaderView extends SwipeRefreshHeaderLayout { 20 | 21 | private ImageView ivArrow; 22 | 23 | private TextView tvRefresh; 24 | 25 | private ProgressBar progressBar; 26 | 27 | private int mHeaderHeight; 28 | 29 | private Animation rotateUp; 30 | 31 | private Animation rotateDown; 32 | 33 | private boolean rotated = false; 34 | 35 | public WeiboRefreshHeaderView(Context context) { 36 | this(context, null); 37 | } 38 | 39 | public WeiboRefreshHeaderView(Context context, AttributeSet attrs) { 40 | this(context, attrs, 0); 41 | } 42 | 43 | public WeiboRefreshHeaderView(Context context, AttributeSet attrs, int defStyleAttr) { 44 | super(context, attrs, defStyleAttr); 45 | mHeaderHeight = getResources().getDimensionPixelOffset(R.dimen.refresh_header_height_60); 46 | rotateUp = AnimationUtils.loadAnimation(context, R.anim.rotate_up); 47 | rotateDown = AnimationUtils.loadAnimation(context, R.anim.rotate_down); 48 | } 49 | 50 | @Override 51 | protected void onFinishInflate() { 52 | super.onFinishInflate(); 53 | 54 | tvRefresh = (TextView) findViewById(R.id.tvRefresh); 55 | ivArrow = (ImageView) findViewById(R.id.ivArrow); 56 | progressBar = (ProgressBar) findViewById(R.id.progressbar); 57 | } 58 | 59 | @Override 60 | public void onRefresh() { 61 | ivArrow.clearAnimation(); 62 | ivArrow.setVisibility(GONE); 63 | progressBar.setVisibility(VISIBLE); 64 | tvRefresh.setText("正在刷新..."); 65 | } 66 | 67 | @Override 68 | public void onPrepare() { 69 | Log.d("WeiboRefreshHeaderView", "onPrepare()"); 70 | } 71 | 72 | @Override 73 | public void onMove(int y, boolean isComplete, boolean automatic) { 74 | if (!isComplete) { 75 | ivArrow.setVisibility(VISIBLE); 76 | progressBar.setVisibility(GONE); 77 | if (y > mHeaderHeight) { 78 | tvRefresh.setText("释放刷新"); 79 | if (!rotated) { 80 | ivArrow.clearAnimation(); 81 | ivArrow.startAnimation(rotateUp); 82 | rotated = true; 83 | } 84 | } else if (y < mHeaderHeight) { 85 | if (rotated) { 86 | ivArrow.clearAnimation(); 87 | ivArrow.startAnimation(rotateDown); 88 | rotated = false; 89 | } 90 | tvRefresh.setText("下拉刷新"); 91 | } 92 | } 93 | } 94 | 95 | @Override 96 | public void onRelease() { 97 | Log.d("WeiboRefreshHeaderView", "onRelease()"); 98 | } 99 | 100 | @Override 101 | public void onComplete() { 102 | rotated = false; 103 | ivArrow.clearAnimation(); 104 | ivArrow.setVisibility(GONE); 105 | progressBar.setVisibility(GONE); 106 | tvRefresh.setText("刷新完成"); 107 | } 108 | 109 | @Override 110 | public void onReset() { 111 | rotated = false; 112 | ivArrow.clearAnimation(); 113 | ivArrow.setVisibility(GONE); 114 | progressBar.setVisibility(GONE); 115 | tvRefresh.setText("下拉刷新"); 116 | } 117 | 118 | } 119 | -------------------------------------------------------------------------------- /app/src/main/res/anim/pull_back_anim_left_cloud_linear.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/pull_back_anim_left_linear.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/pull_back_anim_right_cloud_linear.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/pull_back_anim_right_linear.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_sun.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotate_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/translate_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/twinkle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animation_list_refresh_baidu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | 16 | 19 | 22 | 25 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animation_list_refresh_jd.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animation_list_refresh_mtwm.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | 16 | 19 | 22 | 25 | 28 | 31 | 34 | 37 | 40 | 43 | 46 | 49 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animation_list_refresh_tm_pull.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | 16 | 19 | 22 | 25 | 28 | 31 | 34 | 37 | 40 | 43 | 46 | 49 | 52 | 55 | 58 | 61 | 64 | 67 | 70 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/animation_list_refresh_tm_release.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | 16 | 19 | 22 | 25 | 28 | 29 | 32 | 35 | 38 | 41 | 42 | 45 | 46 | 49 | 50 | 53 | 54 | 57 | 58 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_baidu_pull_back_castle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_baidu_pull_back_castle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_baidu_pull_back_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_baidu_pull_back_cloud.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_baidu_pull_default_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_baidu_pull_default_background.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_baidu_pull_main_castle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_baidu_pull_main_castle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_baidu_pull_sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_baidu_pull_sun.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_pan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_pan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_pan_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_pan_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_cook_water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_cook_water.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_weather_sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_weather_sun.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_weibo_pull_arrow_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/icon_weibo_pull_arrow_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jd_box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/jd_box.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jd_people_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/jd_people_0.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jd_people_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/jd_people_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jd_people_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/jd_people_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jd_people_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/jd_people_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/jd_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/jd_speed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_bear_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/loading_bear_8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_05.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_06.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_07.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_08.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_14.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_15.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_16.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_17.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_18.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_19.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_20.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_21.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_pull_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_pull_22.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_02.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_03.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_04.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_05.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_06.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_07.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_08.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_09.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_14.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_15.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/tm_loading_release_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/tm_loading_release_16.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list14.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list15.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/wm_common_img_loading_list9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maning0303/MNSwipeToLoadDemo/06693330a3e7d6406beb82c50b78309ee82f8cc5/app/src/main/res/drawable/wm_common_img_loading_list9.png -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_baidu_refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 17 | 18 | 19 | 24 | 25 | 28 | 29 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_elm_refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 18 | 19 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_jd_refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 18 | 19 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 |