package com.stay.pull.lib.internal; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Interpolator; import android.view.animation.LinearInterpolator; import android.view.animation.RotateAnimation; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.stay.pull.R; import com.stay.pull.lib.PullToRefreshBase; public class LoadingLayout extends FrameLayout { static final int DEFAULT_ROTATION_ANIMATION_DURATION = 150; private final ImageView headerImage; private final ProgressBar headerProgress; private final TextView headerText; private String pullLabel; private String refreshingLabel; private String releaseLabel; private final Animation rotateAnimation, resetRotateAnimation; public LoadingLayout(Context context, final int mode, String releaseLabel, String pullLabel, String refreshingLabel) { super(context); ViewGroup header = (ViewGroup) LayoutInflater.from(context).inflate(R.layout.pull_to_refresh_header, this); headerText = (TextView) header.findViewById(R.id.pull_to_refresh_text); headerImage = (ImageView) header.findViewById(R.id.pull_to_refresh_image); headerProgress = (ProgressBar) header.findViewById(R.id.pull_to_refresh_progress); final Interpolator interpolator = new LinearInterpolator(); rotateAnimation = new RotateAnimation(0, -180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation.setInterpolator(interpolator); rotateAnimation.setDuration(DEFAULT_ROTATION_ANIMATION_DURATION); rotateAnimation.setFillAfter(true); resetRotateAnimation = new RotateAnimation(-180, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); resetRotateAnimation.setInterpolator(interpolator); resetRotateAnimation.setDuration(DEFAULT_ROTATION_ANIMATION_DURATION); resetRotateAnimation.setFillAfter(true); this.releaseLabel = releaseLabel; this.pullLabel = pullLabel; this.refreshingLabel = refreshingLabel; switch (mode) { case PullToRefreshBase.MODE_PULL_UP_TO_REFRESH: headerImage.setImageResource(R.drawable.pulltorefresh_up_arrow); break; case PullToRefreshBase.MODE_PULL_DOWN_TO_REFRESH: default: headerImage.setImageResource(R.drawable.pulltorefresh_down_arrow); break; } } public void reset() { headerText.setText(pullLabel); headerImage.setVisibility(View.VISIBLE); headerProgress.setVisibility(View.GONE); } public void releaseToRefresh() { headerText.setText(releaseLabel); headerImage.clearAnimation(); headerImage.startAnimation(rotateAnimation); } public void setPullLabel(String pullLabel) { this.pullLabel = pullLabel; } public void refreshing() { headerText.setText(refreshingLabel); headerImage.clearAnimation(); headerImage.setVisibility(View.INVISIBLE); headerProgress.setVisibility(View.VISIBLE); } public void setRefreshingLabel(String refreshingLabel) { this.refreshingLabel = refreshingLabel; } public void setReleaseLabel(String releaseLabel) { this.releaseLabel = releaseLabel; } public void pullToRefresh() { headerText.setText(pullLabel); headerImage.clearAnimation(); headerImage.startAnimation(resetRotateAnimation); } public void setTextColor(int color) { headerText.setTextColor(color); } }
最近下载更多
rockit LV1
2021年10月13日
1234mama LV19
2020年5月17日
1684302694 LV1
2020年2月7日
女方面 LV18
2019年11月5日
小肥羊 LV16
2019年7月24日
刘银莲莲莲 LV2
2019年5月20日
s1499371754 LV3
2019年5月15日
wangshihua LV19
2019年5月7日
cyanno LV1
2018年6月4日
bduntliuhui2008 LV7
2017年11月28日
最近浏览更多
萌了个乖乖 LV12
2022年5月20日
rockit LV1
2021年10月13日
1670153475 LV4
2021年3月11日
a566566 LV9
2020年12月29日
一定要好好学习啊
2020年6月15日
暂无贡献等级
subject LV6
2020年6月10日
aaa5849310 LV25
2020年5月25日
1234mama LV19
2020年5月17日
tsslb1
2020年5月11日
暂无贡献等级
yangjiayangjia LV3
2020年4月27日