如何为该图像创建一个对话框布局,该对话框必须对所有屏幕尺寸都具有响应能力?

时间:2019-03-25 18:36:13

标签: android android-layout dialog

Image link
我要创建如图所示的对话框布局。对话框大小必须根据屏幕大小做出响应。我编写的代码没有响应。我还想保持他对Imageswitcher的宽高比。 我尝试为不同的屏幕尺寸(即小,正常,大)制作不同的布局文件,但对我没有用。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"


>

<LinearLayout
    android:id="@+id/ll"
    android:layout_width="355dp"
    android:layout_height="match_parent"
    android:layout_marginStart="8dp"
    android:layout_marginTop="2dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:elevation="0dp"
    android:orientation="vertical"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="493dp"
        android:layout_gravity="center"
        android:background="#fff"
        app:cardCornerRadius="3dp"
        app:cardElevation="0dp">

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


            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="435dp"
                android:layout_marginLeft="3dp"
                android:layout_marginTop="3dp"
                android:layout_marginRight="3dp"
                android:layout_marginBottom="0dp"
                app:cardCornerRadius="3dp"

                >

                <ImageSwitcher
                    android:id="@+id/custompop_image"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="fitXY" />

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

            <TextView
                android:id="@+id/customIdText"
                android:layout_width="match_parent"
                android:layout_height="0dp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_margin="4dp"
                android:background="#fff"
                android:orientation="horizontal"
                android:padding="0dp">

                <Button
                    android:id="@+id/share_Button"
                    android:layout_width="@dimen/button_width"
                    android:layout_height="@dimen/button_height"
                    android:layout_marginLeft="0dp"
                    android:layout_marginTop="@dimen/button_top_margin"
                    android:background="@drawable/share10"
                    android:gravity="center_vertical"

                    android:textAppearance="@style/popupText" />

                <Button
                    android:id="@+id/download_Button"
                    android:layout_width="@dimen/button_width"
                    android:layout_height="@dimen/button_height"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="@dimen/button_top_margin"
                    android:background="@drawable/save_final"
                    android:gravity="center_vertical"
                    android:paddingLeft="30dp"
                    android:textAppearance="@style/popupText" />
            </LinearLayout>
        </LinearLayout>
    </android.support.v7.widget.CardView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="42dp"
        android:layout_marginTop="35dp"
        android:background="@android:color/transparent"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/goback"
            android:layout_width="wrap_content"
            android:layout_height="24dp"
            android:layout_marginLeft="62dp"
            android:layout_marginTop="7dp"
            android:src="@drawable/previous" />

        <ImageView
            android:id="@+id/cancelButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="76dp"
            android:src="@drawable/close_button" />

        <ImageView
            android:id="@+id/goforward"
            android:layout_width="wrap_content"
            android:layout_height="24dp"
            android:layout_marginLeft="76dp"
            android:layout_marginTop="7dp"
            android:src="@drawable/next" />

    </LinearLayout>
</LinearLayout>


</android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:0)

尝试此代码,我为对话框创建了自定义布局

与您所需的对话框布局相同

尝试此代码:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:gravity="center"
android:orientation="vertical">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:translationZ="10dp">

    <LinearLayout
        android:id="@+id/layout_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:orientation="vertical"
        android:paddingLeft="5dp"
        android:paddingTop="5dp"
        android:paddingRight="5dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="450dp"
            android:background="@drawable/nature" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">

            <android.support.v7.widget.CardView
                android:layout_width="150dp"
                android:layout_height="50dp"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="30dp"
                android:layout_marginBottom="10dp"
                android:elevation="10dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Share"
                        android:textSize="20sp" />
                </LinearLayout>
            </android.support.v7.widget.CardView>

            <android.support.v7.widget.CardView
                android:layout_width="150dp"
                android:layout_height="50dp"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:elevation="10dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Go"
                        android:textSize="20sp" />
                </LinearLayout>
            </android.support.v7.widget.CardView>
        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/layout_1"
        android:layout_marginTop="10dp"
        android:gravity="center">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_menu_send" />
    </LinearLayout>

  </RelativeLayout>
  </LinearLayout>

主要活动

  Dialog stardialog = new Dialog(this);
    stardialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    stardialog.getWindow().setBackgroundDrawable(new 
   ColorDrawable(android.graphics.Color.TRANSPARENT));
    stardialog.setContentView(R.layout.item);
    stardialog.show();

Screen Shot