- 浏览: 2195920 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
参考自 http://blog.csdn.net/wwj_748/article/details/42523611
首先,下载著名的刷新框架https://github.com/chrisbanes/Android-PullToRefresh,其中simple为demo,library和extras作为项目包导入到simple中
一,定义刷新动画的layout
在library下的com.handmark.pulltorefresh.library.internal包中的FlipLoadingLayout和RotateLoadingLayout
FlipLoadingLayout为ios风格的箭头颠倒的刷新动画
RotateLoadingLayout为android风格的图片旋转动画
共同的设置方法是
1,getDefaultDrawableResId()
动画默认图片,可以替换为自己的图片
2,refreshingImpl()
正在刷新时的回调方法,可以设置开始动画
3,resetImpl()
重置
二,正在刷新时为图片居中旋转的效果
1,首先修改library中的pull_to_refresh_header_vertical.xml,去除文字的layout,图片layout水平居中
2,去除LoadingLayout中的关于textview的代码
3,可以在RotateLoadingLayout中的getDefaultDrawableResId()方法替换成自己的图片
三,设置自定义动画效果
1,首先设置一个简单的小人走的动画效果,在anim文件夹下新建一个xml,需要加载两张图片,控制图片的停留时间
2,新建刷新动画的layout,TweenAnimLoadingLayout,类似于之前的源码中的FlipLoadingLayout和RotateLoadingLayout
主要设置初始化,和那几个关键方法就行
3,替换之前的刷新layout为TweenAnimLoadingLayout
找到library项目com.handmark.pulltorefresh.library包下的PullToRefreshListView,发现头脚的layout用的都是LoadingLayout,找到头脚layout的创建方法createLoadingLayout进入,在createLoadingLayout方法中再进入createLoadingLayout,找到最原始的新建动画layout的地方,把默认的RotateLoadingLayout改成TweenAnimLoadingLayout就行了
在PullToRefreshBase类下,变为
4,去除LoadingLayout中的关于textview的代码
下载地址:http://download.csdn.net/detail/waterseason/8678681
首先,下载著名的刷新框架https://github.com/chrisbanes/Android-PullToRefresh,其中simple为demo,library和extras作为项目包导入到simple中
一,定义刷新动画的layout
在library下的com.handmark.pulltorefresh.library.internal包中的FlipLoadingLayout和RotateLoadingLayout
FlipLoadingLayout为ios风格的箭头颠倒的刷新动画
RotateLoadingLayout为android风格的图片旋转动画
共同的设置方法是
1,getDefaultDrawableResId()
动画默认图片,可以替换为自己的图片
2,refreshingImpl()
正在刷新时的回调方法,可以设置开始动画
3,resetImpl()
重置
二,正在刷新时为图片居中旋转的效果
1,首先修改library中的pull_to_refresh_header_vertical.xml,去除文字的layout,图片layout水平居中
<?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android" > <FrameLayout android:id="@+id/fl_inner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/header_footer_top_bottom_padding" android:paddingLeft="@dimen/header_footer_left_right_padding" android:paddingRight="@dimen/header_footer_left_right_padding" android:paddingTop="@dimen/header_footer_top_bottom_padding" > <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" > <ImageView android:id="@+id/pull_to_refresh_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <ProgressBar android:id="@+id/pull_to_refresh_progress" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:indeterminate="true" android:visibility="gone" /> </FrameLayout> <!-- <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center_horizontal" android:orientation="vertical" > <TextView android:id="@+id/pull_to_refresh_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="?android:attr/textAppearance" android:textStyle="bold" /> <TextView android:id="@+id/pull_to_refresh_sub_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:visibility="gone" /> </LinearLayout> --> </FrameLayout> </merge>
2,去除LoadingLayout中的关于textview的代码
3,可以在RotateLoadingLayout中的getDefaultDrawableResId()方法替换成自己的图片
三,设置自定义动画效果
1,首先设置一个简单的小人走的动画效果,在anim文件夹下新建一个xml,需要加载两张图片,控制图片的停留时间
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/app_loading0" android:duration="150"/> <item android:drawable="@drawable/app_loading1" android:duration="150"/> </animation-list>
2,新建刷新动画的layout,TweenAnimLoadingLayout,类似于之前的源码中的FlipLoadingLayout和RotateLoadingLayout
主要设置初始化,和那几个关键方法就行
package com.handmark.pulltorefresh.library.internal; import com.handmark.pulltorefresh.library.R; import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode; import com.handmark.pulltorefresh.library.PullToRefreshBase.Orientation; import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.view.View; /** * @date 2015/1/8 * @author wuwenjie * @desc 帧动画加载布局 */ public class TweenAnimLoadingLayout extends LoadingLayout { private AnimationDrawable animationDrawable; public TweenAnimLoadingLayout(Context context, Mode mode, Orientation scrollDirection, TypedArray attrs) { super(context, mode, scrollDirection, attrs); // 初始化 mHeaderImage.setImageResource(R.anim.loading); animationDrawable = (AnimationDrawable) mHeaderImage.getDrawable(); } // 默认图片 @Override protected int getDefaultDrawableResId() { return R.drawable.app_loading0; } @Override protected void onLoadingDrawableSet(Drawable imageDrawable) { // NO-OP } @Override protected void onPullImpl(float scaleOfLayout) { // NO-OP } // 下拉以刷新 @Override protected void pullToRefreshImpl() { // NO-OP } // 正在刷新时回调 @Override protected void refreshingImpl() { // 播放帧动画 animationDrawable.start(); } // 释放以刷新 @Override protected void releaseToRefreshImpl() { // NO-OP } // 重新设置 @Override protected void resetImpl() { mHeaderImage.setVisibility(View.VISIBLE); mHeaderImage.clearAnimation(); } }
3,替换之前的刷新layout为TweenAnimLoadingLayout
找到library项目com.handmark.pulltorefresh.library包下的PullToRefreshListView,发现头脚的layout用的都是LoadingLayout,找到头脚layout的创建方法createLoadingLayout进入,在createLoadingLayout方法中再进入createLoadingLayout,找到最原始的新建动画layout的地方,把默认的RotateLoadingLayout改成TweenAnimLoadingLayout就行了
在PullToRefreshBase类下,变为
//在最原始的地方把新建动画layout换成TweenAnimLoadingLayout LoadingLayout createLoadingLayout(Context context, Mode mode, Orientation scrollDirection, TypedArray attrs) { switch (this) { case ROTATE: default: // return new RotateLoadingLayout(context, mode, scrollDirection, attrs); return new TweenAnimLoadingLayout(context, mode, scrollDirection, attrs); case FLIP: return new FlipLoadingLayout(context, mode, scrollDirection, attrs); } }
4,去除LoadingLayout中的关于textview的代码
下载地址:http://download.csdn.net/detail/waterseason/8678681
- 自定义动画刷新.rar (2.6 MB)
- 下载次数: 31
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 626本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1099颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 991从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1166Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1003Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 838前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 925监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 799在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 948最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1327##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1113当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 774setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1506问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 766底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1781点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1370import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2313TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1542一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 864Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 931最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
本篇文章将深入探讨如何实现一个自定义的下拉刷新动画,特别是在动画设计上,我们将以“小人跑”的动画效果为例。 首先,我们需要理解`PullToRefresh`的基本原理。它主要通过监听ScrollView、ListView或...
本项目“ios-自定义下拉刷新动画.zip”聚焦于如何使用Swift语言实现一个自定义的下拉刷新动画效果。在iOS中,我们通常会使用UIRefreshControl作为标准的下拉刷新组件,但为了提供更丰富的用户体验和个性化的设计,...
自定义下拉刷新控件可以让你根据项目需求定制刷新动画和视觉效果,提升用户体验。下面我们将深入探讨如何在iOS中实现自定义下拉刷新控件。 一、下拉刷新基础 1. UIRefreshControl:苹果提供的系统下拉刷新控件,...
本篇主要介绍如何在Android中实现一个自定义的下拉刷新功能,并结合帧动画效果,提升用户体验。 一、下拉刷新原理 下拉刷新的基本原理是监听ListView的滚动事件,当用户上滑到列表顶部并继续下拉时,如果满足一定的...
本教程将详细讲解如何在Android中实现自定义的下拉刷新和上拉加载功能。 首先,我们要了解这两个概念的核心思想。下拉刷新(Pull-to-Refresh)是指用户在滚动列表到顶部时,继续向下拖动以触发数据的更新。上拉加载...
虽然SwipeRefreshLayout提供了默认的刷新动画,但有时我们可能需要自定义更符合产品风格的动画效果。为此,你可以创建一个自定义的刷新视图,继承SwipeRefreshLayout的子类并覆盖onRefresh()方法。在这个方法中,...
自定义Viewgroup允许开发者根据需求定制刷新动画和交互逻辑,以达到更个性化的效果。 1. **自定义Viewgroup基础** - 创建一个新的Java类,继承自`FrameLayout`。`FrameLayout`是一个简单的布局容器,它可以包含多...
为了提升用户体验,许多App在用户执行下拉操作时会触发一种特殊的效果,即下拉刷新动画。这种动画通常显示一些动态元素,如加载指示器或者趣味性的图形变化,以告知用户数据正在更新。本示例“表视图下拉刷新动画...
一旦检测到足够的下拉距离,就可以启动自定义的刷新动画。 3. **刷新状态的控制** 当刷新动画开始时,应更新刷新视图的状态,比如改变图片、文字或者进度条的显示。同时,需要设置一个标志位来跟踪当前是否处于...
在移动应用开发中,用户体验是至关重要的,而上拉刷新和下拉刷新功能则是现代App交互设计中的常见元素。...通过研究和实践,开发者可以灵活地定制适合自己应用的刷新动画,增强用户在使用过程中的乐趣。
总的来说,实现百度外卖式的自定义下拉刷新动画涉及到对Android动画系统的深入理解,包括Tween动画、帧动画和属性动画的使用。通过巧妙地组合和配置这些动画,可以创造出丰富多样的下拉刷新效果,提升应用的视觉吸引...
本教程将详细介绍如何在iOS项目中实现自定义的下拉刷新和上拉加载,使得开发者可以根据具体需求进行定制。 首先,下拉刷新(Pull-to-Refresh)是指当用户在列表顶部向下拉动时,会显示一个刷新指示器,松手后自动...
该工具类封装了一个自定义的带下拉刷新的listview,可直接导入Module工程,然后依赖到当前项目即可使用, https://blog.csdn.net/weixin_41771564/article/details/81082512这里有详细的使用
虽然SwipeRefreshLayout提供了一种简单的方法来实现下拉刷新,但有时我们需要自定义刷新动画或行为,这就需要我们自己实现。自定义下拉刷新通常涉及以下几个步骤: - 创建一个包含刷新动画的布局。 - 实现手势检测,...
在Android开发中,自定义控件常常用于提供更丰富的...这个实例代码提供了一个基础的下拉刷新实现,但实际应用中可能需要根据具体需求进行调整,例如集成网络请求库、处理数据加载失败的情况,或者适配不同的刷新动画。
使用UIScrollViewDelegate协议的`scrollViewDidScroll:`方法可以获取到滚动位置的变化,当用户下拉到特定位置时,启动刷新动画。 3. **动画实现**:自定义下拉刷新的关键在于动画设计。你可以使用Core Animation、...
在startRefreshing()方法中,你需要模拟下拉刷新动画,并执行数据刷新的逻辑。同时,别忘了在刷新完成后调用stopRefreshing()来恢复原状。 3. 自定义头部布局 为了实现自定义的刷新头部,你可能需要创建一个自定义...
1. 在`wxml`文件中,创建一个用于显示下拉刷新动画的容器,如`<view class="refresh-container"></view>`。 2. 在`wxss`中,为这个容器编写动画,例如旋转、缩放等效果。 3. 在`js`文件中,监听`onPullDownRefresh`...
Android自定义下拉刷新,上拉加载更多,支持侧滑删除功能,
1. 自定义的下拉刷新视图:用于处理刷新手势和显示刷新动画。 2. 上拉加载更多视图:用于在用户滚动到底部时加载更多数据,并显示加载状态。 3. RecyclerView适配器:处理数据绑定和视图复用。 4. 数据加载逻辑:...