2013-01-28 2 views
0

내 애플 리케이션과 이미지 갤러리를 통합 안드로이드에서 애플 리케이션을 만들려고합니다.
다음은 내 앱이 수행하는 작업입니다.안드로이드 애플 리케이션 갤러리에서 이미지를 선택하는 방법

1. 첫 번째 화면에는 이미지보기가있는 사용자와 이미지를로드하는 버튼이 표시됩니다.
2. "그림로드"버튼을 클릭하면 사용자가 Android 이미지 갤러리로 리디렉션되어 하나의 이미지를 선택할 수 있습니다.
3. 이미지를 선택하면 주 화면의 이미지보기에 이미지가로드됩니다. 나는 다음과 같은 작업을 수행 할 내 응용 프로그램을 필요로이 세 가지 위에서 언급 한 작업에 추가

: 이미지를 선택 4.When 내가 더 "부하 그림"갈 때

,이 메인 화면에 표시됩니다 옵션 이전에 선택한 이미지가 사라져 버렸지 만 이전에 선택한 이미지를 숨기지 않으려면 내 앱이 필요합니다. 메인 스크린의 가로 스크롤 목록에 표시되는 모든 선택된 이미지는 사실 수평 스크롤 목록에서 선택합니다. 메인 화면에 표시됩니다. 이 내 XML 코드

은 다음과 같습니다

main.xml에 :

<?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/imgView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"></ImageView> 
    <Button 
     android:id="@+id/buttonLoadPicture" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:text="Load Picture" 
     android:layout_gravity="center"></Button> 
</LinearLayout> 

자바 코드 :

package com.ohile.imagegallerydemo; 

import android.app.Activity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.graphics.BitmapFactory; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class ImageGallery extends Activity { 

    private static int RESULT_LOAD_IMAGE = 1; 


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

     Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture); 
     buttonLoadImage.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

       Intent i = new Intent(
         Intent.ACTION_PICK, 
         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

       startActivityForResult(i, RESULT_LOAD_IMAGE); 
      } 
     }); 
    } 


    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 
      Uri selectedImage = data.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

      Cursor cursor = getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String picturePath = cursor.getString(columnIndex); 
      cursor.close(); 

      ImageView imageView = (ImageView) findViewById(R.id.imgView); 
      imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 

     } 


    } 
} 
+0

문제의 개요를 설명해 주시겠습니까? – Kostronor

+0

내가 직면하고있는 문제는 갤러리에서 더 많은 사진을로드 할 때 이전에로드 된 그림이 사라진다는 것입니다. 이전에로드 한 그림을 기본 화면에서 어떻게 볼 수 있습니까? – sonia

+0

이전에 선택한 이미지를 계속 표시 하시겠습니까? - 하나 이상의 이미지 뷰 (ListView와 같은)가 필요하다고 생각합니다. 또는 이전에 선택한 파일 경로를 유지 하시겠습니까? - 나는 그것을 유지하기 위해 ArrayList (또는 다른 콜렉션)가 필요하다고 생각합니다 ... –

답변

0

당신은 ListView에 (가로 스크롤) 또는의 GridView를 사용할 수 있습니다 선택한 모든 이미지를 표시합니다. 이 tutorial에서 아이디어를 얻을 수 있습니다.

+0

정확히 내가 가로 목록보기를 원합니다.이 코드를 얻을 수 있습니다. – sonia

+0

나는 이미 당신에게 링크를주었습니다. '자습서'를 클릭하십시오. –

관련 문제