package com.android.Camera;

import java.io.File;
import java.io.RandomAccessFile;

import android.app.Activity;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import android.view.WindowManager;
import android.view.SurfaceHolder.Callback;

public class main extends Activity implements Callback,
Camera.PictureCallback {
private SurfaceView mSurfaceView = null;
private SurfaceHolder mSurfaceHolder = null;
private Camera mCamera = null;
private boolean mPreviewRunning = false;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

getWindow().setFormat(PixelFormat.TRANSLUCENT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);

mSurfaceView = (SurfaceView) this.findViewById(R.id.surface_camera);
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

@Override
public void onPictureTaken(byte[] data, Camera camera) {
try {
Log.v("System.out", "get it!");
File file = new File("/sdcard/camera.jpg");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.write(data);
raf.close();
} catch (Exception ex) {
Log.v("System.out", ex.toString());
}
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,int height)
{
if (mPreviewRunning)
{
mCamera.stopPreview();
}
Camera.Parameters p = mCamera.getParameters();
p.setPreviewSize(width, height);
mCamera.setPreviewCallback(new StreamIt());
mCamera.setParameters(p);
try {
mCamera.setPreviewDisplay(holder);
} catch (Exception ex) {
}
mCamera.startPreview();
mPreviewRunning = true;
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera = Camera.open();
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mPreviewRunning = false;
mCamera.release();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
}
} catch (Exception ex) {
}
}
}

class StreamIt implements Camera.PreviewCallback {
private int tick = 1;

@Override
public void onPreviewFrame(byte[] data, Camera camera) {
// TODO Auto-generated method stub
if (tick == 20) {
System.out.println("data len: " + data.length);
try {
File file = new File("/sdcard/pal.pal");
if (!file.exists())
file.createNewFile();
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.write(data);
raf.close();
tick++;
} catch (Exception ex) {
Log.v("System.out", ex.toString());
}
}
tick++;
}
}

但是我把上面的setContentView(R.layout.main);改成
RelativeLayout a = new RelativeLayout(this);
SurfaceView aSurfaceView = new SurfaceView(this);

a.addView(aSurfaceView);
setContentView(a);
就提示异常,有空指针,麻烦各位帮分析分析。
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): java.lang.NullPointerException
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at com.test.CameraTest.surfaceChanged(CameraTest.java:22)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.SurfaceView.updateWindow(SurfaceView.java:398)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.SurfaceView.dispatchDraw(SurfaceView.java:264)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.drawChild(ViewGroup.java:1579)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1311)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.drawChild(ViewGroup.java:1579)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1311)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.View.draw(View.java:6286)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.widget.FrameLayout.draw(FrameLayout.java:352)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.drawChild(ViewGroup.java:1581)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1311)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.drawChild(ViewGroup.java:1579)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1311)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.View.draw(View.java:6286)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.widget.FrameLayout.draw(FrameLayout.java:352)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1928)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewRoot.draw(ViewRoot.java:1454)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewRoot.performTraversals(ViewRoot.java:1174)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.view.ViewRoot.handleMessage(ViewRoot.java:1774)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.os.Looper.loop(Looper.java:123)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at android.app.ActivityThread.main(ActivityThread.java:4321)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at java.lang.reflect.Method.invokeNative(Native Method)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at java.lang.reflect.Method.invoke(Method.java:521)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-03 13:38:33.105: ERROR/AndroidRuntime(9513): at dalvik.system.NativeStart.main(Native Method)
05-03 14:01:15.125: ERROR/PackageInstallationReceiver(309): Remove /data/local/tmp/com.android.Camera.apk Fail!
05-03 14:01:17.245: ERROR/AndroidRuntime(10379): Uncaught handler: thread main exiting due to uncaught exception
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.Camera/com.android.Camera.main}: android.content.res.Resources$NotFoundException: Resource ID #0x7f050000 type #0x12 is not valid
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2464)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2486)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.ActivityThread.access$2100(ActivityThread.java:123)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1843)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.os.Looper.loop(Looper.java:123)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.ActivityThread.main(ActivityThread.java:4321)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at java.lang.reflect.Method.invokeNative(Native Method)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at java.lang.reflect.Method.invoke(Method.java:521)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at dalvik.system.NativeStart.main(Native Method)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f050000 type #0x12 is not valid
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1874)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.content.res.Resources.getLayout(Resources.java:735)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:322)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.Activity.setContentView(Activity.java:1620)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at com.android.Camera.main.onCreate(main.java:30)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2418)
05-03 14:01:17.315: ERROR/AndroidRuntime(10379): ... 11 more
05-03 14:02:36.295: ERROR/PackageInstallationReceiver(309): Remove /data/local/tmp/com.android.Camera.apk Fail!
05-03 14:02:38.825: ERROR/QualcommCameraHardware(57): Unknown property: 17 Please check!
05-03 14:02:38.845: ERROR/QualcommCameraHardware(57): Unknown property: 25 Please check!
05-03 14:02:38.895: ERROR/QualcommCameraHardware(57): pmem pool /dev/pmem_adsp ioctl(PMEM_GET_SIZE) is 524288

更多相关文章

  1. 安卓自定义属性,Android(安卓)studio无法提示,只提示3个
  2. error: resource android:attr/fontVariationSettings resource
  3. 定制自己的 Android(安卓)Dialog 信息提示对话框
  4. Android(安卓)Notifications通知
  5. Android(安卓)Studio使用Butterknife时出现空指针问题解决
  6. android当中的xml没有代码提示功能解决办法
  7. 开发Android下纯C程序时,打开时提示not found
  8. c#开发android时layout.axml没有智能提示
  9. android SDK升级到99报错怎么办

随机推荐

  1. Android(安卓)Webview 基于chromedriver
  2. Android(安卓)decoder->decode returned
  3. [Android] Eclipse错误:Conversion to Dal
  4. android 代码混淆示例
  5. android 命令行打包
  6. Android(安卓)Service那些不得不说的事-
  7. TextView 中显示图片
  8. Android(安卓)下拉刷新仿微博刷新展示
  9. Others1
  10. 自定义Android(安卓)标题栏TitleBar布局