---- 安德风 QQ1652102745
一, 最终效果演示:
二, 布局设计
1, 界面布局设计 Activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <androidx.constraintlayout.widget.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="wrap_content"
- Android:layout_height="wrap_content"
- tools:context=".MainActivity"
- Android:background="@color/colorPrimary"
- >
- <ImageView
- Android:id="@+id/imageView"
- Android:layout_width="422dp"
- Android:layout_height="746dp"
- App:layout_constraintBottom_toBottomOf="parent"
- App:layout_constraintEnd_toEndOf="parent"
- App:layout_constraintStart_toStartOf="parent"
- App:layout_constraintTop_toTopOf="parent"
- App:srcCompat="@drawable/menu" />
- </androidx.constraintlayout.widget.ConstraintLayout>
2, 自定义对话框布局设计 (dailog.xml)
- <?xml version="1.0" encoding="utf-8"?>
- <androidx.constraintlayout.widget.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="wrap_content"
- Android:layout_gravity="center_horizontal"
- Android:background="@drawable/dialog_bg">
- <TextView
- Android:id="@+id/textView"
- Android:layout_width="wrap_content"
- Android:layout_height="wrap_content"
- Android:layout_marginTop="356dp"
- Android:text="您确定要退出吗?"
- Android:textColor="#EF0A0A"
- Android:textSize="40sp"
- Android:textStyle="bold"
- App:layout_constraintEnd_toEndOf="parent"
- App:layout_constraintHorizontal_bias="0.62"
- App:layout_constraintStart_toStartOf="parent"
- App:layout_constraintTop_toTopOf="parent" />
- <LinearLayout
- Android:layout_width="409dp"
- Android:layout_height="184dp"
- Android:orientation="horizontal"
- App:layout_constraintBottom_toBottomOf="parent"
- App:layout_constraintEnd_toEndOf="parent"
- App:layout_constraintHorizontal_bias="0.487"
- App:layout_constraintStart_toStartOf="parent"
- App:layout_constraintTop_toBottomOf="@+id/textView"
- Android:gravity="center_vertical"
- App:layout_constraintVertical_bias="0.251">
- <Button
- Android:id="@+id/yesbutton"
- Android:layout_width="80dp"
- Android:layout_height="50dp"
- Android:layout_weight="1"
- Android:layout_marginLeft="40dp"
- Android:background="@drawable/yes_btn" />
- <Button
- Android:id="@+id/nobutton"
- Android:layout_width="80dp"
- Android:layout_height="50dp"
- Android:layout_marginRight="40dp"
- Android:layout_marginLeft="20dp"
- Android:layout_weight="1"
- Android:background="@drawable/no_btn" />
- </LinearLayout>
- </androidx.constraintlayout.widget.ConstraintLayout>
3, 菜单布局设计文件路径 (menu/optaionsmenu.xml)
- <?xml version="1.0" encoding="utf-8"?>
- <menu xmlns:Android="http://schemas.android.com/apk/res/android">
- <item Android:title="追剧"
- Android:id="@+id/zhuiju"/>
- <item Android:title="购物"
- Android:id="@+id/shopping"
- />
- <item Android:title="学习"
- Android:id="@+id/study"/>
- <item Android:title="音乐"
- Android:id="@+id/music"/>
- <item Android:title="退出"
- Android:id="@+id/exit"/>
- </menu>
三, 功能实现
- 1,MainActivity.java
- package com.example.optionsmenu;
- import androidx.annotation.NonNull;
- import androidx.appcompat.App.AppCompatActivity;
- import Android.content.Intent;
- import Android.NET.Uri;
- import Android.os.Bundle;
- import Android.view.Menu;
- import Android.view.MenuItem;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.optionsmenu,menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(@NonNull MenuItem item) {
- switch (item.getItemId()){
- case R.id.zhuiju:
- Intent intent=new Intent();
- intent.setAction(Intent.ACTION_VIEW);
- intent.setData(Uri.parse("https://www.iqiyi.com/"));
- startActivity(intent);break;
- case R.id.shopping:
- Intent intent2=new Intent();
- intent2.setAction(Intent.ACTION_VIEW);
- intent2.setData(Uri.parse("https://www.quanbk.cn"));
- startActivity(intent2);break;
- case R.id.music:
- Intent intent3=new Intent();
- intent3.setAction(Intent.ACTION_VIEW);
- intent3.setData(Uri.parse("https://www.quanbk.cn/yy"));
- startActivity(intent3);break;
- case R.id.study:
- Intent intent4=new Intent();
- intent4.setAction(Intent.ACTION_VIEW);
- intent4.setData(Uri.parse("https://www.bilibili.com/"));
- startActivity(intent4);break;
- case R.id.exit:
- mydialog mydialog=new mydialog(this,R.style.mydialog);
- // 实例化 mydialog 设置参数 ( 参数 1: 环境上下文 (这里设置 this), 参数 2: 导入样式 R.style / 样式名)
- mydialog.show();// 展示效果
- break;
- }
- return super.onOptionsItemSelected(item);
- }
- }
2, 自定义对话框功能实现 mydailog.java
- package com.example.optionsmenu;
- import Android.App.Dialog;
- import Android.content.Context;
- import Android.view.View;
- import androidx.annotation.NonNull;
- public class mydialog extends Dialog {
- public mydialog(@NonNull Context context, int themeResId) {
- super(context, themeResId);
- setContentView(R.layout.dialog_main);
- //YES 按钮安装监听器, 实现响应功能
- findViewById(R.id.yesbutton).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- System.exit(0); // 自定义对话框点击 YES 按钮时, 执行退出
- }
- });
- //NO 按钮安装监听器, 实现响应功能
- findViewById(R.id.nobutton).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- dismiss(); // 自定义对话框点击 NO 按钮时, 取消
- }
- });
- }
- }
四, Values 属性值设置:
1,color.xml 颜色设置
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <color name="colorPrimary">#FBDA03</color>
- <color name="colorPrimaryDark">#FBDA03</color>
- <color name="colorAccent">#FBDA03</color>
- </resources>
2,Style.xml 样式设置
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <!-- 设置自定义对话框样式:1导入对话框样式模板 --> <style name="mydialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <!-- 设置关闭自定义对话框标题 --> <item name="android:windowBackground">@Android:color/transparent</item> <!-- 设置自定义对话框背景颜色为透明 --> </style> </resources>
来源: http://www.bubuko.com/infodetail-3525773.html