【问题标题】:How to make my app full screen on Galaxy Tab如何让我的应用在 Galaxy Tab 上全屏显示
【发布时间】:2011-02-03 01:13:04
【问题描述】:

我一直在尽我所能,让我的应用在 Galaxy Tab 上全屏显示。

基本上,它的工作方式类似于 Android SDK 附带的 Lunar Lander 示例应用。您会如何让 Lunar Lander 应用程序在 Galaxy Tab 等大屏幕设备上全屏显示?

此时我并不关心图形的质量,而是关心这样创建的应用如何填满屏幕。它的基本设计目的是在 320x480 MDPI 屏幕上使用可绘制文件夹中的图像,它使用 SurfaceHolder 和视图来绘制各个位图。

有什么建议吗?

澄清:抱歉,我的意思不是像删除通知和标题栏那样全屏,我的意思是所有内容周围都有一个巨大的黑色边框,并且图形不会占据整个屏幕。

【问题讨论】:

  • 您对应用的最低 SDK 要求是多少?
  • 我将最小 SDK 设置为 4,Max 设置为 8

标签: android


【解决方案1】:

如果您将目标 sdk 级别设置为小于 9 的任何值,则假定对超大屏幕的支持为 false。如果您在清单中设置 targetSdkVersion=9,则假定 xlarge 支持为真。请参阅Supporting Multiple Screens 上的文档,尤其是兼容模式的说明。

【讨论】:

    【解决方案2】:

    另一种方法是在 res/values 中创建一个名为 styles.xml 的 xml

    定义样式:

    <style name="Theme.FullScreen" parent="android:Theme">
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowNoTitle">true</item>
        </style>
    

    稍后在清单中,告诉 android 必须在全屏模式下设置上面的样式:

    <activity android:name=".activity.NewSearchBrowserActivity" android:theme="@style/Theme.FullScreen" android:screenOrientation="landscape"></activity>
    

    通过这种方式,您可以创建一个可重复使用的主题,该主题可以应用于任何活动。

    【讨论】:

    • 对不起,我的意思不是全屏,因为移除了通知和标题栏,我的意思是所有的东西周围都有一个巨大的黑色边框,图形不会占据整个屏幕。
    【解决方案3】:

    Ted 提到了 XLargeSceens,Galaxy Tab 运行的是 2.2,因此没有 2.3 中添加的 xlargeScreens 属性;因为下一代平板电脑将具有 3.0 和 XlargeScreens,所以无论如何您都会想要使用它(并针对 2.3/3.0 进行编译)

    在您的清单中,您需要声明支持所有合理的屏幕尺寸并提供正确的资源集

    <supports-screens 
        android:smallScreens="false" 
        android:largeScreens="true"
        android:xlargeScreens="true"  
        android:normalScreens="true" 
        android:anyDensity="true"
    />
    

    【讨论】:

    • 提醒一下,“supports-screens”标签位于“manifest”标签下,而不是“application”标签下。经过半小时的胡闹,我可以确认如果你把它放在那里它什么都不会。
    【解决方案4】:

    除非您支持至少 4 个的 SDK 版本,即:
    &lt;uses-sdk android:minSdkVersion="4"/&gt;,

    您必须明确执行以下操作:

    <supports-screens android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:anyDensity="true" />
    

    【讨论】:

      【解决方案5】:
       public void onCreate(Bundle savedInstanceState) {
          requestWindowFeature(Window.FEATURE_NO_TITLE);
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
      

      这对我来说很好用...试试这个

      【讨论】:

        【解决方案6】:

        &lt;uses-sdk android:minSdkVersion="4" /&gt;

        或者您的清单中缺少其他版本号

        【讨论】:

        • anyDensity 是否必须为真?
        • 我没有改变anyDensity的默认值
        【解决方案7】:

        你可以在

        下添加
          super.onCreate(savedInstanceState);
        

        您希望全屏显示的活动。

         requestWindowFeature(Window.FEATURE_NO_TITLE);
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);  
        

        【讨论】:

        • @bluebrain :我认为这与我们使用的版本无关。它应该适用于所有版本。
        【解决方案8】:

        在你的清单文件中给出这个:

        <supports-screens android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:anyDensity="true" />
        

        肯定会成功的。

        【讨论】:

          猜你喜欢
          • 2011-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-20
          • 1970-01-01
          • 2010-10-05
          • 2021-05-07
          • 2012-04-24
          相关资源
          最近更新 更多