当前位置: 首页 > news >正文

团购网站建站广州中国建设银行网站首页

团购网站建站,广州中国建设银行网站首页,厦门企业网站建设公司,张雪峰谈建筑学前景2019独角兽企业重金招聘Python工程师标准 AutoHomeRefreshListView仿汽车之家下拉刷新 AutoHomeRefreshListView 高仿汽车之家下拉刷新 #xff0c;下拉的时候出现很不错的效果。本项目来自#xff1a;https://github.com/nugongshou110/AutoHomeRefreshListVi… 2019独角兽企业重金招聘Python工程师标准 AutoHomeRefreshListView仿汽车之家下拉刷新 AutoHomeRefreshListView 高仿汽车之家下拉刷新 下拉的时候出现很不错的效果。本项目来自https://github.com/nugongshou110/AutoHomeRefreshListView首先是自定义AutoHomeListView继承ListView实现的重要代码如下 public class AutoHomeListView extends ListView implements AbsListView.OnScrollListener{    private static final int DONE 0;    private static final int PULL_TO_REFRESH 1;    private static final int RELEASE_TO_REFRESH 2;    private static final int REFRESHING 3;    private static final int RATIO 4;    private LinearLayout headerView;    private AutoHome mAutoHome;    private int headerViewHeight;    private float startY;    private float currentProgress;    private int currentHeight;    private float offsetY;    private TextView tv_pull_to_refresh;    private OnAutoHomeRefreshListener mOnRefreshListener;    private int state;    private int mFirstVisibleItem;    private boolean isRecord;    private boolean isEnd;    private boolean isRefreable;    private FrameLayout mAnimContainer;    private PointerView mAutoHomeAnim;    private Animation animation;     public AutoHomeListView(Context context) {        super(context);        init(context);    }     public AutoHomeListView(Context context, AttributeSet attrs) {        super(context, attrs);        init(context);    }     public AutoHomeListView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        init(context);    }     public interface OnAutoHomeRefreshListener{        void onRefresh();    }    public void setOnAutoHomeRefreshListener(OnAutoHomeRefreshListener onRefreshListener){        mOnRefreshListener onRefreshListener;        isRefreable true;    }    public void setOnRefreshComplete(){        isEnd true;        state DONE;        changeHeaderByState(state);    }     private void init(Context context) {        setOverScrollMode(View.OVER_SCROLL_NEVER);        setOnScrollListener(this);                headerView (LinearLayout) LayoutInflater.from(context).inflate(R.layout.autohome_item, null, false);        mAutoHome (AutoHome) headerView.findViewById(R.id.auto_home);        tv_pull_to_refresh (TextView) headerView.findViewById(R.id.tv_pull_to_refresh);        mAnimContainer (FrameLayout) headerView.findViewById(R.id.anim_container);        mAutoHomeAnim (PointerView) headerView.findViewById(R.id.anim_pointer);                animation AnimationUtils.loadAnimation(context, R.anim.pointer_rotate);                measureView(headerView);        addHeaderView(headerView);        headerViewHeight headerView.getMeasuredHeight();        headerView.setPadding(0, -headerViewHeight, 0, 0);         state DONE;        isEnd true;        isRefreable false;    }       Override    public void onScrollStateChanged(AbsListView absListView, int i) {    }    Override    public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {        mFirstVisibleItem firstVisibleItem;    }     Override    public boolean onTouchEvent(MotionEvent ev) {        if (isEnd) {            if (isRefreable) {                switch (ev.getAction()){                case MotionEvent.ACTION_DOWN:                    if (mFirstVisibleItem 0 !isRecord) {                        isRecord true;                        startY ev.getY();                    }                    break;                case MotionEvent.ACTION_MOVE:                    float tempY ev.getY();                    if (mFirstVisibleItem 0 !isRecord) {                        isRecord true;                        startY tempY;                    }                    if (state!REFRESHING isRecord ) {                        offsetY tempY - startY;                        float currentHeight (-headerViewHeightoffsetY/3);                        float currentProgress 1currentHeight/headerViewHeight;                        if (currentProgress1) {                            currentProgress 1;                        }                        if (state RELEASE_TO_REFRESH isRecord) {                            setSelection(0);                            if (-headerViewHeightoffsetY/30) {                                state PULL_TO_REFRESH;                                changeHeaderByState(state);                            }else if (offsetY0) {                                state DONE;                                changeHeaderByState(state);                            }                        }                        if (state PULL_TO_REFRESH isRecord) {                            setSelection(0);                            if (-headerViewHeightoffsetY/30) {                                state RELEASE_TO_REFRESH;                                changeHeaderByState(state);                            }else if (offsetY0) {                                state DONE;                                changeHeaderByState(state);                            }                        }                        if (state DONE isRecord) {                            if (offsetY0) {                                state PULL_TO_REFRESH;                            }                        }                        if (state PULL_TO_REFRESH) {                            Log.i(zhangqi, (int)(-headerViewHeightoffsetY/3));                            headerView.setPadding(0,(int)(-headerViewHeightoffsetY/3) ,0,0);                            mAutoHome.setCurrentProgress(currentProgress);                            mAutoHome.postInvalidate();                        }                        if (state RELEASE_TO_REFRESH) {                            headerView.setPadding(0,(int)(-headerViewHeightoffsetY/3) ,0, 0);                            mAutoHome.setCurrentProgress(currentProgress);                            mAutoHome.postInvalidate();                        }                    }                                                        break;                case MotionEvent.ACTION_UP:                    if (state PULL_TO_REFRESH) {                        this.smoothScrollBy((int)(-headerViewHeightoffsetY/3)headerViewHeight, 500);                        changeHeaderByState(state);                    }                    if (state RELEASE_TO_REFRESH) {                        this.smoothScrollBy((int)(-headerViewHeightoffsetY/3), 500);                        state REFRESHING;                        mOnRefreshListener.onRefresh();                        changeHeaderByState(state);                    }                    isRecord false;                    break;                }                            }        }        return super.onTouchEvent(ev);    }        private void changeHeaderByState(int state){        switch (state) {        case DONE:            headerView.setPadding(0, -headerViewHeight, 0, 0);            mAutoHome.setVisibility(View.VISIBLE);            mAutoHomeAnim.clearAnimation();            mAnimContainer.setVisibility(View.GONE);            break;        case RELEASE_TO_REFRESH:            tv_pull_to_refresh.setText(放开刷新);                    break;        case PULL_TO_REFRESH:            tv_pull_to_refresh.setText(下拉刷新);            state DONE;            mAutoHome.setVisibility(View.VISIBLE);            mAutoHomeAnim.clearAnimation();            mAnimContainer.setVisibility(View.GONE);            break;        case REFRESHING:            tv_pull_to_refresh.setText(正在刷新);            mAutoHome.setVisibility(View.GONE);            mAnimContainer.setVisibility(View.VISIBLE);            mAutoHomeAnim.clearAnimation();            mAutoHomeAnim.startAnimation(animation);            break;        default:            break;        }    }            private void measureView(View child) {        ViewGroup.LayoutParams p child.getLayoutParams();        if (p null) {            p new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,                    ViewGroup.LayoutParams.WRAP_CONTENT);        }        int childWidthSpec ViewGroup.getChildMeasureSpec(0, 0 0, p.width);        int lpHeight p.height;        int childHeightSpec;        if (lpHeight 0) {            childHeightSpec MeasureSpec.makeMeasureSpec(lpHeight,                    MeasureSpec.EXACTLY);        } else {            childHeightSpec MeasureSpec.makeMeasureSpec(0,                    MeasureSpec.UNSPECIFIED);        }        child.measure(childWidthSpec, childHeightSpec);    } } //如何调用        mAdapter new ArrayAdapterString(this,android.R.layout.simple_list_item_1,mDatas);        mListView (AutoHomeListView) findViewById(R.id.listview);        mListView.setAdapter(mAdapter);        mListView.setOnAutoHomeRefreshListener(this);   运行效果 相关代码 AutoHomeRefreshListView仿汽车之家下拉刷新 PercentageBar自定义动态柱形图 Hide-Music-Player 一个完整的音乐播放器FoldableLayout展开效果ProgressRoundButton下载进度按钮变化动画android 过渡动画研究android资讯类软件框架QuickSand图片点击后分裂成几份消失效果MaterialPowerMenu 点击按钮切换页面加载呈现效果PlayNewsStandDemo资讯类新闻客户端框架 转载于:https://my.oschina.net/u/2461971/blog/524883
http://www.huolong8.cn/news/72075/

