我在我的应用程序中使用自定义ProgressDialog
,我可以自定义但我还想删除progressDialog
的上边框或窗口。
在styles.xml
中,我将customDialog
定义为
<style name="AppTheme" parent="android:Theme.Light" />
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:background">#7BC047</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:windowBackground">@null</item>
<item name="android:windowFrame">@null</item>
</style>
为了删除父窗口,我将windowBackground
设置为null,将windowFrame
设置为null,但它对我不起作用。
目前,我的自定义进度对话框在
我正在使用此代码设置progressDialog
。
private void showProgressDialog() {
progressDialog = new ProgressDialog(this,R.style.CustomDialog);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Logging in. Please wait.");
progressDialog.show();
}
所以,请帮助我解决这个问题,应该非常感谢任何帮助。
答案 0 :(得分:23)
这个答案没有解决问题中陈述的问题,但在搜索如何实现自定义进度对话框时,这是指向SO的唯一链接。也就是说,我在link上的某个Maksym Dybarskyi
找到了一个很酷且易于使用的自定义进度对话框。
所有积分都归创作者而不是我。只是分享
您需要做的就是将其添加到您的依赖项中:
dependencies {
...
compile 'com.github.d-max:spots-dialog:0.4@aar'
}
然后是自定义样式:
<style name="Custom" parent="android:Theme.DeviceDefault.Dialog">
<item name="DialogTitleAppearance">@android:style/TextAppearance.Medium</item>
<item name="DialogTitleText">Please Wait</item>
<item name="DialogSpotColor">@android:color/holo_orange_dark</item>
<item name="DialogSpotCount">8</item>
</style>
最后,在你的代码中执行以下操作:
private AlertDialog progressDialog;
progressDialog = new SpotsDialog(mContext, R.style.Custom);
//Am using it in an AsyncTask. So in my onPreExecute, I do this:
public void onPreExecute() {
super.onPreExecute();
progressDialog.show();
...
}
//dismiss in onPostExecute
public void onPostExecute(){
progressDialog.dismiss();
}
结果:
黄色点从左向右移动,您可以更改样式中的点数
答案 1 :(得分:16)
我知道我回答很晚但我会以任何方式回答,
Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_login);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
答案 2 :(得分:2)
只需在进度对话框的构造函数中检查使用活动名称,
progressDialog = new ProgressDialog(Activity.this,R.style.CustomDialog);
答案 3 :(得分:1)
在样式上添加
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
答案 4 :(得分:1)
将其添加到CustomDialog
中的styles.xml
:
<item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
这是style
:
<style name="CustomAlertDialogStyle" >
<item name="android:bottomBright">@android:color/transparent</item>
<item name="android:bottomDark">@android:color/transparent</item>
<item name="android:bottomMedium">@android:color/transparent</item>
<item name="android:centerBright">@android:color/transparent</item>
<item name="android:centerDark">@android:color/transparent</item>
<item name="android:centerMedium">@android:color/transparent</item>
<item name="android:fullBright">@android:color/transparent</item>
<item name="android:fullDark">@android:color/transparent</item>
<item name="android:topBright">@android:color/transparent</item>
<item name="android:topDark">@android:color/transparent</item>
</style>
答案 5 :(得分:0)
<style name="CustomDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="android:background">#7BC047</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:windowBackground">@color/colorTransparent</item>
</style>
这为我完成了工作。
答案 6 :(得分:0)
我在应用程序中使用自定义ProgressDialog
。
为此,我们必须按照以下步骤进行操作。
第1步
创建xml布局custom_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:padding="@dimen/dp_size_10"
android:layout_height="match_parent">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:indeterminateTint="@color/colorPrimary"
android:layout_centerInParent="true"/>
</RelativeLayout>
步骤2 为此自定义对话框创建一个Java文件。
package com.example.customeprogress;
import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
public class CustomProgressDialogue extends Dialog {
public CustomProgressDialogue(Context context) {
super(context);
WindowManager.LayoutParams wlmp = getWindow().getAttributes();
wlmp.gravity = Gravity.CENTER_HORIZONTAL;
getWindow().setAttributes(wlmp);
setTitle(null);
setCancelable(false);
setOnCancelListener(null);
View view = LayoutInflater.from(context).inflate(
R.layout.custom_progress, null);
setContentView(view);
}
}
第3步
在您的活动Java类中创建此自定义类的对象并进行初始化
如下所述,将对象用于show()
或dismiss()
CustomProgressDialogue object = new CustomProgressDialogue(this);
并使用显示此对话框。
object.show(); 并使用 object.dismiss();
输出结果。 see out put here
答案 7 :(得分:0)