Я пытаюсь использовать тему, чтобы непрерывно фотографировать.Проблема в том, что я получаю исключение нулевого указателя при попытке создать предварительный просмотр.
private class CameraThread extends ImageView implements Runnable
{
...
public CameraThread(Context c)
{
super(c);
setContentView(R.layout.main);
setFocusable(true);
p = new Preview(c);
Log.d(TAG,"preview null:"+(p==null));
s = new SurfaceView(c);
counter = 0;
if(findViewById(R.id.preview)==null)
Log.d(TAG,"preview view is null");
((FrameLayout) findViewById(R.id.preview)).addView(p);
canvas = new Canvas();
t = new TextView(c);
captureButton = (Button) findViewById(R.id.captureButton);
captureButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
running = true;
//new CaptureTask().execute();
}
});
clearButton = (Button) findViewById(R.id.clearButton);
clearButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
running = false;
}
});
}
Отладчик указывает мне на эту строку:
((FrameLayout) findViewById(R.id.preview)).addView(p);
Я не уверен, почему это ноль.Этот код все отлично работал в основной деятельности.Объект Preview не имеет значения null, однако findViewById возвращает нулевой объект.
Есть мысли?
EDIT
Поток объявлен в основном действии.Я изменяю этот код, он изначально был реализован с помощью кнопок для захвата отдельных изображений.Я пытаюсь непрерывно фотографировать.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCameraThread = new CameraThread(this);
setContentView(mCameraThread);
Thread thread = new Thread(mCameraThread);
thread.start();
Log.d(TAG,"onCreate done");
}