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

日常开发过程中对于PopupWindown的使用也是比较多的。这里给大家展示一下PopupWindow的使用。

修改activity_main.xml布局:

 
 
  
 
   
 
   
 
  
 
 

新建popup_window.xml布局文件

 
 
 
  
 
  
 
  
 
  
 
  
 
 

自定义PopupWindow类PopWindow

package com.syz.mypopupwindow; 
 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.drawable.ColorDrawable; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.PopupWindow; 
 
/** 
 * 

Title:PopWindow

*

Description: 自定义PopupWindow

* @author syz * @date 2016-3-14 */ public class PopWindow extends PopupWindow{ private View conentView; public PopWindow(final Activity context){ LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); conentView = inflater.inflate(R.layout.popup_window, null); int h = context.getWindowManager().getDefaultDisplay().getHeight(); int w = context.getWindowManager().getDefaultDisplay().getWidth(); // 设置SelectPicPopupWindow的View this.setContentView(conentView); // 设置SelectPicPopupWindow弹出窗体的宽 this.setWidth(w / 2 + 40); // 设置SelectPicPopupWindow弹出窗体的高 this.setHeight(LayoutParams.WRAP_CONTENT); // 设置SelectPicPopupWindow弹出窗体可点击 this.setFocusable(true); this.setOutsideTouchable(true); // 刷新状态 this.update(); // 实例化一个ColorDrawable颜色为半透明 ColorDrawable dw = new ColorDrawable(0000000000); // 点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作 this.setBackgroundDrawable(dw); // mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog); // 设置SelectPicPopupWindow弹出窗体动画效果 this.setAnimationStyle(R.style.AnimationPreview); conentView.findViewById(R.id.about).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //do something you need here PopWindow.this.dismiss(); } }); conentView.findViewById(R.id.ability_logout).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // do something before signing out context.finish(); PopWindow.this.dismiss(); } }); conentView.findViewById(R.id.settings).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // do something you need here PopWindow.this.dismiss(); } }); } /** * 显示popupWindow * * @param parent */ public void showPopupWindow(View parent) { if (!this.isShowing()) { // 以下拉方式显示popupwindow this.showAsDropDown(parent, parent.getLayoutParams().width / 2, 5); } else { this.dismiss(); } } }

添加自定义PopupWindow所需的style

AnimationPreview

 

添加style所需的动画

fade_in.xml

 
 
  
    

fade_out.xml

 
 
  

最后在MainActivity类中使用

package com.syz.mypopupwindow; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
 
public class MainActivity extends Activity implements OnClickListener { 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 findViewById(R.id.rl_more).setOnClickListener(this); 
 } 
 
 @Override 
 public void onClick(View v) { 
 if(v.getId() == R.id.rl_more){ 
  PopWindow popWindow = new PopWindow(this); 
  popWindow.showPopupWindow(findViewById(R.id.rl_more)); 
 } 
 } 
} 

效果图:

Android PopupWindow实现微信右上角的弹出菜单_第1张图片 

 Android PopupWindow实现微信右上角的弹出菜单_第2张图片 

Android PopupWindow实现微信右上角的弹出菜单_第3张图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Android PopupWindow实现微信右上角的弹出菜单)