0

次のコードを使用して、ボタンが押されたときにカメラを使用して写真を撮ります。

ただし、コードを実行すると、ボタンが押された後にのみカメラアプリが起動し、写真は撮影されません。なぜこれが機能しないのですか?

ボタンを押したときに写真を撮り、ギャラリーアプリで表示できるSDカードに保存したかったのです。

public class demo extends Activity 
{
Button ButtonClick;
int CAMERA_PIC_REQUEST = 1337; 


@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);
        // request code

        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

    }
  });

 }

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
   if( requestCode == 1337)
   {
   //  data.getExtras()
      Bitmap thumbnail = (Bitmap) data.getExtras().get("data");          
   }
   else 
   {
    Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG).show();
   }
    super.onActivityResult(requestCode, resultCode, data);
 }
}
4

1 に答える 1

0

ええ、これはデフォルトの動作です。2つの方法があります。

1)カメラアプリのインテントを開始し(これを実行しています)、カメラアプリを介して写真をクリックします(デフォルトのカメラと同様に、カメラ撮影ボタンまたはハードキーをクリックします)。

2)CameraクラスとSurfaceviewを使用して、カスタムカメラビューを作成します。それはあなたがカメラでやりたいことを何でもするための完全な制御をあなたに与えるでしょう(しかし制限されています)

于 2013-01-20T08:25:45.877 に答える