Android实现微信右上角弹出的菜单
16lz
2021-01-23
目录
ps:如果你觉得对你有帮助的话,麻烦点个赞,加个关注
- 效果图:
- 代码:
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; } }); }}
更多相关文章
- cocos2d-x编译到android平台后,增加返回键和菜单键支持
- Android:实现一种浮动选择菜单的效果
- Android studio 点击按钮跳转到新的Activity
- Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上
- Android的底部菜单