gpt4 book ai didi

java - 使用 AlertDialog 复制 ProgressDialog

转载 作者:行者123 更新时间:2023-12-02 02:40:18 25 4
gpt4 key购买 nike

我正在尝试复制 ProgressDialog,因为它已被弃用。我在java中生成了一个新的AlertDialog,并在前端构建了一个ProgressBar-round。java:

AlertDialog alertDialog = new AlertDialog.Builder(SplashScreenActivity.this).create();
alertDialog.setMessage("Logging in...");

布局:

 <ProgressBar
android:id="@+id/progressBar3"
style="?android:attr/progressBarStyle"
android:layout_width="200dp"
android:layout_height="200dp"
android:indeterminate="true"
android:visibility="visible"
tools:layout_editor_absoluteX="284dp"
tools:layout_editor_absoluteY="343dp" />

但我不明白如何将进度条放置在消息上方的 AlertDialog 中。我还尝试将进度条设为蓝色,但没有看到任何类似的属性。任何人都可以向我解释一下吗(我刚刚开始在 Android Studio 中编程,所以我为我缺乏知识而道歉)。感谢大家抽出宝贵的时间!

最佳答案

创建一个类MyDialog:

 public class MyDialog {

private ProgressDialog dialog;
private View view;
Context context;
public MyDialog(Context context) {
this.context = context;
dialog = new ProgressDialog(context, R.style.AlertDialog);
view=new View(context);
}

public void ShowProgressDialog(Boolean cancellable) {
try {
dialog.show();
dialog.setCanceledOnTouchOutside(false);
dialog.setContentView(R.layout.custom_progress_view);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.setCancelable(cancellable);
} catch (Exception e) {
e.printStackTrace();
}
}

public void CancelProgressDialog() {
if (dialog != null) {
dialog.dismiss();
}
}
}

在您的 Activity 中:

MyDialog mydialog=new MyDialog(this);

mydialog.ShowProgressDialog(false);
mydialog.CancelProgressDialog();

在样式文件夹中R.style.AlertDialog:

   <style name="AlertDialog" parent="@android:style/Theme.Material.Light.Dialog.Alert">
<item name="android:textColor">#000000</item>
</style>

并在您的自定义进度 View xml 中:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content">

<RelativeLayout
android:layout_width="220dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:padding="@dimen/margin_10"
android:background="@drawable/header_img">

<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:indeterminate="true"
android:layout_marginTop="@dimen/card_elevation_10"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/white"
android:layout_gravity="center_vertical|center_horizontal"
android:maxHeight="32dp"
android:minHeight="32dp"
android:minWidth="32dp" />

<TextView
android:id="@+id/TxtRefPicname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginTop="@dimen/card_elevation_10"
android:layout_toRightOf="@+id/progressBar"
android:text="Please Wait..."
android:layout_margin="@dimen/textsize_20"
android:textSize="18sp"
android:textColor="@color/white"
android:textStyle="normal" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>

关于java - 使用 AlertDialog 复制 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com