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);
}
更多推荐
已为社区贡献4条内容
所有评论(0)