android的阻尼效果

本文介绍了如何在Android开发中创建一个阻尼效果,特别是针对ListView的头布局。当用户下拉时,背景图片会放大,松手后则缩小,提供了一种动态的交互体验。通过自定义ListView并添加头部视图,配合触摸事件监听来实现这一效果。文章还提供了实现该效果的代码示例和源码下载链接。
摘要由CSDN通过智能技术生成

        很多时候我们在开发的过程中,需要做一些特殊的效果,今天就为大家介绍一下如何做一个阻尼的效果,所谓的阻尼效果就是头布局的背景图片在下拉的时候放大,在释放手指的时候缩小,从而产生放大缩小的效果。实现的方案就是继承ListView,并添加头布局,在触摸监听事件里面去实现该效果。下面就开始演示实现效果的效果图,以及代码的实现方式。
效果图

PullZoomListView.java

public class PullZoomListView extends ListView {
   
    private LinearLayout mHeadView;//要实现阻尼效果的HeadView
    private int mHeadViewHeight;//默认状态下要实现阻尼效果的HeadView的高度
    private LayoutParams mParams;
    private int mMaxHeight = 200;//自定义下拉增加的最大高度
    private int mDownY = -1; // 按下的y轴的值, 默认为: -1
    private int mDiffY = -1;//纪录最终下拉的高度,默认为: -1

    public PullZoomListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initHeadView();

    }

    public PullZoomListView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initHeadView();

    }

    public PullZoomListView(Context context) {
        super(context);
        initHeadView();

    }

    //给ListView的HeadView添加要实现阻尼效果的View
    private void initHeadView() {
        mHeadView = (LinearLayout) View.inflate(getContext(), R.layout.head_view, null);
        mHeadView.measure(0, 0);// 手动测量宽高
        mHeadViewHeight = mHeadView.getMeasuredHeight();
        this.addHeaderView(mHeadView);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值