2012-05-10 5 views
1

Эй, ребята, я просто добавил функцию для пользователя, чтобы иметь возможность снимать картинку из моего приложения, и я правильно настроил настройку камеры. [По-моему, так по крайней мере]. Я настраиваю кнопку в файле «xml» и соответствующим образом настраиваю намерение и кнопку в файле «class/java». При тестировании приложения кнопка работает и загружает собственную камеру Android 4.0.4, и делает снимок отлично, но когда я нажимаю кнопку «галочка» [кнопка «ok» в более старых версиях Android], она не возвращается к приложение. Камера по-прежнему поддерживает все функции, которые она не замерзает или что-то еще. Я все же могу выбрать, чтобы переснять изображение или выбрать отмену; кнопка «OK/checkmark» не работает.Кнопка «OK» камеры не работает


public class XXXXXXXXXXX extends Activity 
{ 

    Button button; 
    String path; 
    boolean taken; 

    static final String PHOTO_TAKEN = "photo_taken"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.XXXXXXXX); 

     button = (Button) findViewById(R.id.take_picture); 
     button.setOnClickListener(new ButtonClickHandler()); 
     path = Environment.getExternalStorageDirectory() + "/images/testing-cam.jpg"; 

    } 


    public class ButtonClickHandler implements View.OnClickListener 
     { 
      public void onClick(View view) 
      { 
       Log.i("Button", ".onClick()"); 
       startCameraActivity(); 
      } 
     } 

     protected void startCameraActivity() 
     { 
      Log.i("Start", "CameraActivity()"); 
      File file = new File(_path); 
      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 0: 
      break; 

     case -1: 
      onPhotoTaken(); 
      break; 
    } 
} 

protected void onPhotoTaken() 
{ 
    taken = true; 

    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = 4; 

    Bitmap bitmap = BitmapFactory.decodeFile(_path, options); 

    image.setImageBitmap(bitmap); 

    field.setVisibility(View.GONE); 
} 

Если какой-либо другой код нужен, я могу предоставить, но это основной код камеры я использовал в моем приложении.

+0

У вас есть метод OnActivityResult() в вашей деятельности? Если это так, пожалуйста, – FoamyGuy

+0

Просто отправил его. – woody

+0

Добавьте некоторые операторы журнала в метод OnActivityResult, чтобы увидеть, вернется ли камера к ней или нет. – FoamyGuy

ответ

6

Вы использовали это в MainFest

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

вы можете следить за этим ссылки также.

http://www.vogella.com/articles/AndroidCamera/article.html

http://marakana.com/forums/android/examples/39.html

+0

Да все это в манифесте! Спасибо за ссылку, я сейчас проверяю ее. – woody

+0

Если это поможет затем ответить – Furqi

0

Привет вы можете использовать мой полный код для solution.this ссылка: - Imp Link.

2

Вы забыли создать каталог, в котором вы пишете изображение. Добавьте эту строку перед созданием файлового объекта.

File path = new File(Environment.getExternalStorageDirectory().getPath() + "/images/"). 
path.mkdirs(); 
Смежные вопросы