0
点赞
收藏
分享

微信扫一扫

progressbar自定义帧动画

天行五煞 2022-11-04 阅读 29


前言

动画相对于普通的业务代码对性能的要求更高。项目中使用动画,app的交互的效果更加吸引用户

1.自定义帧动画。贴上代码

findViewById(R.id.animq).setOnClickListener(this);


弹出dialog设置
private void progressbar(Context context,int layout) {
mDialog = new AlertDialog.Builder(progressbar.this).create();
//mDialog.setOnKeyListener(keyListener);
mDialog.show();
// 注意此处要放在show之后 否则会报异常
mDialog.setContentView(layout);

}

执行动作–联网操作

@Override
public void onClick(View arg0) {
progressbar(this,R.layout.loading_process_dialog_anim);
new Thread(new Runnable() {

@Override
public void run() {

SystemClock.sleep(2000);

mDialog.dismiss();

跳转动作---
}
}).start();

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >

<ProgressBar
android:id="@+id/loading_process_dialog_progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="false"
android:indeterminateDrawable="@anim/loading" />

<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/loading" />


</LinearLayout>

帧动画资源

<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="150" android:drawable="@drawable/loading_01" />
<item android:duration="150" android:drawable="@drawable/loading_02" />
<item android:duration="150" android:drawable="@drawable/loading_03" />
<item android:duration="150" android:drawable="@drawable/loading_04" />
<item android:duration="150" android:drawable="@drawable/loading_05" />
<item android:duration="150" android:drawable="@drawable/loading_06" />
<item android:duration="150" android:drawable="@drawable/loading_07" />
</animation-list>

注册登录 60秒倒计时

private TextView textView;

new Thread(new MyThread()).start(); //oncreat( ) 开启倒计时


final Handler handler = new Handler(){ // handle
public void handleMessage(Message msg){
switch (msg.what) {
case 1:
recLen--;
textView.setText("" + recLen);
}
super.handleMessage(msg);
}
};

public class MyThread implements Runnable{ // thread
@Override
public void run(){
while(isprogress()){
try{
Thread.sleep(1000); // sleep 1000ms
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}catch (Exception e) {
}
}
}


}
/* 倒计时结束*/
private boolean isprogress() {
if(recLen<=0){
return false;
}
return true;
}


举报

相关推荐

0 条评论