аппаратное ускорение ломает приложение - PullRequest
2 голосов
/ 19 марта 2012

Итак, вот ситуация.

Я хочу сделать простую игру для Android.Оно предназначено для обучения, поэтому я хочу опробовать множество доступных функций.

И вот в чем проблема.

Включение аппаратного ускорения (через приложение или путем принудительного его выбора в настройках разработчика).в android 4 заставляет приложения в первый раз рисовать неправильно. Это очень простое меню, созданное с помощью xml внизу поста.

это на samsung galaxy nexusгде это идет не так. Первая картинка из эмулятора (в конечном итоге получил его для запуска ...) там, кажется, работает.

, как это должно быть _________________________, как это

wantis

на втором изображении градиент находится на экране (не программировал), это не отражение или что-то еще. То, что вы видите, это именно то, что показывает экран.когда его время ...

Я вернулся к основному / пустому коду приложения, означающему, что единственный код находится в настройке основного класса javas вид, который будет показан, и проблема останется.

То, что я вижу, как будто основной вид изменяется до 1/4 моего экрана.и все виды (кнопки drawables textviews) нарисованы очень маленькими.

  • Я знаю, как отключить аппаратное ускорение.
  • Я знаю, как включать и отключать каждый вид / действие и все такое.
  • Я знаю, как «исправить» приложение.

Что я хочу, так это знать, почему.что такое аппаратное ускорение не может в простом textview или linearlayout.что на самом деле здесь происходит?

Извините за то, что немного разбираюсь в моем вопросе.Я просто не нахожу никакой информации об этом.Обычный ответ на «аппаратное ускорение ломает мое приложение», кажется, «выключить его».Но это вряд ли «исправление»

Обратите также внимание, что я не использую ничего, что было описано в документации как несовместимое с аппаратным ускорением.

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 Ответ

3 голосов
/ 30 марта 2012

Поместите targetSdk иimumSdk в манифест, чтобы решить проблему отображения небольшого представления.Это случилось со мной, но показало, что экран увеличен вместо небольшой части, возможно, это из-за аппаратного ускорения.

...