Я являюсь новым в Java и OpenGL.
Я пытаюсь получить экран предварительного просмотра камеры со способностью отобразить 3-и объекты одновременно. Пройдя образцы в демонстрациях API, я думал, комбинируя код для, примеры в демонстрации API будут достаточны. Но так или иначе не работа. Вынуждает меня закрыться после запуска, и ошибка упоминается как исключение нулевого указателя. Кто-то мог совместно использовать со мной, где я шел не так, как надо и как продолжить двигаться оттуда. То, как я сделал комбинацию для кода, как показано ниже:
myoverview.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.opengl.GLSurfaceView
android:id="@+id/cubes"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<SurfaceView
android:id="@+id/camera"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
myoverview.java
import android.app.Activity;
import android.os.Bundle;
import android.view.SurfaceView;
import android.view.Window;
public class MyOverView extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Hide the window title.
requestWindowFeature(Window.FEATURE_NO_TITLE);
// camera view as the background
SurfaceView cameraView = (SurfaceView) findViewById(R.id.camera);
cameraView = new CameraView(this);
// visual of both cubes
GLSurfaceView cubesView = (GLSurfaceView) findViewById(R.id.cubes);
cubesView = new GLSurfaceView(this);
cubesView.setRenderer(new CubeRenderer(false));
// set view
setContentView(R.layout.myoverview);
}
}
GLSurfaceView.java
import android.content.Context;
class GLSurfaceView extends android.opengl.GLSurfaceView {
public GLSurfaceView(Context context) {
super(context);
}
}
ПРИМЕЧАНИЕ:
Я не перечислял остальную часть файлов, поскольку они - просто копии демонстраций API. cameraView относится к camerapreview.java примеру, и CubeRenderer обращается к CubeRenderer.java и примеру Cube.java. Любая справка ценилась бы.
Извините, не понял, что кодирование было неуместно из-за форматирования ошибок.
причина, по которой вы получаете исключение нулевого указателя при работе с .xml, заключается в том, что вы фактически создаете новые представления в своем коде java. вы действительно передали свойства, которые...).. новое представление, очевидно, будет иметь нулевое значение.. таким образом, выдавая исключение нулевого указателя... например --
cubesView = new GLSurfaceView(this);
на самом деле не требуется в коде, если вы уже создали представление в файле .xml, содержащем FrameLayout..
Узнайте, как это решить ... через Java Way ... просто используйте AddContentView вместо использования XML .... Ну, по крайней мере, его решено. :)