android 使用深色或浅色模式更改自定义对话框形状颜色

bcs8qyzn  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(150)

我在Android Studio应用中为对话框使用自定义圆形背景,但遇到了一个问题。我已指定形状的颜色为白色,但希望在黑暗模式下将其更改为黑色(因为文本会自动更改,在白色背景下无法读取)。我不知道如何执行此操作。
下面是四舍五入的背景xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white" />
    <corners android:radius="25dp" />
</shape>

下面是我创建对话框的方法:

var myDialog: Dialog
            myDialog = Dialog(this.requireContext())
            myDialog.setContentView(R.layout.popup_deposit);
            myDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
            myDialog.show()

R.布局弹出窗口_存款:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/rounded"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/textDepAmount"
        android:layout_width="228dp"
        android:layout_height="68dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:ems="100"
        android:hint="0"
        android:importantForAutofill="no"
        android:inputType="number"
        app:layout_constraintEnd_toStartOf="@+id/buttonDepAll"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView4" />

    <Button
        android:id="@+id/buttonDepAll"
        android:layout_width="68dp"
        android:layout_height="68dp"
        android:layout_marginEnd="10dp"
        android:text="@string/all"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textDepAmount"
        app:layout_constraintTop_toTopOf="@+id/textDepAmount" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="244dp"
        android:layout_height="49dp"
        android:text="@string/how_much_money_would_you_like_to_deposit"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/buttonBack"
        app:layout_constraintTop_toTopOf="@+id/buttonBack" />

    <Button
        android:id="@+id/buttonConfirmDeposit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="2dp"
        android:enabled="false"
        android:text="@string/deposit"
        app:cornerRadius="25dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textDepAmount" />

    <ImageButton
        android:id="@+id/buttonBack"
        android:layout_width="54dp"
        android:layout_height="50dp"
        android:layout_marginTop="16dp"
        android:contentDescription="@string/back"
        app:layout_constraintEnd_toStartOf="@+id/textView4"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/ic_arrow_back_black_24dp" />
</androidx.constraintlayout.widget.ConstraintLayout>

有人知道怎么做吗?任何答案将不胜感激

66bbxpm5

66bbxpm51#

我认为可以通过在“drawable-night”文件夹中为黑暗模式创建单独的drawable来解决问题

相关问题