Java Android-在进度对话框中添加三点动画

Java Android-在进度对话框中添加三点动画,java,android,animation,mobile,Java,Android,Animation,Mobile,我正在制作一个进度对话框,当按钮点击时会弹出 我已经得到了3点动画(使用JumpingBeans) 但是现在,我想把它添加到Android进度对话框的标题中,我认为这是不可能的,不是吗?或者如何将文本视图(移动点)附加到进度对话框 “三点”按钮未设置动画,制作此自定义进度对话框的最佳方法是什么 我试图创建一个带有ProgressBar和TextView的DialogFragment,但是当我调用setMax和setProgress时,它总是得到一个NPE错误(空指针异常) 有没有更简单或更好的方

我正在制作一个进度对话框,当按钮点击时会弹出

我已经得到了3点动画(使用JumpingBeans)

但是现在,我想把它添加到Android进度对话框的标题中,我认为这是不可能的,不是吗?或者如何将文本视图(移动点)附加到进度对话框

“三点”按钮未设置动画,制作此自定义进度对话框的最佳方法是什么

我试图创建一个带有ProgressBar和TextView的DialogFragment,但是当我调用setMax和setProgress时,它总是得到一个NPE错误(空指针异常)

有没有更简单或更好的方法来处理带有点动画的自定义对话框片段

这是图片(我想让点移动)


以下是我通过在单独的线程上更新消息来解决这个问题的方法

似乎这也适用于标题:

主要活动:

public class SplashActivity extends Activity {

    public final static long RUN_TIME = 30000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_splash);

        gotoMain();
    }

    private void gotoMain() {

        final String messagePrefix = "Loading ";
        final ProgressDialog startupProgressDialog =
                ProgressDialogUtil.createProgressDialog(
                        SplashActivity.this,

                        // space added on init so text doesn't shift when adding chars for first time
                        messagePrefix + "      "
                );

        startupProgressDialog.setTitle(null);
        startupProgressDialog.show();

        Thread thread = new Thread() {
            @Override
            public void run() {
                ProgressDialogUtil
                        .runAnimatedLoadingDots(
                                SplashActivity.this,
                                messagePrefix,
                                startupProgressDialog);
            }
        };
        thread.start();

        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {

                startupProgressDialog.dismiss();

                Intent mainIntent = new Intent(SplashActivity.this, MainBottomNavActivity.class);
                SplashActivity.this.startActivity(mainIntent);
                SplashActivity.this.finish();
            }
        }, RUN_TIME);
    }

}
ProgressDialogUtil.java

public class ProgressDialogUtil {

    public static ProgressDialog createProgressDialog(Context context, String message) {
        ProgressDialog dialog = new ProgressDialog(context, R.style.DialogTheme1);
        dialog.setTitle("App Initialization");
        dialog.setMessage(message);
        dialog.setCancelable(false);
        return dialog;
    }

    public static void runAnimatedLoadingDots(Activity activity, String messagePrefix, final ProgressDialog progressDialog) {

        int dotsCount = 0;
        while (progressDialog != null && progressDialog.isShowing()) {

            dotsCount++;
            dotsCount = dotsCount % 5; // looks good w/4 dots

            try {
                Thread.sleep(300);
            }
            catch (InterruptedException iEx) {}

            final StringBuffer updateValue = new StringBuffer(messagePrefix);
            for (int i = 0; i < dotsCount; i++) {
                updateValue.append('.');
            }

            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    progressDialog.setMessage(updateValue.toString());
                }
            });
        }

    }
}
公共类ProgressDialogUtil{
公共静态ProgressDialog createProgressDialog(上下文上下文,字符串消息){
ProgressDialog=新建ProgressDialog(上下文,R.style.DialogTheme1);
对话框.setTitle(“应用程序初始化”);
设置消息(消息);
对话框。可设置可取消(false);
返回对话框;
}
公共静态void runAnimatedLoadingDots(活动活动、字符串消息前缀、最终进度对话框){
int dotsunt=0;
while(progressDialog!=null&&progressDialog.isShowing()){
dotsunt++;
dotscont=dotscont%5;//带4个点看起来不错
试一试{
睡眠(300);
}
捕获(中断异常iEx){}
final StringBuffer updateValue=新的StringBuffer(messagePrefix);
for(int i=0;i
参考此示例:或hi@DixitPatel,谢谢您的光临,我已经尝试了spots对话框,但这不是我想要的,目标是使上面图片上的三个点移动。我应该请求对话框功能NO_TITLE,并在对话框上设置CustomView(),自定义视图可以具有您想要的设计,因此,您可以将带有动画点视图的textViewTitle放在旁边。PD:您可以为对话框和dialogFragment@marcosE. 似乎合法,我会尝试一下,并会通知您更新