android多屏幕异显继承Presentation

最近遇到一个需求 一个板子连两个显示器,第二个显示器中显示广告位,第一个显示器为应用主体,需要用双屏异显

创建一个类继承Presentation ,layout自己写

public class SecondActivity extends Presentation {


    public SecondActivity(Context outerContext, Display display) {
        super(outerContext, display);
        getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    }

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

}

开启第二个屏幕显示内容

  /**
     * 启动第二个屏幕
     */
    public static void startSecondActivity(Activity activity) {

        DisplayManager mDisplayManager;// 屏幕管理类
        mDisplayManager = (DisplayManager) activity.getSystemService(Context.DISPLAY_SERVICE);
        Display[] displays = mDisplayManager.getDisplays();
        SecondActivity mPresentation = new SecondActivity(activity, displays[displays.length - 1]);//这个决定在哪个屏幕展示 (0)开始
        mPresentation.show();
    }

启动之后 Presentation继承dialog 当dialog用呗

发现一个问题当 第二个屏幕显示这个Presentation 的时候activity无法收到触摸事件

这时候需要Presentation 中事件分发

@Override
public boolean dispatchTouchEvent(@NonNull MotionEvent ev) {
    ((Activity) context).dispatchTouchEvent(ev);//context为最上层的activity
    return false;
}

有dialog的页面 dialog又不接受事件了  有dialog的activity

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (dailog != null && dailog.isShowing()) {
        dailog.dispatchTouchEvent(ev);
        return false;
    }
    return super.dispatchTouchEvent(ev);
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值