OpenGL ES 2: представление GLSurface с черным экраном, когда SetContentView установлен в файл XML
Я довольно новичок в OpenGL и моя проблема, когда я делаю SetContentView("R.layout.main")
ничего не происходит, однако, когда я делаю SetContentView("mGLView")
игра отображается нормально. Мой файл main.xml содержит вид поверхности, и поэтому я подумал, что он будет отображаться, поскольку main.xml имеет вид поверхности.
Я подозреваю, что способ исправить это, будет сделано с помощью addview или findviewbyid, однако мой смысл этого не удался.
Восстановить основной код активности:
public class OpenGLES20Activity extends Activity {
private GLSurfaceView mGLView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLView = new MyGLSurfaceView(this);
setContentView(R.layout.main);
код main.xml:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<SurfaceView
android:id="@+id/SurfaceView"
android:layout_width="500dp"
android:layout_height="478dp">
</SurfaceView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Timer"
android:id="@+id/Timer"/>
</RelativeLayout>
</FrameLayout>
Любая помощь приветствуется.
1 ответ
Решение
Вы должны установить свой расширенный GLSurfaceView
вместо просто SurfaceView
в файле XML, так что просто измените SurfaceView
в com.example.yourapp.MyGLSurfaceView
:
<com.example.yourapp.MyGLSurfaceView
android:id="@+id/SurfaceView"
android:layout_width="500dp"
android:layout_height="478dp"/>