本文主要是介绍Android 双屏异显——Presention,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
双屏异显——Presention
- 双屏异显——Presention是一个应用于辅助屏显示的一个组件
- 一个双屏收银 主屏选择商品 副屏给客户显示需求
- Presention相当于一个在Window上显示的一个Dialog
- 与Activity一样Presention也是通过“setContentView();”来设置layout的。
<!-- 显示系统窗口权限 --><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 在 屏幕最顶部显示addview --><uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
/*** @author renquan*/
public class SecondaryPresention extends Presentation {public SecondaryPresention(int flag, Context outerContext, Display display) {super(outerContext, display);this.flag = flag;//主要用于显示不同的layoutthis.context = outerContext;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);switch (flag) {case 0:setContentView(R.layout.second_default_layout);//默认显示break;case 1:setContentView(R.layout.second_payface_layout);//刷脸支付页面break;default:break;}}}
//先获取权限
// 先判断是否有权限。if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_SETTINGS) != PackageManager.PERMISSION_GRANTED) { } else {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.WRITE_SETTINGS}, 1);}
//在Activity中private void initSecond() {mediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);MediaRouter.RouteInfo localRouteInfo = mediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_AUDIO);display = localRouteInfo != null ? localRouteInfo.getPresentationDisplay() : null;if (display != null) {showPresentation(display, 0);} else {Toast.makeText(this, "不支持分屏", Toast.LENGTH_SHORT).show();}}/*** 主屏back键/home键隐藏后,副屏仍可使用。但是,再次打开主屏,副屏会失联,所以作如下设置** @param display*/public static void showPresentation(Display display, int flag) {secondaryPresention = null;secondaryPresention = new SecondaryPresention(flag, MyApplication.context, display);secondaryPresention.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);//TYPE_SYSTEM_ALERT / TYPE_PHONEsecondaryPresention.show();}
ok简单的Presention就可以显示了
当然你在Android是无法操作的需要一个双屏设备(超市中的购物设备——双屏)
如果需要显示你可以再开发者选择中设置 默认是透明的
————————————————
原文链接:https://blog.csdn.net/weixin_45680654/article/details/111871686
这篇关于Android 双屏异显——Presention的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!