Android在打开应用程序时弹出

时间:2018-02-24 04:54:53

标签: android android-layout android-popupwindow

我正在开发一个Android应用程序,我需要在应用程序打开时显示包含一些消息的弹出窗口(附图片作为参考)。 我试图使用吐司信息和小吃店来实现这一点,但不能完全相同。

请建议使用Android中的哪个组件来实现此功能?

Here is the ScreenShot

2 个答案:

答案 0 :(得分:1)

您可以使用dialog获得所需的结果。我正在共享代码,您可以根据需要进行修改,但请确保将其放在onCreate method的{​​{1}}内。

这是简单launcher activity

的代码
dialog

您共享的图片中显示的是AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Look at this dialog!") .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //do things } }); AlertDialog alert = builder.create(); alert.show(); ,您必须在其中制作自己的布局。这是一个例子,

<强> 1。创建自己的布局

custom dialog

<强> 2。为<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffffff"> <ImageView android:layout_width="match_parent" android:layout_height="120dp" android:id="@+id/a" android:gravity="center" android:background="#DA5F6A" android:src="@drawable/dialog_cross" android:scaleType="fitCenter" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TEXT" android:id="@+id/text_dialog" android:layout_below="@+id/a" android:layout_marginTop="20dp" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_marginBottom="20dp" android:textSize="18sp" android:textColor="#ff000000" android:layout_centerHorizontal="true" android:gravity="center_horizontal" /> <Button android:layout_width="wrap_content" android:layout_height="30dp" android:text="OK" android:id="@+id/btn_dialog" android:gravity="center_vertical|center_horizontal" android:layout_below="@+id/text_dialog" android:layout_marginBottom="20dp" android:background="@drawable/btn_flat_red_selector" android:layout_centerHorizontal="true" android:textColor="#ffffffff" /> </RelativeLayout>

创建class
custom dialog

第3。在自定义对话框类的public class ViewDialog { public void showDialog(Activity activity, String msg){ final Dialog dialog = new Dialog(activity); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCancelable(false); dialog.setContentView(R.layout.dialog); TextView text = (TextView) dialog.findViewById(R.id.text_dialog); text.setText(msg); Button dialogButton = (Button) dialog.findViewById(R.id.btn_dialog); dialogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); } } 中设置object并调用函数launcher activity

showDialog

或者您可以使用external library来获得所需的结果

ViewDialog alert = new ViewDialog(); alert.showDialog(getActivity(), "Thank you for installing the Paytm App");

其中Pop.on(this).with().title(R.string.title).layout(R.layout.custom_pop).show();是对话框的自定义布局。

答案 1 :(得分:1)

尝试相同的结果:

<强> dialog.xml

<?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:orientation="vertical">

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

        <Button
            android:id="@+id/btnClose"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="X" />
    </LinearLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="10dp"
        android:text="Hello, this is your message"
        android:textSize="20sp" />

</LinearLayout>

<强>码

private void showDialog() {
    final Dialog dialog = new Dialog(mContext);
    dialog.setContentView(R.layout.dialog);

    Window window = dialog.getWindow();
    WindowManager.LayoutParams wlp = window.getAttributes();

    wlp.gravity = Gravity.BOTTOM;
    wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
    window.setAttributes(wlp);

    dialog.findViewById(R.id.btnClose).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            dialog.cancel();
        }
    });

    dialog.show();
}