制作全屏警报对话

时间:2016-07-26 18:55:49

标签: android fullscreen android-alertdialog

我尝试制作全屏警报对话框。但我得到了这个ScreenShot。请帮助我改进它,完全填满屏幕。我已经阅读了很多问题,但我无法解决这个问题。

这是我的代码:

    // AlertDialog Builder
    AlertDialog.Builder bmneu = new AlertDialog.Builder(this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

    // Inflate
    LayoutInflater inflate = this.getLayoutInflater();

    // View
    View v = inflate.inflate(R.layout.help_archive, null);

    // Assign view to AlertDialogBuilder
    bmneu.setView(v);

    // Alert Dialog
    AlertDialog alertHelp = bmneu.create();

    // Show AlertDialog
    alertHelp.show();

xml代码(help_archive.xml):

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#40e9e2f7" >

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

    <TextView
        android:id="@+id/txtHelpArchive1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="در این قسمت بایگانی از موارد خمسی ذخیره شده را مشاهده می کنید."
        android:gravity="right"
        android:padding="10dp"
        android:textColor="#ffffff"
        android:background="@android:color/transparent" />

    <ImageView
        android:id="@+id/imgHelpArchive1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/help_archive1"
        android:padding="10dp" />

    <TextView
        android:id="@+id/txtArchive2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="تاریخ سال خمسی با مشخص بودن، شمسی و یا قمری بودن سال، مشخص شده است. در سمت چپ تصویر نیز برای حذف، تعبیه شده است."
        android:gravity="right"
        android:padding="10dp"
        android:textColor="#ffffff"
        android:background="@android:color/transparent" />

    <ImageView
        android:id="@+id/imgHelpArchive2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/help_archive2"
        android:padding="10dp" />

    <TextView
        android:id="@+id/txtHelpArchive3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="با فشردن کلیدهای زیر می توانید، می توانید مواردی را که قبلا ذخیره کرده اید، مشاهده و یا ارسال کنید."
        android:gravity="right"
        android:padding="10dp"
        android:textColor="#ffffff"
        android:background="@android:color/transparent" />

    <ImageView
        android:id="@+id/imgHelpArchive3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/help_archive3"
        android:padding="10dp" />

</LinearLayout>
</ScrollView>

感谢。

2 个答案:

答案 0 :(得分:1)

您可以做的是创建一个自定义Dialog,扩展DialogFragment,并在onStart()方法上创建以下内容:

  @Override
    public void onStart() {
        super.onStart();

        int height = (int)(getResources().getDisplayMetrics().heightPixels);
        int width = (int)(getResources().getDisplayMetrics().widthPixels);

        getDialog().getWindow().setLayout(width, height);
    }

希望这有帮助!如果我不够清楚,请告诉我。

答案 1 :(得分:0)

也许这会有用:

            AlertDialog.Builder bmneu = new AlertDialog.Builder(this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

            // Inflate
            LayoutInflater inflate = getLayoutInflater();

            // View
            View v = inflate.inflate(R.layout.help_archive, null);

            // Assign view to AlertDialogBuilder
            bmneu.setView(v);


            // Alert Dialog
            AlertDialog alertHelp = bmneu.create();

            // Show AlertDialog
            alertHelp.show();

            ScrollView.LayoutParams params = (ScrollView.LayoutParams) v.getLayoutParams();
            params.height = getResources().getDisplayMetrics().heightPixels;
            params.width = getResources().getDisplayMetrics().widthPixels;
            v.setLayoutParams(params);

最后一段代码设置视图的宽度和高度(在对话框内)

因此,请在展示alertHelp.show()之后添加以下代码(请记住 v 是您的布局):

            ScrollView.LayoutParams params = (ScrollView.LayoutParams) v.getLayoutParams();
            params.height = getResources().getDisplayMetrics().heightPixels;
            params.width = getResources().getDisplayMetrics().widthPixels;
            v.setLayoutParams(params);