アンドロイドプログラミングの新しいim..私はここで問題があります。
カメラからの実際のビューの上にオーバーレイを描画するアプリケーションを作成したいと思います。カメラからの画像を保持するために表面ビューを使用します。
ここに私の主な活動のための私のXML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView
android:id="@+id/preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<com.openit.razer.overlayPreview
android:id="@+id/overlayprev"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<com.openit.razer.overlayImage
android:id="@+id/overlayimg"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
これが私の主な活動クラスです:p
ublic void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ar);
overPrev = (overlayPreview)findViewById(R.id.overlayprev);
overImg = (overlayImage)findViewById(R.id.overlayimg);
overImg.setZOrderOnTop(true);
overImg.getHolder().setFormat(PixelFormat.TRANSPARENT);
preview=(SurfaceView)findViewById(R.id.preview);
previewHolder=preview.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback() {
public void surfaceCreated(SurfaceHolder holder) {
try {
camera.setPreviewDisplay(previewHolder);
}
catch (Throwable t) {
Log.e("PreviewDemo-surfaceCallback",
"Exception in setPreviewDisplay()", t);
Toast
.makeText(ARrazerNav.this, t.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
public void surfaceChanged(SurfaceHolder holder,
int format, int width,
int height) {
Camera.Parameters parameters=camera.getParameters();
//Camera.Size size=getBestPreviewSize(width, height,
// parameters);
List<Camera.Size> sizes = parameters.getSupportedPreviewSizes();
Camera.Size selected = sizes.get(0);
parameters.setPreviewSize(selected.width, selected.height);
camera.setParameters(parameters);
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
camera.setDisplayOrientation(90);
}
else{
camera.setDisplayOrientation(0);
}
//camera.setDisplayOrientation(90);
//camera.setDisplayOrientation(0);
camera.startPreview();
}
public void surfaceDestroyed(SurfaceHolder holder) {
// no-op
}
};
しかし、私は誤りを犯しました
FATAL EXCEPTION:main
...
...
...
caused by: android.view.InflateException: Binary XML file line #10: Error inflating class blablabla
私の問題を解決するのを手伝ってもらえますか。この問題で立ち往生していたのは3日間でした。
そして、SurfaceViewとその上にオーバーレイ画像を使用してカメラを実装するための最良の方法は何ですか?
前もって感謝します