|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2012
Messaggi: 16
|
[ANDROID] Applicazione che utilizza fotocamera
Ciao a tutti.
Sto sviluppando una app che permetta l'utilizzo della fotocamera. Tuttavia, essendo sprovvisto di smartphone, non posso provare l'app su un cellulare e quindi sono costretto ad usare l'emulatore, ma, come penso sappiate, l'emulatore è una gran rogna, dato che fotocamera, gps e quantaltro vanno a farsi benedire. Ora ho prodotto del codice, ma quando viene avviata l'activity della fotocamera, essa termina dandomi una NullPointerException. Questo è il codice: Codice:
import java.io.IOException;
import java.util.ArrayList;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.Size;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
public class FotocameraActivity extends Activity implements SurfaceHolder.Callback {
private SurfaceView mSurfaceView;
private SurfaceHolder mSurfaceHolder;
private Camera mCamera;
private boolean mPreviewRunning;
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 );
ImageButton buttonPicture = (ImageButton)findViewById(R.id.buttonScatta);
buttonPicture.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mCamera.takePicture(null, null, jpegCallback);
}
});
mSurfaceView = (SurfaceView)findViewById(R.id.surfaceViewCamera);
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte [] _data, Camera _camera){
mCamera.startPreview();
}
};
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
if(mPreviewRunning)
mCamera.stopPreview();
Camera.Parameters par = mCamera.getParameters();
par.setPreviewSize(width, height);
ArrayList<Size> list = (ArrayList<Size>)par.getSupportedPictureSizes();
int picture_width = list.get(list.size() - 1).width;
int picture_height = list.get(list.size() - 1).height;
par.setPictureSize(picture_width, picture_height);
par.setJpegQuality(80);
mCamera.setParameters(par);
try {
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
mPreviewRunning = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
mCamera = Camera.open();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
mCamera.stopPreview();
mPreviewRunning = false;
mCamera.release();
}
}
Codice:
10-29 15:23:18.413: E/AndroidRuntime(287): FATAL EXCEPTION: main
10-29 15:23:18.413: E/AndroidRuntime(287): java.lang.RuntimeException: Unable to start activity ComponentInfo{your.Mobile/your.Mobile.FotocameraActivity}: java.lang.NullPointerException
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.os.Looper.loop(Looper.java:123)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-29 15:23:18.413: E/AndroidRuntime(287): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 15:23:18.413: E/AndroidRuntime(287): at java.lang.reflect.Method.invoke(Method.java:521)
10-29 15:23:18.413: E/AndroidRuntime(287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-29 15:23:18.413: E/AndroidRuntime(287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-29 15:23:18.413: E/AndroidRuntime(287): at dalvik.system.NativeStart.main(Native Method)
10-29 15:23:18.413: E/AndroidRuntime(287): Caused by: java.lang.NullPointerException
10-29 15:23:18.413: E/AndroidRuntime(287): at your.Mobile.FotocameraActivity.onCreate(FotocameraActivity.java:33)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-29 15:23:18.413: E/AndroidRuntime(287): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-29 15:23:18.413: E/AndroidRuntime(287): ... 11 more
Vi ringrazio tanto per l'aiuto. Ciao! |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Jun 2012
Messaggi: 16
|
possibile che nessuno può aiutarmi?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:24.



















