2012-04-10 18 views
0

Wenn die Kamera geladen ist, dann möchte ich die Kamera nur bestimmten Bereich zu öffnen. Nicht mit Vollbild zu öffnen. enter image description hereAndroid Kamera Bildschirmgröße

Hier in diesem schwarzen Bereich zeigen nur Kamera anzeigen.Wie kann ich das tun?

Ich schrieb Code wie folgt ..

public class CameraActivity extends Activity{ 

private static final int CAMERA_PIC_REQUEST = 15; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    getParent().getParent().setTitle("Image Capture"); 

    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
    onActivityResult(15, 0, cameraIntent); 



} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == CAMERA_PIC_REQUEST) { 
     } 
} 

Bitte mir jemand von diesem Problem helfen.

Vielen Dank im Voraus ..

+2

helfen kann, ist die [Camera API Demo] (http: // marakana.com/forums/android/examples/39.html) –

Antwort

3

Versuchen Sie, diese Kamera Activity Code in Ihrer Anwendung

protected void startCameraActivity() { 
     selectedImagePath = Environment.getExternalStorageDirectory() + "/default" + image_count+ ".jpg"; 
     image_count++; 
     File file = new File(selectedImagePath); 
     Uri outputFileUri = Uri.fromFile(file); 
     Intent intent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(intent, 0); 
     } 
     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch (resultCode) { 
     case -1: 
     onPhotoTaken(); 
     break; 
     } 
     } 
     protected void onPhotoTaken() { 
     _taken = true; 
     bitmap = decodeFile(); 
     img_logo.setImageBitmap(bitmap); 

     } 
     @Override 
     protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     if (savedInstanceState.getBoolean(PHOTO_TAKEN)) { 
     onPhotoTaken(); 
     } 
     } 
     @Override 
     protected void onSaveInstanceState(Bundle outState) { 
     outState.putBoolean(PHOTO_TAKEN, _taken); 
     } 
     private Bitmap decodeFile() { 
     try { 
     // decode image size 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     BitmapFactory.decodeStream(new FileInputStream(selectedImagePath), null, o); 
     final int REQUIRED_SIZE = 70; 
     int width_tmp = o.outWidth, height_tmp = o.outHeight; 
     int scale = 1; 
     while (true) { 
     if (width_tmp/2 < REQUIRED_SIZE 
     || height_tmp/2 < REQUIRED_SIZE) 
     break; 
     width_tmp /= 2; 
     height_tmp /= 2; 
     scale++; 
     } 
     // decode with inSampleSize 
     BitmapFactory.Options o2 = new BitmapFactory.Options(); 
     o2.inSampleSize = scale; 
     return BitmapFactory.decodeStream(new FileInputStream(selectedImagePath), null, o2); 
     } catch (FileNotFoundException e) { 
     } 
     return null; 
     } 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if(keyCode==KeyEvent.KEYCODE_BACK) 
      { 
       finish(); 
      } 
      return super.onKeyDown(keyCode, event); 
     } 

ich das hoffen hier u