android仿微信下拉二楼_打造Android微信朋友圈下拉刷新控件

微信朋友圈我们都经常用,朋友圈的下拉刷新比较有意思,我们今天将要模仿打造微信朋友圈的下拉刷新控件,当然微信的这种刷新设计可能不是最好的,实际项目中你可以用V4包里面的SwipeRefreshView或者Chris Banes的AndroidPullRerfresh,看产品经理的设计。

思路

我们初步分析下,界面上主要有二个控件,一个彩虹状的圆形LoadingView,一个是ListView,那么我大致可以有下面三个步骤:

第一步:需要自定义一个ViewGroup,把上面的2个控件add进来。

第二步:利用ViewDragHelper处理控件拖动。当ListView处于顶部时,如果继续向下拖动,就拦截触摸事件,将触摸事件传递给ViewDragHelper处理,这里比较关键,主要是是否拦截触摸事件的判断条件要处理好,否则如果ListView的点击和滚动事件被我们拦截了,那就悲剧了。

第三步:在ViewDragHelper的拖动回调方法里面,设置listView和彩虹LoadingView的位置,调用requestLayout。

第四步:手势松开后,开始刷新,LoadingView在固定位置做旋转动画。

第五步:如果设置了onRefreshListener,执行onRefresh接口。

第六步:调用stopRefresh,完成刷新,这一步需要控件使用者手动去调用,控件本身不自动触发。

代码实现

public class FriendRefreshView extends ViewGroup{

//圆形指示器

private ImageView mRainbowView;

private ListView mContentView;

//控件宽,高

private int sWidth;

private int sHeight;

private ViewDragHelper mDragHelper;

//contentView的当前top属性

private int currentTop;

//listView首个item

private int firstItem;

private boolean bScrollDown = false;

private boolean bDraging = false;

//圆形加载指示器最大top

private int rainbowMaxTop = 80;

//圆形加载指示器刷新时的top

private int rainbowStickyTop = 80;

//圆形加载指示器初始top

private int rainbowStartTop = -120;

//圆形加载指示器的半径

private int rainbowRadius = 100;

private int rainbowTop = - 120;

//圆形加载指示器旋转的角度

private int rainbowRotateAngle = 0;

private boolean bViewHelperSettling = false;

//刷新接口listener

private OnRefreshListener mRefreshLisenter;

private AbsListView.OnScrollListener onScrollListener;

private com.sw.library.widget.friendrefreshview.OnDetectScrollListener onDetectScrollListener;

public enum State {

NORMAL,

REFRESHING,

DRAGING

}

//控件当前状态

private State mState = State.NORMAL;

public FriendRefreshView(Context context) {

this(context, null);

}

public FriendRefreshView(Context context, AttributeSet attrs) {

this(context, attrs, 0);

}

public FriendRefreshView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

initHandler();

initDragHelper();

initListView();

initRainbowView();

setBackgroundColor(Color.parseC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Android仿微信朋友圈图片查看功能,可以按照以下步骤进行: 1. 首先,需要使用一个RecyclerView来展示朋友圈的列表,每个朋友圈项包含了图片的缩略图、文字内容和评论等信息。 2. 当用户点击某个朋友圈项时,需要跳转到一个新的Activity或者Fragment来显示该朋友圈的详细内容。 3. 在新的界面中,可以使用ViewPager来展示朋友圈中的图片。ViewPager的每一页对应一张图片,并实现左右滑动切换图片的功能。 4. 对于图片的加载,可以使用一个图片加载库如Glide或Picasso来加载图片,避免OOM(Out of Memory)的问题。 5. 为了更好的用户体验,可以在ViewPager上添加一个类似于微信的图片预览效果,即当用户点击某张图片时,可以全屏显示,并支持缩放、双击放大、手势滑动等功能。 6. 为了保证性能和流畅度,可以使用一些优化技巧,如图片的压缩、缓存、异步加载等。 7. 如果需要支持多张图片的查看,可以使用PhotoView或类似的第三方库来实现,它可以显示多张图片,并支持手势操作。 8. 最后,为了提高用户体验,可以加入一些其他功能,如显示图片的点赞数和评论数、支持多种分享方式、图片保存等。 通过以上步骤的实现,就可以实现Android仿微信朋友圈图片查看的功能了。这样用户就可以在朋友圈列表中预览图片,点击后再进行详细查看和操作,提高了用户的交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值