我正在使用GLSurfaceView在我的应用程序界面后面渲染一个动态壁纸,其中包含android UI元素。
在我的应用程序的开头,我问用户是否想要看到这个壁纸。 只有当用户接受GLSurfaceView时,它才会在现有的xml中作为第一个元素膨胀,因此它会留在后面。
我的问题恰恰与我认为的相反。
当壁纸处于激活状态时,屏幕会正确渲染,如下所示:
当我不使用壁纸时,它会呈现为部分刻录的图形卡:
正如您从xml结构中看到的那样,我的GLSurfaceView甚至没有注入有问题的情况。
奇怪的是,当它被注入时,DDMS Monitor将其显示为
如果情况相反,则很明显问题是由GLSurfaceView引起的。但现在似乎缺乏它会导致这个问题。
关于可能出现什么问题的任何想法?
我正在使用Nexus 4进行测试,似乎可以根据DanJAB进行相关
XML布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
style="?metaButtonBarButtonStyle"
android:id="@+id/home_history"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/button_calibrator"
android:text="@string/history"/>
<View
android:id="@+id/button_calibrator"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/home_history"
android:layout_alignBottom="@+id/home_history"
android:layout_centerHorizontal="true"/>
<Button
style="?metaButtonBarButtonStyle"
android:id="@+id/home_help"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/button_calibrator"
android:text="@string/help"/>
<View
android:id="@+id/screen_menu_seperator"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/home_history"
android:background="@color/holo_blue"/>
<ListView
android:id="@+id/homescreen_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/screen_menu_seperator"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"/>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_alignParentBottom="true"
android:background="@color/holo_blue"/>
</RelativeLayout>
GLSurfaceView XML:
<?xml version="1.0" encoding="utf-8"?>
<android.opengl.GLSurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="gone"/>
并在java中:
getLayoutInflater().inflate(R.layout.background, contents);
GLSurfaceView background = (GLSurfaceView) contents.findViewById(R.id.background);
答案 0 :(得分:1)
这是手机错误。 Nexus 4会在某些主题配置中导致此问题。