Android实现微信右上角弹出的菜单

目录

ps:如果你觉得对你有帮助的话,麻烦点个赞加个关注

  • 效果图:
  • Android实现微信右上角弹出的菜单_第1张图片
  • 代码:

res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:orientation="vertical"
    android:background="@drawable/bg"
    tools:context=".MainActivity">

    <!--微信-->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_title"
        android:textColor="#FFFFFF"
        android:textSize="25sp"></TextView>

    <!--菜单按钮-->
    <Button
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:id="@+id/btn_menu"
        android:layout_alignParentRight="true"
        android:onClick="OnMenu"
        android:background="@drawable/btn_add"></Button>



</RelativeLayout>

res/layout/menu.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="right">
    <!--菜单发起群聊-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="#333333"
        android:drawableLeft="@drawable/icon_group"
        android:drawablePadding="10dp"
        android:paddingLeft="20dp"
        android:padding="58dp"
        android:text="@string/text_group"
        android:textColor="#FFFFFF"
        android:textSize="18sp"></Button>

    <!--菜单添加好友-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="#333333"
        android:drawableLeft="@drawable/icon_add"
        android:drawablePadding="10dp"
        android:paddingLeft="20dp"
        android:padding="58dp"
        android:text="@string/text_add"
        android:textColor="#FFFFFF"
        android:textSize="18sp"></Button>

    <!--菜单扫一扫-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="#333333"
        android:drawableLeft="@drawable/icon_scan"
        android:drawablePadding="10dp"
        android:paddingLeft="20dp"
        android:padding="67dp"
        android:text="@string/text_sweep"
        android:textColor="#FFFFFF"
        android:textSize="18sp"></Button>

    <!--菜单首付款-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="#333333"
        android:drawableLeft="@drawable/icon_card"
        android:drawablePadding="10dp"
        android:paddingLeft="20dp"
        android:padding="67dp"
        android:text="@string/text_collect"
        android:textColor="#FFFFFF"
        android:textSize="18sp"></Button>

    <!--菜单帮助与反馈-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="#333333"
        android:drawableLeft="@drawable/icon_help"
        android:drawablePadding="10dp"
        android:paddingLeft="20dp"
        android:padding="50dp"
        android:text="@string/text_help"
        android:textColor="#FFFFFF"
        android:textSize="18sp"></Button>


</LinearLayout>

res/values/strings.xml

<resources>
    <string name="app_name">微信</string>
    <string name="text_title">微信</string>
    <string name="text_group">发起群聊</string>
    <string name="text_add">添加好友</string>
    <string name="text_sweep">扫一扫</string>
    <string name="text_collect">收付款</string>
    <string name="text_help">帮助与反馈</string>

</resources>

res/values/styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

java/MainActivity

package com.example.bluetooth01;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.PopupWindow;

public class MainActivity extends AppCompatActivity {
     
PopupWindow popupWindow;//定义popupWindow

    @Override
    protected void onCreate(Bundle savedInstanceState) {
     
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    //菜单按钮的单机事件
    public void OnMenu(View v){
     
        //获取自定义菜单的布局文件
        View popupWindow_view=getLayoutInflater().inflate(R.layout.menu,null,false);
        //创建popupWindow实例,设置菜单的宽度和高度
        popupWindow=new PopupWindow(popupWindow_view, ActionBar.LayoutParams.WRAP_CONTENT,ActionBar.LayoutParams.WRAP_CONTENT,true);
        //设置菜单显示在按钮的下面
        popupWindow.showAsDropDown(findViewById(R.id.btn_menu),0,0);
        //单机其它位置隐藏菜单
        popupWindow_view.setOnTouchListener(new View.OnTouchListener(){
     
            @Override
            public boolean onTouch(View v, MotionEvent event){
     
                //如果菜单存在并且处于显示状态
                if (popupWindow!=null&&popupWindow.isShowing()){
     
                    popupWindow.dismiss();//关闭菜单
                    popupWindow=null;
                }
                return false;
            }
        });


    }
}

你可能感兴趣的:(Android,android,移动开发)