2016-05-20 7 views
0

私は、カメラで撮影した写真をAndroidアプリでギャラリーにしたいと考えています。私は意図とマニフェストの許可を得てカメラのアクティビティを持っていますが、写真は1枚しか撮れません。ここに私のコードだ:Androidでフォトギャラリーを作成するには?

MyCameraAction.java

package com.example.android.navigationdrawer; 

import android.content.Intent; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageView; 

public class MyCameraActivity extends AppCompatActivity { 


    private static final int CAMERA_REQUEST = 1888; 
    private ImageView imageView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.content_my_camera); 
     this.imageView = (ImageView)this.findViewById(R.id.imageView1); 
     ImageView photoButton = (ImageView) this.findViewById(R.id.button1); 
     photoButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(cameraIntent, CAMERA_REQUEST); 
      } 
     }); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      imageView.setImageBitmap(photo); 
     } 
    } 

} 

content_my_camera.xml(非常にシンプルな、唯一のボタンとImageViewの)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <ImageView android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_menu_camera" 
     android:layout_gravity="center_horizontal" 
     android:clickable="true" 
     android:contentDescription="@string/photoButtonUse" 
     /> 

    <ImageView android:id="@+id/imageView1" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:contentDescription="@string/ImageViewGallery" 
     /> 

</LinearLayout> 
+0

イメージビューをdrawableリターンに設定していますが、イメージビューは1つのみです。イメージビューを動的に画面に追加する必要があります。 –

+0

どうすればいいですか? @paul_hundal – Adir

+0

また、私はアプリを再オープンしたときに写真がそこにあるようにしたいのですが、どうすればいいですか? @paul_hundal – Adir

答えて

0

私は解決策を見つけた、私はコードを投稿します:

MyCameraActivity

import android.content.Intent; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 

public class MyCameraActivity extends AppCompatActivity { 


    private static final int CAMERA_REQUEST = 1888; 



    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.content_my_camera); 
     ImageView photoButton = (ImageView) this.findViewById(R.id.button1); 


     //OnClick camera button 
     photoButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(cameraIntent, CAMERA_REQUEST); 
      } 
     }); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 

      //Cast LinearLayout of .xml 
      LinearLayout CamaraLayout = (LinearLayout) findViewById(R.id.CameraLayout); 

      //Create imageView to put Bitmap 
      ImageView imageView = new ImageView(this); 

      //Adding the Bitmap 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      imageView.setImageBitmap(photo); 

      //Set the imageView to layout 
      CamaraLayout.addView(imageView); 

      //Show layout 

     } 
    } 

} 

イメージを作成すると、新しいImageViewが作成され、ビットマップに取り込まれたイメージが設定されます。

関連する問題