相关文章:

  • 传统网站设计的缺点wordpress怎么实现社交
  • 网站备案号规则怎么做关于梦想的网站免费的
  • 做网站流量钱谁给专门做团购的网站
  • 网站建设详细流程请人做网站 我需要知道哪几点
  • 如何设置一个网站wordpress 数据库插件
  • 有机生态农业网站模板做情侣网站
  • 服务类网站建设湖州设计公司
  • php学校网站模板wordpress和论坛整合
  • 沧州网站建设网海申莱芜新闻联播
  • 沭阳哪里可以做网站深圳网络推广网站
  • 深色调网站快速建站介绍
  • 做网站设计需要多少钱做seo排名好的公司
  • 摄影网站采用照片做宣传_版权费是多少?百度关键字怎么搜到公司网站
  • 网站系统接口500异常网站建设 新要求
  • 佛山网站定制简易手工制作
  • 手机版官方网站的建设做外贸的国际网站有哪些
  • 服务器做视频网站吗怎样做网站外部样式
  • 西安网站制作工商网站建设先进个人自荐
  • 旅游网站开发文档WordPress分享到笔记
  • 网站建设方案的摘要怎么写vi设计的简介
  • 做购物网站写数据库的流程品牌推广全案
  • 崇左市住房和城乡建设局网站网站二级页面怎么做
  • 如何在一个空间做2个网站上海网站设计公司电话
  • 电子业网站建设网站开发的策划书
  • 做外贸 访问国外网站毕业设计网页设计论文
  • 网站建设通讯设备中企动力logo标志设计图片
  • 邯郸推广网站建设哪个好软件产品如何做网站推广
  • 政务网站建设方案泉州做网站优化价格
  • 微信分销网站开发中国专业室内设计公司排名
  • 大型做网站东莞市小程序定制开发丨网站建设