我的问题来自用例,即我的android设备通过HDMI连接到4K电视。默认情况下,它将我的android设备的内容镜像并升级到4K电视。视频质量不理想。我想使用演示模式基于4K分辨率重新创建相同的内容。
我的应用有多个片段。很自然,我想找到一种在演示时重用所有这些片段的方法。我根据以下库顺利地做了一个演示文稿的片段。但是,我很难在演示文稿中添加第二个片段。
基于库cwac-presentation,我可以在演示文稿上创建两个Webview片段(例如,一个Webview用于google.com,另一个用于yahoo.com),但是仅显示最后一个。上一个隐藏了。
从理论上讲,我可以在演示文稿中使用一个片段重写我的所有代码,这将是太多的工作。
在展示上有限制吗?或有任何建议可以在演示文稿中显示两个片段?
https://github.com/commonsguy/cwac-presentation
我试图在本地屏幕上显示两个PresentationFragments而不出现问题。但是当连接到4K电视时,仅显示最后一个片段。
我还尝试使两个片段具有不同且随机的大小和位置,因此它们不会互相阻塞。但是,即使视图尺寸很小,似乎一个片段也是全屏尺寸。
//以下显示了基于cwac-presentation / demo / src / main / java / com / commonsware / cwac / preso / demo / MainActivity.java的大部分更改。如果颠倒两个ft.add()的顺序,将显示最后一个。
@Override
public void showPreso(Display display) {
if (inline.getVisibility() == View.VISIBLE) {
inline.setVisibility(View.GONE);
inline2.setVisibility(View.GONE);
prose.setText(R.string.secondary);
Fragment f=getSupportFragmentManager().findFragmentById(R.id.preso);
Fragment f2=getSupportFragmentManager().findFragmentById(R.id.preso2);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.remove(f);
ft.remove(f2);
ft.commit();
}
preso=buildPreso(display);
preso2=buildPreso2(display);
preso.show(getSupportFragmentManager(), "preso");
preso2.show(getSupportFragmentManager(), "preso2");
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(preso2, "preso2");
ft.add(preso, "preso");
ft.commit();
}
private PresentationFragment buildPreso(Display display) {
return(SamplePresentationFragment.newInstance(this, display,
"http://www.google.com"));
}
private PresentationFragment buildPreso2(Display display) {
return(SamplePresentationFragment.newInstance(this, display,
"http://www.yahoo.com"));
}
即使没有显示第二个片段,也没有错误消息。理想情况下,两个片段将并排显示。