Установите для фона RelativeLayout полную прозрачность в Android Dialog - PullRequest
0 голосов
/ 27 декабря 2018

Я создал макет XML для всплывающего диалога.Там я создал CardView с изображением сверху.

Все работает нормально, но половина фона изображения должна быть полностью прозрачной, что означает, что никакие виды не должны быть видны.Я попытался установить альфа-значение, но оно не работает, как ожидалось.Он скрывает все взгляды.Я также пытался @android:color:transparent.

Вот мой код:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="40dp"
        android:clickable="true"
        android:focusable="true"
        android:foreground="?android:attr/selectableItemBackground"
        app:cardBackgroundColor="@android:color/transparent"
        app:cardCornerRadius="10dp"
        app:cardPreventCornerOverlap="false"
        app:cardUseCompatPadding="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">


            <LinearLayout
                android:id="@+id/linear_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginTop="5dp"
                android:layout_marginRight="30dp"
                android:orientation="vertical">


                <TextView
                    android:id="@+id/textview1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Total Project"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="100" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/linearbox"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_below="@+id/linear_text"
                android:layout_marginTop="25dp"
                android:weightSum="3">

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:orientation="vertical">

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="1dp"
                        android:background="@color/colorGrayLight" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:padding="4dp"
                        android:text="Project Live"
                        android:textStyle="bold" />


                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:padding="4dp"
                        android:text="5"
                        android:textStyle="bold" />


                </LinearLayout>

                <View
                    android:layout_width="1dp"
                    android:layout_height="wrap_content"
                    android:background="@color/colorGrayLight" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:orientation="vertical">

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="1dp"
                        android:background="@color/colorGrayLight" />

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:padding="4dp"
                        android:text="Project Wip"
                        android:textStyle="bold" />


                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:padding="4dp"
                        android:text="5"
                        android:textStyle="bold" />


                </LinearLayout>

                <View
                    android:layout_width="1dp"
                    android:layout_height="wrap_content"
                    android:background="@color/colorGrayLight" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:orientation="vertical">

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="1dp"
                        android:background="@color/colorGrayLight" />

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:padding="4dp"
                        android:text="Project Closed"
                        android:textStyle="bold" />


                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:padding="4dp"
                        android:text="5"
                        android:textStyle="bold" />


                </LinearLayout>
            </LinearLayout>
        </RelativeLayout>
    </android.support.v7.widget.CardView>

</LinearLayout>


<ImageView
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_marginStart="10dp"
    android:layout_marginLeft="10dp"
    android:src="@drawable/admin"
    tools:ignore="ContentDescription" />

Диалог:

  private void showDialog() {
    // creating the fullscreen dialog
    final Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.dialog);

    if (dialog.getWindow() != null) {
        //  dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
        dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
        dialog.getWindow().setLayout(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
    }
    dialog.setCanceledOnTouchOutside(false);
    dialog.setCancelable(true);
    dialog.show();
    }

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Вы можете добавить альфа к цвету фона, чтобы сделать изображение прозрачным.

public static int getColorWithAlpha(int color, int alpha) {
    int red = Color.red(color);
    int green = Color.green(color);
    int blue = Color.blue(color);
    return Color.argb(alpha, red, green, blue);
}
0 голосов
/ 01 января 2019

Измените свой код просмотра изображения, как показано ниже.

<ImageView
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginStart="10dp"
    android:layout_marginLeft="10dp"
    android:foregroundGravity="center"
    android:src="@drawable/ic_action_next"
    tools:ignore="ContentDescription" 
    android:translationZ="10dp"/>

Для того, чтобы у меня были изменения в этом коде, добавлен параметр android: layout_centerHor horizontal = "true" , это приведет к просмотру изображения впо центру, а также добавлено android: translationZ = "10dp" . Это позволит сохранить представление изображения поверх других макетов.

Надеюсь, это поможет

...