2010-09-23 19 views
10

Java'da bir görüntü dosyası alan ve görüntüyü işleyen bir program yazdım. Şimdi fotoğraf makinesine erişmeye çalışıyorum, böylece fotoğrafı çekebiliyor ve görüntü işleme programına verebiliyorum, ancak bunu nasıl yapacağım konusunda kaydım. Kamera sınıfı ve izinleri nasıl sormanız gerektiği ile ilgili bilgileri okudum, ancak fotoğrafı nasıl çekeceğimi bilmiyorum. Nerede başlayacağımı veya iyi bir öğreticiyi bildikleri konusunda herhangi bir ipucu varsa, bunu gerçekten takdir ediyorum. Teşekkürler!Android telefonlarda kameraya nasıl erişirim?

cevap

7

tarihinde en iyi arkadaşınız olduğunu, burada bazı öğreticiler şunlardır:

Using the camera

How-To Program The Google Android Camera To Take Pictures

Take Picture from Camera Emulator

camera

İlk düzenleme AndroidManifest.xml, kamera iznini ekleyin :

<uses-permission android:name=”android.permission.CAMERA”/> 

Kamera hizmeti açılıp kapatılması etti: Kamera ayarlarını yapabilirsiniz

Camera camera = Camera.open(); 
//Do things with the camera 
camera.release(); 

, örneğin:

private void takePicture() { 
    camera.takePicture(shutterCallback, rawCallback, jpegCallback); 
} 

ShutterCallback shutterCallback = new ShutterCallback() { 
    public void onShutter() { 
    // TODO Do something when the shutter closes. 
    } 
}; 

PictureCallback rawCallback = new PictureCallback() { 
    public void onPictureTaken(byte[] _data, Camera _camera) { 
    // TODO Do something with the image RAW data. 
    } 
}; 

PictureCallback jpegCallback = new PictureCallback() { 
    public void onPictureTaken(byte[] _data, Camera _camera) { 
    // TODO Do something with the image JPEG data. 
    } 
}; 

Do:

Camera.Parameters parameters = camera.getParameters(); 
parameters.setPictureFormat(PixelFormat.JPEG); 
camera.setParameters(parameters); 

Fotoğraf çekmek için Kamera düzenini ana düzeninize eklemeyi unutmayın xml.

0

en önemli yöntemdir: Bir fotoğraf çekildiğinde

Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() { 
    public void onPictureTaken(byte[] imageData, Camera c) { 

    } 
}; 

Bu yöntem denir. İşte Bu konuyla ilgili iyi bir öğretici: http://www.brighthub.com/mobile/google-android/articles/43414.aspx

hmm ... veya belki de bu bir ihtiyaç:

Camera mCamera; 
... 
public void onClick(View arg0) { 
    mCamera.takePicture(null, mPictureCallback, mPictureCallback); 
} 

İşte bir örnek daha verelim: http://snippets.dzone.com/posts/show/8683

6

tarafından birçok yolu vardır u ben kısa ve basit u örnek kod burada ... ur dahili kamera görüntüsünü açar niyet arayabilir tıklayın Düğmesi etmektir ...

olduğunu düşünüyorum daha iyi bir yol biri .... yapabilirsiniz
public class CameraDemo extends Activity { 

Button ButtonClick; 
int CAMERA_PIC_REQUEST = 2; 
int TAKE_PICTURE=0; 
Camera camera; 


/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ButtonClick =(Button) findViewById(R.id.Camera); 
    ButtonClick.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View view) 
     { 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
     } 
    });   
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == CAMERA_PIC_REQUEST) 
    { 
     Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
     ImageView image =(ImageView) findViewById(R.id.PhotoCaptured); 
     image.setImageBitmap(thumbnail); 
    } 
    else 
    { 
     Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG); 
    } 

} 
} 

.............................................. ................

u herhangi bir sorun varsa sormaya çekinmeyin, bunun üzerinden gidin ve ....

rakesh

özelleştirilmiş kamera aktiviteyi oluşturma) Niyet

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image 
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name 

// start the image capture Intent 
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

2 kullanılması android uygulaması

1) için fotoğraf çekmek için iki yöntem vardır

İlgili konular