2012-08-25 2 views
1

안드로이드 사진 갤러리에서 내 응용 프로그램의 모든 이미지를 가져오고 싶습니다. 안드로이드 갤러리에 이미지를 저장 한 후 이미지를 다시로드하려고합니다. 내 이미지를 갤러리에 저장하려면 아래 방법을 사용하십시오.안드로이드 포토 갤러리에서 전체 이미지 가져 오기

MediaStore.Images.Media.insertImage(ContentResolverObj, bitMap, "uniqueTitle", "description"); 

이제 프로그래밍 방식으로 모든 이미지를 내 응용 프로그램에 가져 와서 타일 기반의 이미지를 저장하려고합니다. 두 가지 질문이 있습니다. 1 번째 : 안드로이드 사진 갤러리에서 모든 이미지를 가져올 수 있습니까? 두 번째 : 제목 등을 가져온 후 세부적인 사진 세부 정보를 읽을 수 있습니까? 내가 귀하의 요구 사항에 따라,있는 gridview에 전화 갤러리 이미지를 표시 할 수 있어요이 코드를 사용하여

+0

안녕 RajaReddy P 아래에서 어댑터 코드의 gridview하고는, setAdapter를 찾을 수 있습니다 : 그는 당신 덕분에 너무 큰 guide.one 일 이미지를 식별 할 수있는 제목이나 고유 키를 얻으려면 어떻게해야합니까? 나는 이미지의 ID를 읽을 수있는 것을 본다. 그래서 위의 코드 줄을 사용하여 이미지를 저장할 때 ID를 설정할 수 있습니까? – aftab

답변

1

이 변경 ..

public class MyPhoneGallery extends Activity { 

    /** Called when the activity is first created. */ 
    private Cursor imagecursor, actualimagecursor; 
    private int image_column_index, actual_image_column_index; 
    GridView imagegrid; 
    private int count; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.gallery); 
     init_phone_image_grid(); 
    } 
    private void init_phone_image_grid() { 
     String[] img = { MediaStore.Images.Thumbnails._ID }; 
     imagecursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, img, null,null, MediaStore.Images.Thumbnails.IMAGE_ID + ""); 
     image_column_index = imagecursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 
     count = imagecursor.getCount(); 
     imagegrid = (GridView) findViewById(R.id.PhoneImageGrid); 
     imagegrid.setAdapter(new ImageAdapter(getApplicationContext())); 
     imagegrid.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v,int position, long id) { 

       System.gc(); 
       String[] proj = { MediaStore.Images.Media.DATA }; 
       actualimagecursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,null, null, null); 
       actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
       actualimagecursor.moveToPosition(position); 
       String i = actualimagecursor.getString(actual_image_column_index); 
       System.gc(); 
       Intent intent = new Intent(getApplicationContext(), ViewImage.class); 
       intent.putExtra("filename", i); 
       startActivity(intent); 

      } 
     }); 
    } 

    public class ImageAdapter extends BaseAdapter { 
     private Context mContext; 
     public ImageAdapter(Context c) { 
       mContext = c; 
     } 
     public int mygetItemId(int position) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 
     public int getCount() { 
       return count; 
     } 
     public Object getItem(int position) { 
       return position; 
     } 
     public long getItemId(int position) { 
       return position; 
     } 
     public View getView(int position,View convertView,ViewGroup parent) { 
       System.gc(); 
       ImageView i = new ImageView(mContext.getApplicationContext()); 
       if (convertView == null) { 
        imagecursor.moveToPosition(position); 
        int id = imagecursor.getInt(image_column_index); 
        i.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+ id)); 
        i.setScaleType(ImageView.ScaleType.CENTER_CROP); 
        i.setLayoutParams(new GridView.LayoutParams(125, 125)); 
       } 
       else { 
        i = (ImageView) convertView; 
       } 
       return i; 
     } 
    } 
} 
0

이 코드를 사용하고 이미지를 가지고, 어쩌면 당신

작동
final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }; 
final String orderBy = MediaStore.Images.Media._ID; 
imagecursor = getActivity().managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy); 

int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID); 

this.count = imagecursor.getCount(); 
this.arrPath = new String[this.count]; 
ids = new int[count]; 
for (int i = 0; i < this.count; i++) { 
     imagecursor.moveToPosition(i); 
     ids[i] = imagecursor.getInt(image_column_index); 
     int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA); 
     arrPath[i] = imagecursor.getString(dataColumnIndex); 
    } 

당신은 URL source code for adapter and gridview

관련 문제