日 用 用 面 示 用 用 方
用
用 用 用 用 用 用 面 用 <ac$vity android:name=.camerapreviewac$vity" android:label="@string/app_name" android:screenorienta$on="landscape"> 生 目
用 面 示 面 大 方 面 示 用 面 用 getwindow().addflags(windowmanager.layoutparams.flag_fullscreen); 面 面 示 行行 面 面 示 行行 面 requestwindowfeature(window.feature_no_title); 面 面 示 用 面 示 自 生
用 package jp.ac.uot.sample15; import android.app.ac8vity; import android.os.bundle; public class CameraPreviewAc8vity extends Ac8vity { /** Called when the ac.vity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); CameraPreview view = new CameraPreview(this); setcontentview(view); protected void onresume(){ super.onresume(); protected void onstop(){ super.onstop(); public void ondestroy(){ super.ondestroy();
用 package jp.ac.uot.sample15; import android.content.context; import android.hardware.camera; import android.view.surfaceholder; import android.view.surfaceview; public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback{ private Camera camera; public CameraPreview(Context context) { super(context); // TODO Auto- generated constructor stub getholder().addcallback(this); getholder().settype(surfaceholder.surface_type_push_buffers); public void surfacechanged(surfaceholder holder, int format, int width, int height) { // TODO Auto- generated method stub Camera.Parameters parameters = camera.getparameters(); parameters.setpreviewsize(width, height); camera.setparameters(parameters); camera.startpreview();
用 public void surfacecreated(surfaceholder holder) { // TODO Auto- generated method stub camera = Camera.open(); try { camera.setpreviewdisplay(holder); catch (Excep8on e) { e.printstacktrace(); public void surfacedestroyed(surfaceholder holder) { // TODO Auto- generated method stub camera.release(); camera = null;
用 <?xml version="1.0" encoding="u@- 8"?> <manifest xmlns:android="hfp://schemas.android.com/apk/res/android" package="jp.ac.uot.sample15" android:versioncode="1" android:versionname="1.0" > <uses- sdk android:minsdkversion="8" /> <uses- permission android:name="android.permission.camera"/> <applica.on android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <ac.vity android:name=".camerapreviewacwvity" android:label="@string/app_name" > <intent- filter> <ac.on android:name="android.intent.acwon.main" /> <category android:name="android.intent.category.launcher" /> </intent- filter> </ac.vity> </applica.on> </manifest>
用 行行
生 目 面 示 行行 面 一 行行 行行
目 目 目 行行 十 目 行行 private Camera.PictureCallback mpicturelistener =new Camera.PictureCallback() { public void onpicturetaken(byte[] data, Camera camera) { ; 示 ContentValues values = new ContentValues(); ContentResolver contentresolver = context.getcontentresolver(); values.put(images.media.mime_type, "image/jpeg"); values.put("_data", imgname); contentresolver.insert(mediastore.images.media.external_content_uri, values);
package ac.jp.uot.sample16; import android.app.ac.vity; import android.os.bundle; public class PhotoShootAc.vity extends Ac.vity { /** Called when the ac.vity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); CameraPreview view = new CameraPreview(this); setcontentview(view); protected void onresume(){ super.onresume(); protected void onstop(){ super.onstop(); public void ondestroy(){ super.ondestroy();
package ac.jp.uot.sample16; import java.io.file; import java.io.fileoutputstream; import android.content.contentresolver; import android.content.contentvalues; import android.content.context; import android.hardware.camera; import android.os.environment; import android.provider.mediastore; import android.provider.mediastore.images; import android.view.mo8onevent; import android.view.surfaceholder; import android.view.surfaceview; import android.widget.toast; public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback{ private Camera camera; private Boolean bool = true; private Context context; public CameraPreview(Context context) { super(context); // TODO Auto- generated constructor stub this.context = context; getholder().addcallback(this); getholder().settype(surfaceholder.surface_type_push_buffers);
public void surfacechanged(surfaceholder holder, int format, int width, int height) { // TODO Auto- generated method stub Camera.Parameters parameters = camera.getparameters(); camera.setparameters(parameters); camera.startpreview(); public void surfacecreated(surfaceholder holder) { // TODO Auto- generated method stub camera = Camera.open(); try { camera.setpreviewdisplay(holder); catch (Excep8on e) { e.printstacktrace(); public void surfacedestroyed(surfaceholder holder) { // TODO Auto- generated method stub camera.release(); camera = null; public boolean ontouchevent(mo8onevent event) { if (event.getac8on() == Mo8onEvent.ACTION_DOWN) { if (camera!= null && bool) { bool = false; camera.takepicture(shuferlistener, null, jpeglistener);
public void surfacechanged(surfaceholder holder, int format, int width, int height) { // TODO Auto- generated method stub Camera.Parameters parameters = camera.getparameters(); camera.setparameters(parameters); camera.startpreview(); public void surfacecreated(surfaceholder holder) { // TODO Auto- generated method stub camera = Camera.open(); try { camera.setpreviewdisplay(holder); catch (Excep8on e) { e.printstacktrace(); public void surfacedestroyed(surfaceholder holder) { // TODO Auto- generated method stub camera.release(); camera = null;
public boolean ontouchevent(mo8onevent event) { if (event.getac8on() == Mo8onEvent.ACTION_DOWN) { if (camera!= null && bool) { bool = false; camera.takepicture(shuferlistener, null, jpeglistener); return true; private Camera.ShuXerCallback shuxerlistener = new Camera.ShuXerCallback() { public void onshuxer() { // TODO Auto- generated method stub ;
private Camera.PictureCallback jpeglistener =new Camera.PictureCallback() { public void onpicturetaken(byte[] data, Camera camera) { if (data!= null) { if(!sdcardwriteready()){ Toast.makeText(context, "SDCARD ", Toast.LENGTH_SHORT).show(); bool = true; camera.startpreview(); return; FileOutputStream fos = null; File file = new File(Environment.getExternalStorageDirectory().getPath() + "/cmr/"); if(!file.exists()){ file.mkdir(); String imgname = Environment.getExternalStorageDirectory().getPath() + "/cmr/" + System.currentTimeMillis() +".jpg"; try { fos = new FileOutputStream(imgName); fos.write(data); fos.close(); ContentValues values = new ContentValues(); ContentResolver contentresolver = context.getcontentresolver(); values.put(images.media.mime_type, "image/jpeg"); values.put("_data", imgname);
try { contentresolver.insert(mediastore.images.media.external_content_uri, values); catch(excep8on e){ Toast.makeText(context, " ", Toast.LENGTH_SHORT).show(); e.printstacktrace(); catch (Excep8on e) { Toast.makeText(context, "", Toast.LENGTH_SHORT).show(); e.printstacktrace(); bool = true; camera.startpreview(); else{ Toast.makeText(context, " ", Toast.LENGTH_SHORT).show(); bool = true; camera.startpreview(); ; private boolean sdcardwriteready(){ String state = Environment.getExternalStorageState(); return (Environment.MEDIA_MOUNTED.equals(state));
生 目 行行 用 用 用 生 用
package jp.ac.uot.sample17; import android.app.ac8vity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.window; import android.view.windowmanager; public class AutoFocus extends Ac8vity { private sta8c final int MENU_AUTOFOCUS = Menu.FIRST + 1; private AutoFocusPreview view; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); getwindow().addflags(windowmanager.layoutparams.flag_fullscreen); requestwindowfeature(window.feature_no_title); view = new AutoFocusPreview(this); setcontentview(view);
public boolean oncreateop8onsmenu(menu menu) { menu.add(menu.none, MENU_AUTOFOCUS, Menu.NONE, getresources().getstring (R.string.auto_focus)); return super.oncreateop8onsmenu(menu); public boolean onprepareop8onsmenu(menu menu) { return super.onprepareop8onsmenu(menu); public boolean onop8onsitemselected(menuitem item) { boolean rc = true; switch (item.getitemid()) { case MENU_AUTOFOCUS: view.autofocus(); break; default: rc = super.onop8onsitemselected(item); break; return rc;
AutoFocusPreview package jp.ac.uot.sample17; import java.io.fileoutputstream; import java.io.ioexcep8on; import android.content.context; import android.hardware.camera; import android.hardware.camera.autofocuscallback; import android.hardware.camera.picturecallback; import android.hardware.camera.shuxercallback; import android.u8l.log; import android.view.mo8onevent; public class AutoFocusPreview extends CameraPreview { AutoFocusPreview(Context context) { super(context); void autofocus() { camera.autofocus(new AutoFocusCallback() { public void onautofocus(boolean success, final Camera camera) { ShuXerCallback shuxer = new ShuXerCallback() { public void onshuxer() { Log.d("TEST", "onshuxer"); ; PictureCallback raw = new PictureCallback() {
AutoFocusPreview PictureCallback raw = new PictureCallback() { public void onpicturetaken(byte[] data, Camera camera) { Log.d("TEST", "onpicturetaken: raw: data=" + data); ; PictureCallback jpeg = new PictureCallback() { public void onpicturetaken(byte[] data, Camera camera) { Log.d("TEST", "onpicturetaken: jpeg: data=" + data); FileOutputStream fos = null; try { fos = new FileOutputStream("/sdcard/test.jpg"); fos.write(data); catch (IOExcep8on e) { e.printstacktrace(); finally { if (fos!= null) { try { fos.close(); catch (IOExcep8on e) { e.printstacktrace(); ;
AutoFocusPreview ); void cancelautofocus() { camera.cancelautofocus(); camera.takepicture(shuxer, raw, jpeg); new Thread() { public void run() { try { Thread.sleep(3000); catch (InterruptedExcep8on e) { camera.startpreview();.start(); public boolean ontouchevent(mo8onevent event) { autofocus(); return true;
生 目 ff 用 ff 色 用 List<String> supported = params.getsupportedscenemodes();
ff package jp.ac.uot.sample18; import android.app.ac8vity; import android.os.bundle; import android.view.window; import android.view.windowmanager; public class EffectSemngAc8vity extends Ac8vity { private EffectPreview view; /** Called when the ac8vity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); getwindow().addflags(windowmanager.layoutparams.flag_fullscreen); requestwindowfeature(window.feature_no_title); view = new EffectPreview(this); setcontentview(view);
ff package jp.ac.uot.sample18; import android.content.context; import android.hardware.camera; import android.u8l.log; import android.view.mo8onevent; import android.view.surfaceholder; public class EffectPreview extends AutoFocusPreview { private boolean isusingcamera; EffectPreview(Context context) { super(context);
public boolean ontouchevent(mo8onevent event) { ff public void surfacecreated(surfaceholder holder) { super.surfacecreated(holder); if (camera!= null) { Camera.Parameters params = camera.getparameters(); //params.setan8banding(camera.parameters.antibanding_auto); //params.setcoloreffect(camera.parameters.effect_mono); //params.setflashmode(camera.parameters.flash_mode_auto); //params.setfocusmode(camera.parameters.focus_mode_fixed); //params.setscenemode(camera.parameters.scene_mode_auto); //params.setwhitebalance(camera.parameters.white_balance_auto); camera.setparameters(params); public void surfacedestroyed(surfaceholder holder) { if (isusingcamera) { if (camera!= null) { camera.stoppreview(); else { super.surfacedestroyed(holder);
ff public boolean ontouchevent(mo8onevent event) { Log.d("TEST", "x:" + event.getx() + " y:" + event.gety() + " w:" + getwidth() + " h:" + getheight()); autofocus(); return true;