2012-08-25 99 views
1

我想從Android照片庫中獲取我的應用程序中的所有圖像。因爲我想在將圖像保存到android圖庫後再次將圖像載入我的應用程序。 爲了將我的圖像保存到圖庫中,我使用下面的方法。從Android照片庫中獲取所有圖片

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

現在編程我想所有的圖像讀取到我的應用程序,並希望得到上面保存的圖像文件tile.Two問題的基礎上這裏。 1st:我可以從Android的照片庫中獲取所有圖像嗎? 第二:我可以在讀取它之後讀取標題等單個照片細節。

+0

嗨RajaReddy P找到適配器代碼GridView和setadapter:謝謝你這麼多偉大的事情guide.one他我怎麼能得到標題或任何唯一的關鍵,我可以識別該圖像?我看到我可以讀取圖像的ID。所以在使用我的上述代碼行保存圖像時,我可以設置其ID? – aftab

回答

1

通過使用此代碼,我能夠在GridView控件來顯示手機的畫廊圖像,這取決於你的要求改變這種..

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); 
    } 

您可以從以下網址 source code for adapter and gridview

相關問題