使用popupWindow实现标题右侧更多的效果
下面简单介绍一下popupWindow:
A popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity
popupwindow 能够用来展示一个任意的view,它是悬浮在当前activity上边的一个浮动的容器
这是开发文档中的介绍,通过这句话我们可以简单的把popupWindow当成一个显示view的容器就行了.
自定义标题栏在前边已经写了,这里就不写了,直接开始写popupwindow了
1.写一个customPopWindow类
package cn.ljj.pop;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.PopupWindow;
public class CustomPopWindow {
/** popupWindow背景 */
protected Drawable mBackground = null;
protected Context mContext;
/**
* 加载在popupWindow上的view
*/
protected View mRootView;
protected PopupWindow mWindow;
/**
* 触摸外部是否关闭popupWindow
*/
private boolean outsideDismiss = true;
/**
* 实例化构造方法。
*
* @param context 上下文内容
* @param outsideDismiss 是否允许点击外部关闭popup
*/
public CustomPopWindow(Context context, boolean outsideDismissFlag) {
mContext = context;
mWindow = new PopupWindow(context);
this.outsideDismiss = outsideDismissFlag;
// 根据触摸点来设置outsideDismiss的值
mWindow.setTouchInterceptor(new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
int viewWidth = view.getWidth();
int viewHeight = view.getHeight();
float x = event.getX();
float y = event.getY();
Log.e("x,y", x + "--" + y);
Log.e("w,h", viewWidth + "--" + viewHeight);
if (x < 0 || x > viewWidth || y < 0 || y > viewHeight