popupwindow实现类似ActionBar右侧更多效果

使用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值