Benutzerdefinierte Kamera Android

Möchte ich camera preview in einer Tätigkeit. Ich möchte hinzufügen, Bilder(transparente Rahmen auf surface view). Ich habe versucht, folgenden code, so dass ich leicht anpassen können, die xml-layout-wünschenswert:

package com.demo;


import java.io.IOException;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;

public class CameraDemoActivity extends Activity implements SurfaceHolder.Callback{
    /** Called when the activity is first created. */
     Camera camera;
     SurfaceView surfaceView;
     SurfaceHolder surfaceHolder;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getWindow().setFormat(PixelFormat.UNKNOWN);
        surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        camera = Camera.open();
        if(camera!=null){

            try {
             camera.setPreviewDisplay(surfaceHolder);
             camera.startPreview();
            } catch (IOException e) {
             Toast.makeText(this, (CharSequence) e, Toast.LENGTH_LONG).show();
            }

        }


    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
        //TODO Auto-generated method stub

    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        //TODO Auto-generated method stub

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        //TODO Auto-generated method stub

    }
}

Hier ist mein manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.demo"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".CameraDemoActivity"
                  android:label="@string/app_name" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-feature android:name="android:hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
</manifest>

Und hier ist mein layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<SurfaceView 
android:id="@+id/surfaceview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>

Weiß nicht, warum die Vorschau von camera wird nicht angezeigt?

InformationsquelleAutor der Frage Seshu Vinay | 2011-12-17

Schreibe einen Kommentar