У меня есть следующий код:getSurfaceTexture() возвращение нулевой
LayoutInflater factory = LayoutInflater.from(this);
View view_with_buttons_on = factory.inflate(R.layout.buts, null);
view_with_buttons_on.setBackgroundColor(Color.TRANSPARENT);
game_frame_layout = new FrameLayout(getApplicationContext());
surface_view_extension = new SurfaceViewExtension(getApplicationContext());
game_frame_layout.addView(surface_view_extension);
game_frame_layout.addView(view_with_buttons_on);
setContentView(game_frame_layout);
preview_texture_view = (TextureView) findViewById(R.id.tex1);
try {
camera.setPreviewTexture(preview_texture_view.getSurfaceTexture());
} catch (IOException e) {
e.printStackTrace();
}
Компоновка buts.xml содержит набор кнопок, а также TextureView
меченого "@id/tex1"
. Похоже, что preview_texture_view.getSurfaceTexture()
возвращает null. В документации сказано:
Этот метод может возвращать нулевое значение, если вид не привязан к окну или , если текстура поверхности еще не инициализирован.
Я предполагаю, что поверхность должна быть уже прикреплена к окну, так как кнопки видимы, так что я думаю, что моя ошибка должна быть не ее инициализации preview_texture_view - но я понятия не имею, что значит «инициализировать» preview_texture_view, кроме что я уже сделал. Я видел некоторый связанный образец кода и не могу определить какой-либо процесс инициализации.
EDIT: Возможно, потребуется немного времени, чтобы прикрепить к окну или быть инициализированным. Может быть, мне нужно настроить обратный вызов, когда он готов? .. просто догадывается.
где вы выполнения getSurfaceTexture? Это метод onCreate вашей деятельности? – GhostDerfel
yes .... blah blah, чтобы текст был достаточно длинным для SO, чтобы принять. – Mick
извините, но я не понял ваш комментарий, вы можете объяснить сами? – GhostDerfel