【问题标题】:hardware acceleration breaks the app硬件加速破坏了应用程序
【发布时间】:2012-04-03 22:33:02
【问题描述】:

情况就是这样。

我想为安卓制作一个简单的游戏。这对我自己来说是有教育意义的,所以我想尝试很多可用的功能。

这就是问题所在。

启用硬件加速(通过应用程序或通过在 android 4 中的开发人员选项中强制它,使应用程序的第一个视图绘制错误。它是一个由帖子底部的 xml 制作的非常简单的菜单。

它是在三星银河系中出错的地方。第一张图片来自模拟器(终于让它开始了......)它似乎可以工作。

应该是_______________它是怎样的

渐变在屏幕中的第二张图片(没有对其进行编程)它不是反射或任何东西。您所看到的正是屏幕显示的内容。

白天会拍出更好的照片...

更新>

我已经恢复到应用程序的最基本/空代码,这意味着唯一的代码在主 java 类中,设置要显示此视图并且问题仍然存在。

我看到的好像主视图正在调整到我屏幕的 1/4。并且所有视图(按钮可绘制文本视图)都绘制得非常小。

  • 我知道如何禁用硬件加速。
  • 我知道如何启用和禁用每个视图/活动等等。
  • 我知道如何“修复”应用程序。

我想要的是知道为什么。什么是硬件加速不能在简单的文本视图或线性布局中。这里到底发生了什么?

抱歉,我的问题有点透彻。我只是找不到有关此的任何信息。 “硬件加速破坏了我的应用程序”的通常答案似乎是“关闭它”。但这几乎不是“修复”

另请注意,我没有使用文档中描述为与硬件加速不兼容的任何内容。

main.java:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
    android:id="@+id/ilogo"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="test"
    android:background="@drawable/logo"
    />
    <Button 
    android:id="@+id/play"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Play"
    android:textSize="24sp"
    android:background="@drawable/button"
    android:textColor="@drawable/button_color"
    />
    <Button 
    android:id="@+id/highscore"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="highscore"
    android:textSize="24sp"
    android:background="@drawable/button"
    android:textColor="@drawable/button_color"
    />
    <Button 
    android:id="@+id/quit"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Quit"
    android:textSize="24sp"
    android:background="@drawable/button"
    android:textColor="@drawable/button_color"
    />
</LinearLayout>

manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="lima.ict"
  android:versionCode="1"
  android:versionName="1.0">
<application 
    android:label="@string/app_name" 
    android:icon="@drawable/ic_launcher" 
    android:hardwareAccelerated="true"
    >
    <activity  android:name="pong"
              android:label="@string/app_name"
              android:screenOrientation="portrait"
              android:configChanges="orientation|keyboardHidden"
              >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>

【问题讨论】:

  • “画错”是一个完全没有意义的陈述。除非您花时间准确地解释“画错”是什么意思,否则任何人都可能无法为您提供帮助,或许可以包括屏幕截图。
  • 我进一步解释说“我看到的好像主视图被调整到我屏幕的 1/4。所有视图(按钮可绘制文本视图)都被绘制得非常小。”
  • 完成。请注意,我发现它确实适用于模拟器。

标签: android hardware-acceleration


【解决方案1】:

将targetSdk和minimumSdk放在manifest上,解决显示小视图的问题。我也遇到过这种情况,但显示屏幕扩大而不是一小部分,可能是因为硬件加速。

【讨论】:

  • AFAIK,这是因为 Android 1.5 只有 320x240 的分辨率,并且由于您没有设置最低 SDK 要求,android 假设您可以在旧的 1.5 设备上使用并强制使用这个小分辨率.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 2016-05-16
  • 2018-03-31
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
相关资源
最近更新 更多