android dialog背景透明代码(背景透明度设置方法)

为什么要用自定义dialog,因为系统提供的dialog满足不了我们的需求。那么,其实我们所有的dialog都去自定义就好了。

1继承Dialog
android dialog背景透明代码(背景透明度设置方法)

2将xml引入dialog并绑定

LayoutInflater.from(context).inflate(R.layout.dialog_course_record_txt, null, false);

setContentView(view);

public class CourseDialog extends Dialog { public CourseDialog(@NonNull Context context) { super(context); initDialog(context); } public CourseDialog(@NonNull Context context, int themeResId) { super(context, R.style.CourseDialog); initDialog(context); } protected CourseDialog(@NonNull Context context, boolean cancelable, @NonNull OnCancelListener cancelListener) { super(context, cancelable, cancelListener); initDialog(context); } private void initDialog(@NonNull Context context) { View view = LayoutInflater.from(context).inflate(R.layout.dialog_course_record_txt, null, false); setContentView(view); } @Override public void show() { super.show(); /** * 设置宽度全屏,要设置在show的后面 */ WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.gravity = Gravity.CENTER; layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT; getWindow().getDecorView().setPadding(0, 0, 0, 0); getWindow().setAttributes(layoutParams); } }

3activity中使用

CourseDialog courseDialog = new CourseDialog(this, 0);courseDialog.show()<!–dialog style–><style name=”CourseDialog” parent=”android:Theme.Dialog”> <!– 背景颜色及透明程度 –> <item name=”android:windowBackground”>@android:color/transparent</item> <!– 是否半透明 –> <item name=”android:windowIsTranslucent”>true</item> <!– 是否没有标题 –> <item name=”android:windowNoTitle”>true</item> <!– 是否浮现在activity之上 –> <item name=”android:windowIsFloating”>true</item> <!– 是否背景模糊 –> <item name=”android:backgroundDimEnabled”>true</item> <!– 设置背景模糊的透明度–> <item name=”android:backgroundDimAmount”>0.5</item></style>

发表评论

登录后才能评论