之前在技术问答上面看到一个提问 “加载中…” 后面三个点是动态的,这么一个效果实现。想来想去,好像没想到好的处理方式。
尝试了一下,以一个最笨的方式实现了。先来看一下效果 :
我是通过自定义一个Dialog,加载中的效果,是在Dialog内部实现的,进度还是从Activity里面控制的。
下面是Dialog实现类:
public class CustomDialog extends AlertDialog {
public CustomDialog(Context context) {
super(context);
}
private TextView tv_loading;
private ProgressBar progressBar;
private Timer timer;
private int count = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_progress);
tv_loading = (TextView) findViewById(R.id.tv_loading);
progressBar = (ProgressBar) findViewById(R.id.pb);
// 设置Dialog显示的宽度,
Display d = getWindow().getWindowManager().getDefaultDisplay();
WindowManager.LayoutParams lp = getWindow().getAttributes();
//这里设置为屏幕宽度的百分之八十
lp.width = (int) (d.getWidth() * 0.8);
getWindow().setAttributes(lp);
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(0);
}
}, 300, 300);
setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (timer != null) {
timer.cancel();
}
}
});
}
Handler handler = new Handler() {