android 图片进度条-LMLPHP

png图片

代码

ImageView loading=getActivity().findViewById(R.id.pro_loading);

        LinearInterpolator lin = new LinearInterpolator();
am = new RotateAnimation ( 0, +360,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f );
am. setDuration ( 1000 );//旋转一个周期的时长
am. setRepeatCount ( -1 );// 动画重复次数(-1 表示一直重复)
am.setRepeatCount(Animation.INFINITE);
am.setInterpolator(lin);
loading.setAnimation(am);
am.startNow();

因为有好多fragment要用到,所以封装了一下

终极类:

public class ProgressImageView extends ImageView {
private Animation am; public ProgressImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
} public ProgressImageView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
} public ProgressImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
} public void init(){
LinearInterpolator lin = new LinearInterpolator();
am = new RotateAnimation ( 0, +360,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f );
am. setDuration ( 1000 );//旋转一个周期的时长
am. setRepeatCount ( -1 );// 动画重复次数(-1 表示一直重复)
am.setRepeatCount(Animation.INFINITE);
am.setInterpolator(lin);
} /**
* 显示
*/
public void show(){
setVisibility(View.VISIBLE);
this.setAnimation(am);
am.startNow();
} /**
*隐藏
*/
public void hide(){
this.clearAnimation();
setVisibility(View.INVISIBLE);
} }
        <com.lz.swc.view.ProgressImageView
android:id="@+id/pro_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loading"
android:layout_centerInParent="true"
android:contentDescription="@string/tabspic"
android:visibility="invisible"
/>

在xml中引用就可以了。调用 show hide方法即可

05-11 10:54
查看更多