Я пытаюсь запустить простое приложение камеры.
Я использовал образец кода CameraPreview, предоставленный Google.
И даже приведенный ниже код взят из документации на сайте разработчиков Android.
Но есть проблема с добавлением представления mPreview.
Сбой в следующих 2 условиях - он говорит, что приложение остановлено без причины, попробуйте еще раз - журналов тоже нет:
i) preview.addView (mPreview) и
б) setContentView (mPreview)
Я попробовал вариант ii) просто чтобы исключить вероятность того, что что-то не так с кодом CameraPreview.
Но вариант i) не работает даже для кнопки захвата.
Поэтому мне было интересно, что не так с addView.
Я прошел много форумов, не видел этой проблемы. Я также подумал об использовании LayoutInflater, но не вижу, как это применимо здесь.
public class CameraTrialActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private Camera mCamera;
private CameraPreview mPreview;
private final String TAG = "Camera Preview";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create an instance of Camera
mCamera = getCameraInstance();
// Create our Preview view and set it as the content of our activity.
mPreview = new CameraPreview(this, mCamera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(mPreview);
Button captureButton = (Button)findViewById(R.id.button_capture);
//preview.addView(captureButton);
//captureButton.setOnClickListener(this);
//setContentView(R.layout.main);
//setContentView(mPreview);
}
}
// XML-файл
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<FrameLayout
android:id="@+id/camera_preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<Button
android:id="@+id/button_capture"
android:text="Capture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</LinearLayout>