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