ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î

[Source] Ä«¸Þ¶ó Á¦¾î
7³â Àü
CameraEx.java

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

//Ä«¸Þ¶óÀÇ Á¦¾î
public class CameraEx extends Activity {
    //¾ÖÇø®ÄÉÀÌ¼Ç ÃʱâÈ­
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new CameraView(this));
    }
}



CameraView.java

import android.content.Context;
import android.hardware.Camera;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.FileOutputStream;

//Ä«¸Þ¶óÀÇ Á¦¾î
public class CameraView extends SurfaceView
    implements SurfaceHolder.Callback {
    private SurfaceHolder holder;//Ȧ´õ
    private Camera        camera;//Ä«¸Þ¶ó
    
    //»ý¼ºÀÚ
    public CameraView(Context context) {
        super(context);
        
        // SurfaceHolder »ý¼º
        holder=getHolder();
        holder.addCallback(this);
        
        // Push Buffer ÁöÁ¤
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }

    //Surface »ý¼º½Ã È£Ãâ
    public void surfaceCreated(SurfaceHolder holder) {
        //Ä«¸Þ¶óÀÇ ÃʱâÈ­
      try {
            camera=Camera.open();
            camera.setPreviewDisplay(holder);
      } catch (Exception e) {
      }
    }

    //Surface º¯°æ À̺¥Æ® ó¸®
    public void surfaceChanged(SurfaceHolder holder,int format,int w,int h) {
        // Ä«¸Þ¶óÀÇ ¸®ºä °³½Ã
        Camera.Parameters parameters=camera.getParameters();
        parameters.setPreviewSize(w,h);
        camera.setParameters(parameters);
        camera.startPreview();
    }    
    
    //Surface ÇØÁ¦ À̺¥Æ® ó¸®
    public void surfaceDestroyed(SurfaceHolder holder) {
        //Ä«¸Þ¶ó ÇÁ¸®ºäÀÇ °³½Ã
        camera.setPreviewCallback(null);
        camera.stopPreview();
        camera.release();
        camera=null;
    }
    //ÅÍÄ¡ À̺¥Æ® ó
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction()==MotionEvent.ACTION_DOWN) {
            takePicture();
            camera.startPreview();
        }
        return true;
    }
    
    //»çÁø ÃÔ¿µ
    public void takePicture() {
        //Ä«¸Þ¶óÀÇ ½ºÅ©¸°¼¦ Ãëµæ
        camera.takePicture(null,null,new Camera.PictureCallback() {
            public void onPictureTaken(byte[] data,Camera camera) {
                try {
                    data2sd(getContext(),data,"test.jpg");
                } catch (Exception e) {
                    android.util.Log.e("",""+e.toString());
                }
            }
        });
    }

    //¹ÙÀÌÆ® µ¥ÀÌÅÍ -> SD Ä«µå
    private static void data2sd(Context context,
        byte[] w,String fileName) throws Exception {
        //SDÄ«µåÀÇ µ¥ÀÌÅÍ ÀúÀå
        FileOutputStream fos=null;
        try {
            fos=new FileOutputStream("/sdcard/"+fileName);
            fos.write(w);
            fos.close();
        } catch (Exception e) {
            if (fos!=null) fos.close();
            throw e;
        }
    }
}

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.npaka.cameraex"
      android:versionCode="1"
      android:versionName="1.0.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".CameraEx"
                  android:label="@string/app_name" android:screenOrientation="landscape">
            <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" />
</manifest>

ÃßõÃßõ : 229 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,076
Jscript 5.8 ¿ë º¸¾È ¾÷µ¥ÀÌÆ®(KB971961) ´Ù¿î·Îµå ¸µÅ© ÀÔ´Ï´Ù
1,075
Internet Explorer Ãß°¡ ±â´É ¹®Á¦ ÇØ°á
1,074
Internet Explorer ±âº» ¼³Á¤À» º¹±¸ (°³ÀÎ ¼³Á¤ »èÁ¦ ¿É¼ÇÀ» »ç¿ë)
1,073
½ºÅ¸ÀϽÃÆ®(css)¿¡¼­ A:link, A:visited, A:active, A:hover ¼³¸í
1,072
META TagÀÇ Á¾·ù¿Í »ç¿ë¹æ¹ý
1,071
ȨÆäÀÌÁö ·Îº¿ ¼³Á¤ ¹æ¹ý
1,070
·¹ÀÌ¾î »ó´Ü ¹«Á¶°Ç°íÁ¤
1,069
[jquery] alert¹Ú½º ¸»°í ·¹ÀÌ¾î ¹Ú½º¸¦ ¶ç¿öº¸¼¼¿ä
1,068
À©µµ¿ì ¾ÏÈ£ ºÐ½ÇÇßÀ»¶§ ..
1,067
[Windows] ÀÛ¾÷°ü¸®ÀÚ ½ÇÇà ÆÄÀÏ ÃÑÁ¤¸®
1,066
Áö±Ý À©µµ¿ì 7 â ¸ð¾çÀÌ À©µµ¿ì °íÀüÀ¸·Î ³ª¿Ã¶§..
1,065
°£´ÜÇÑ ¸í·É¾î·Î Á»ºñ PC È®ÀÎÇϱâ
1,064
Internet Explorer ȣȯ¼º ·»´õ¸µ ¸ðµå·Î º¸±â
1,063
div ·¹À̾ƿô Àâ±â!
1,062
Çϵåµð½ºÅ© ÆÄƼ¼Ç ¼û±â±â
1,061
¹ÙÀÌ¿À½º ºÎÆ® ÇÁ·Î¼¼½º
1,060
À©µµ¿ì XPÀÇ ºÎÆà °úÁ¤
1,059
ÇÁ·Î½ÃÀú ½ÃÀÛ ÁöÁ¡ _except_handler4_commonÀ»(¸¦) DLL msvcrt.dll¿¡¼­ ãÀ» ¼ö ¾ø½À´Ï´Ù
1,058
È°¼ºÆÄƼ¼ÇÀ» ºñÈ°¼ºÆÄƼ¼ÇÀ¸·Î º¯°æÇÏ´Â ¹æ¹ý
1,057
windows XP ÀÚµ¿½ÇÇà ²ô±â
1,056
À¯ÇØÇÑ »çÀÌÆ® ±¤°í¸Þ¼¼Áö°¡ ³ª¿ÀÁö ¾Ê°Ô Çϱâ
1,055
Á¦°¡ Âü°í·Î ÇÏ´Â ¹èÄ¡ÆÄÀÏ ÀÛ¼º¹ýµîÀÔ´Ï´Ù
1,054
À©µµ¿ì XP °øÀ¯Æú´õ ¾ÏÈ£°É±â
1,053
¹ÙÅÁÈ­¸éÀ» Dµå¶óÀ̺ê·Î!~!!!!!!
1,052
½Ã½ºÅÛÆÄÀÏ È®ÀåÀÚ!!
1,051
À¥Ç¥ÁØÀ» À§ÇÑ <iframe></iframe>
1,050
[CSS/À¥Ç¥ÁØ] DOCTYPE ¼±¾ð
1,049
CSS Àý´ë À§Ä¡¸¦ »ç¿ëÇÑ ÇÁ·¹ÀÓ È¿°ú
1,048
Recommended Doctype Declarations to use in your Web document
1,047
CSS ·¹À̾ƿô ÅÛÇø´ »çÀÌÆ®
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.