Android Presentation双屏异显,副屏的操作

最近有一个双屏显示的需求,当时一脸蒙逼完全不知如何着手,不负众望找到解决办法,在Android4.2版本以后提供了Presentation类,可以轻松实现在两块屏幕上同时显示不同的内容。做一下笔记。

Presentation是一个特殊的dialog,它的目的是显示内容到第二屏幕。在Presentation创建的时候关联一个目标设备,确定Presentation要显示在那个设备上,根据这个设备的信息来配置Presentation的context和resources信息。

上代码

1public class MainActivity extends AppCompatActivity { 2 3private WebView webView; 4@Override 5protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_main); 8 webView = findViewById(R.id.webView); 9 webView.loadUrl("https://www.baidu.com/"); 10 webView.getSettings().setJavaScriptEnabled(true); 11 //这里面是主要的代码 12 setCustomerProductList(); 13} 14@SuppressLint("NewApi") 15private void setCustomerProductList() { 16 DisplayManager displayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE); 17 Display[] presentationDisplays = displayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION); 18 if (presentationDisplays.length > 0) { 19 Display display = presentationDisplays[0]; 20 Presentation presentation = new DifferentDislay(this, display); 21 presentation.show(); 22 } 23} 24}

新建一个类继承Presentation

1public class DifferentDislay extends Presentation { 2 3 public DifferentDislay(Context outerContext, Display display) { 4 super(outerContext,display); 5 } 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_home); 10 11 } 12}

在副屏操作,或者跳转页面

1public class DifferentDislay extends Presentation { 2private Context context; 3private TextView img; 4private Display display; 5 6 public DifferentDislay(Context outerContext, Display display) { 7 super(outerContext,display); 8 this.context = outerContext; 9 } 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.activity_home); 14 img = findViewById(R.id.img); 15 16 img.setOnClickListener(new View.OnClickListener() { 17 @Override 18 public void onClick(View view) { 19 Presentation presentation = new PresentationActivity(context, display); 20 presentation.show(); 21 } 22 }); 23 } 24}

副屏跳转页面是跳转到新建的一个Presentation

别忘了加权限

1<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 2<!-- 在 屏幕最顶部显示addview--> 3<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang