im new in android programming..
i have a problem here.
i wanna make an application that draw overlay on top real view from camera.
i use surface view for hold image from camera.
here my XML for my main activity:
<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>
and this is my main activity class:
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
}
};
but i got errror
FATAL EXCEPTION:main
...
...
...
caused by: android.view.InflateException: Binary XML file line #10: Error inflating class blablabla
could u help me to solve my problems. it was a 3 days im stuck in this problem.
and whats the best method for implementing Camera with SurfaceView and overlay image on top of it?
thanks in advance
You should be using a FrameLayout to place views on top of other views. SurfaceView first, then the views you want on top of it.
I actually did this myself, putting an image over a camera preview. I used a FrameLayout with a SurfaceView and an ImageView on top of it. Worked pretty well.