简体   繁体   中英

Android show gallery with album

I would like to show an user experience like this: 专辑 to let user select images that he want... and then i'll use it.

How can i achieve this? Thanks!

You can use intent to open default Gallery in Android and let user select image.

final static int RESULT_CHOOSE_IMAGE = 1;
Intent i = new Intent(Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
               startActivityForResult(i, RESULT_CHOOSE_IMAGE);

After user selects image, onActivityResult() will be called which you will have to override as follows,

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

        if (resultCode == RESULT_OK && requestCode == RESULT_CHOOSE_IMAGE && data != null)    
        {     
                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 bitmapPath = cursor.getString(columnIndex); // path to user selected image
                cursor.close();   
                // get bitmap from bitmap path
                Bitmap bitmap = BitmapFactory.decodeFile(bitmapPath , null); 
                }
         }

Since bitmaps can be big in size, it may cause OutOfMemoryException while decoding from file. Refer this link for info regarding displaying bitmaps effeciently.

Android native gallery doesn't support multiple image selection by default, so you will have to use custom gallery for that purpose. See this link for tutorial .

In a future, try to be more specific in your questions so we can help you in a better way.

With the information you provided, i can just tell you that you could use a GridView to achieve what you want.

GridView Android Developers

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM