任务要求:
需要提交所有类的java源文件代码和布局文件代码(xml文件),注意:提交java源文件代码时选择代码语言为Java,提交布局文件代码时选择代码语言为XML
任务描述:
选择合适方式实现如下程序的弹出窗口界面,程序主界面不做要求,需实现当程序启动以后能够弹出下图所示的窗口,并且点击窗口右上角的x号时能够关闭该窗口。界面中所需图片下载地址链接:https://pan.baidu.com/s/1fnh7z9Smqsx8f-_aCjBOcw
提取码:zpoh
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/btn_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="弹出优惠券窗口"/>
</LinearLayout>
coupons_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="160dp"
android:background="@android:color/holo_red_dark">
<ImageView
android:layout_width="match_parent"
android:layout_height="110dp"
android:background="@drawable/bg"
android:layout_centerVertical="true"/>
<Button
android:id="@+id/btn_close"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/close"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<ImageView
android:id="@+id/iv_item"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_marginLeft="5dp"
android:background="@drawable/item" />
<LinearLayout
android:layout_toRightOf="@id/iv_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="幸福西饼满减券"
android:textSize="18sp"
android:layout_marginTop="4dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="¥20"
android:textColor="@android:color/holo_red_dark"
android:textSize="23sp"
android:layout_marginLeft="5dp"/>
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linear_center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dp"
android:text="满59元可用"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="领取后当日有效"
android:textSize="16sp" />
</LinearLayout>
<Button
android:layout_toRightOf="@id/linear_center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button"
android:layout_gravity="center"
android:text="去使用"
android:textSize="16sp"
android:textColor="@android:color/holo_red_dark"/>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
strings.xml:
<resources>
<string name="app_name">customdialog</string>
</resources>
MainActivity.java:
package com.example.homework04;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnPopup = findViewById(R.id.btn_popup);
btnPopup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPopupWindow();
}
});
}
public void showPopupWindow(){
//创建PopupWindow对象
final PopupWindow popupWindow = new PopupWindow(this);
//设置弹出窗口的宽度和高度
popupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
popupWindow.setHeight(LinearLayout.LayoutParams.MATCH_PARENT);
//设置它的视图
View view = getLayoutInflater().inflate(R.layout.coupons_layout,null);
//设置视图当中控件的属性和监听器
Button btnClose = view.findViewById(R.id.btn_close);
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//关闭弹出窗
popupWindow.dismiss();
}
});
popupWindow.setContentView(view);
//显示PopupWindow
LinearLayout root = findViewById(R.id.root);
popupWindow.showAtLocation(root, Gravity.CENTER,0,0);
}
}