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


[Source] Ä«¸Þ¶ó Á¦¾î
8³â Àü
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>

ÃßõÃßõ : 236 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,106
[Source] Åõ¸íÀ©µµ¿ì
1,105
[Source] WebView¸¦ ÀÌ¿ëÇؼ­, ÀÌÀü À¥ÆäÀÌÁö·Î À̵¿
1,104
[Source] ŸÀÌƲ¹ÙÀÇ ±ÛÀÚ»ö º¯°æ
1,103
[Source] Splash Screen
1,102
[Source] À̹ÌÁöÆÄÀÏ ´Ù¿î·Îµå
1,101
[Source] URLÀ» ÅëÇÑ À̹ÌÁö µå·ÎÀ×
1,100
[Source] PopupWindow »ç¿ë¿¹
1,099
[Source] WebView »ç¿ë¿¹ (loadUrl, loadData)
1,098
µ¿ÀûÀ¸·Î LinearLayout È­¸é¿¡ À̹ÌÁö Ãß°¡Çϱâ2
1,097
[Source] µ¿ÀûÀ¸·Î LinearLayout È­¸é¿¡ À̹ÌÁö Ãß°¡Çϱâ
[Source] Ä«¸Þ¶ó Á¦¾î
1,095
[Source] °£´ÜÇÑ MP3 Ç÷¹ÀÌ¾î ¿¹Á¦
1,094
[Source] Æù³» À½¾Ç ÆÄÀÏ ¸ñ·Ï Àоî¿À±â
1,093
[Source] MP3 ÆÄÀÏ ½ÇÇàÇϱâ
1,092
[android] ¹Ìµð¾î Ç÷¹À̾î·Î ¿Àµð¿À ºñµð¿À Àç»ýÇϱâ
1,091
µµ½º À©µµ ³×Æ®¿öÅ© ¸í·É¾î
1,090
[¾Èµå·ÎÀ̵å]ÆÄÀÏ ¿¬°á - Intent setDataAndType(Uri , MimeType)
1,089
±¸±Û °Ë»ö ÆÁ (±¸±Û¸µ, ±¸±Û °Ë»ö¹æ¹ý)
1,088
Windows 8 - Windows ±¸¼º ¿ä¼Ò ÀúÀå¼Ò¿¡¼­ ÆÄÀÏ ¼Õ»ó °Ë»ç
1,087
ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 8 Á¤½Ä ´Ù¿î·Îµå
1,086
À©µµ¿ìÁî Windows 8, 8.1 ÀÇ ¹öÀüº° ei.cfg ÆÄÀÏ »ý¼ºÇÏ´Â ¹ý
1,085
Windows ¼³Ä¡ ÇÁ·Î±×·¥ ¹öÀü ±¸¼º ¹× Á¦Ç° ID ÆÄÀÏ(EI.cfg ¹× PID.txt)
1,084
ÀÌÁß ºÎÆà PC¿¡ ºÎÆà ¸Þ´º ¼³Á¤ ¶Ç´Â º¹±¸
1,083
ÆäÀ̽ººÏ µ¿¿µ»ó°ú À¯Æ©ºê µ¿¿µ»ó ´Ù¿î¹Þ´Â ¹æ¹ý
1,082
Å©·Ò(Chrome)¿¡¼­ DNS Áö¿ì±â - chrome dns flush
1,081
IE10, IE11 ¿¡¼­ Flash °¡ Á¤»óÀûÀ¸·Î ³ªÅ¸³ªÁö ¾ÊÀ» ¶§...
1,080
HTML5 ¾Ö´Ï¸ÞÀÌ¼Ç Á¦ÀÛ ÇÁ·Î±×·¥
1,079
¾µ¸¸ÇÑ jquery Ç÷¯±×ÀÎ
1,078
Windows ´ÜÃàÅ°
1,077
Internet ExplorerÀÇ ÀÛµ¿ÀÌ ÁßÁöµÇ¾ú½À´Ï´Ù-ÇØ°á ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.