安卓dialog主题

博主在编写dialog时,遇到默认背景黑色不透明且占满屏幕的问题,通过将主题改为透明成功解决。
最近在写一个dialog,发现默认背景黑色不透明占满屏幕,改了主题为透明之后就可以了
在给定的参考引用中未提及在 Android 中为 Dialog 设置主题的方法。不过,一般来说,在 Android 中为 Dialog 设置主题主要有以下两种常见方式: ### 通过构造函数设置主题 可以在创建 Dialog 对象时,在构造函数中传入一个主题资源 ID。示例代码如下: ```java import android.app.Dialog; import android.content.Context; import android.os.Bundle; public class CustomDialog extends Dialog { public CustomDialog(Context context, int themeResId) { super(context, themeResId); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.custom_dialog_layout); } } ``` 在 Activity 中使用该自定义 Dialog 并设置主题: ```java import android.os.Bundle; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建自定义 Dialog 并设置主题 CustomDialog customDialog = new CustomDialog(this, R.style.CustomDialogTheme); customDialog.show(); } } ``` ### 通过 Builder 设置主题 使用 `AlertDialog.Builder` 创建 Dialog 时,可以在构造函数中传入主题资源 ID。示例代码如下: ```java import android.app.AlertDialog; import android.content.Context; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建 AlertDialog.Builder 并设置主题 AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.CustomDialogTheme); builder.setTitle("Title") .setMessage("Message") .setPositiveButton("OK", (dialog, which) -> { // 处理确定按钮点击事件 }) .setNegativeButton("Cancel", (dialog, which) -> { // 处理取消按钮点击事件 }); // 创建并显示 Dialog AlertDialog dialog = builder.create(); dialog.show(); } } ``` ### 定义主题 在 `res/values/styles.xml` 文件中定义自定义主题: ```xml <resources> <style name="CustomDialogTheme" parent="Theme.AppCompat.Dialog"> <!-- 设置 Dialog 的背景颜色 --> <item name="android:windowBackground">@android:color/white</item> <!-- 设置 Dialog 的标题文字颜色 --> <item name="android:titleTextColor">@android:color/black</item> <!-- 设置 Dialog 的消息文字颜色 --> <item name="android:messageTextColor">@android:color/black</item> <!-- 设置 Dialog 的按钮文字颜色 --> <item name="android:buttonTextColor">@android:color/black</item> </style> </resources> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值