├── .gitignore ├── snapshot ├── change.jpg ├── features.jpg ├── pick_gridview.jpg ├── pick_viewpager.jpg └── pick_viewpager_zoomout.jpg ├── source ├── libs │ ├── photoview.jar │ ├── android-support-v4.jar │ ├── nineoldandroids-2.4.0.jar │ └── universal-image-loader-1.9.3.jar ├── res │ ├── drawable-ldpi │ │ └── no_media.jpg │ ├── drawable-xxhdpi │ │ ├── failed.png │ │ ├── checkbox_up.png │ │ ├── icon_delete.png │ │ ├── take_photo.jpg │ │ ├── checkbox_selected.png │ │ ├── icon_back_normal.png │ │ └── icon_back_selected.png │ ├── color │ │ └── btn_text_color.xml │ ├── drawable │ │ ├── icon_back.xml │ │ └── on_focus_checkbox.xml │ ├── values │ │ ├── dimen.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── attrs.xml │ └── layout │ │ ├── bottom_bar.xml │ │ ├── image_picker.xml │ │ ├── gallery_item.xml │ │ ├── title_bar.xml │ │ └── view_pager.xml ├── src │ └── com │ │ ├── jfeinstein │ │ └── jazzyviewpager │ │ │ ├── PhotoViewListener.java │ │ │ ├── OutlineContainer.java │ │ │ ├── JazzyPagerAdapter.java │ │ │ └── JazzyViewPager.java │ │ └── habzy │ │ └── image │ │ ├── viewpager │ │ └── wrap │ │ │ ├── ViewPagerListener.java │ │ │ └── ViewPagerDialogFragment.java │ │ ├── models │ │ ├── ItemModel.java │ │ └── ViewParams.java │ │ ├── picker │ │ ├── ViewPickerListener.java │ │ ├── CustGridView.java │ │ ├── GalleryAdapter.java │ │ └── GridViewPicker.java │ │ └── tools │ │ └── ImageTools.java ├── AndroidManifest.xml ├── .classpath ├── project.properties ├── proguard-project.txt └── .project ├── sample ├── ic_launcher-web.png ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-xxhdpi │ │ ├── icon_1_select_un.png │ │ ├── icon_1_selected.png │ │ ├── icon_take_photo.png │ │ ├── bg_btn_done_clicked.png │ │ ├── bg_btn_done_normal.png │ │ ├── icon_1_back_clicked.png │ │ ├── icon_1_back_normal.png │ │ ├── icon_2_delete_clicked.png │ │ ├── icon_2_delete_normal.png │ │ └── image_view_loading_default.9.png │ ├── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-v11 │ │ └── styles.xml │ ├── drawable │ │ ├── icon_1_back.xml │ │ ├── bg_1_done.xml │ │ ├── icon_1_delete.xml │ │ └── on_1_checkbox.xml │ ├── values-w820dp │ │ └── dimens.xml │ ├── values-v14 │ │ └── styles.xml │ └── layout │ │ ├── titlebar.xml │ │ ├── gallery.xml │ │ └── activity_main.xml ├── .classpath ├── project.properties ├── proguard-project.txt ├── .project ├── AndroidManifest.xml └── src │ └── com │ └── habzy │ └── image │ └── picker │ └── sample │ ├── ViewPickerActivity.java │ └── MainActivity.java └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | */bin/* 2 | */gen/* 3 | */.settings/* 4 | -------------------------------------------------------------------------------- /snapshot/change.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/snapshot/change.jpg -------------------------------------------------------------------------------- /snapshot/features.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/snapshot/features.jpg -------------------------------------------------------------------------------- /source/libs/photoview.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/libs/photoview.jar -------------------------------------------------------------------------------- /sample/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/ic_launcher-web.png -------------------------------------------------------------------------------- /snapshot/pick_gridview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/snapshot/pick_gridview.jpg -------------------------------------------------------------------------------- /snapshot/pick_viewpager.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/snapshot/pick_viewpager.jpg -------------------------------------------------------------------------------- /snapshot/pick_viewpager_zoomout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/snapshot/pick_viewpager_zoomout.jpg -------------------------------------------------------------------------------- /source/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/libs/android-support-v4.jar -------------------------------------------------------------------------------- /source/libs/nineoldandroids-2.4.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/libs/nineoldandroids-2.4.0.jar -------------------------------------------------------------------------------- /source/res/drawable-ldpi/no_media.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-ldpi/no_media.jpg -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/failed.png -------------------------------------------------------------------------------- /sample/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/checkbox_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/checkbox_up.png -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/icon_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/icon_delete.png -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/take_photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/take_photo.jpg -------------------------------------------------------------------------------- /source/libs/universal-image-loader-1.9.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/libs/universal-image-loader-1.9.3.jar -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_1_select_un.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_1_select_un.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_1_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_1_selected.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_take_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_take_photo.png -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/checkbox_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/checkbox_selected.png -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/icon_back_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/icon_back_normal.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/bg_btn_done_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/bg_btn_done_clicked.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/bg_btn_done_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/bg_btn_done_normal.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_1_back_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_1_back_clicked.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_1_back_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_1_back_normal.png -------------------------------------------------------------------------------- /source/res/drawable-xxhdpi/icon_back_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/source/res/drawable-xxhdpi/icon_back_selected.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_2_delete_clicked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_2_delete_clicked.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/icon_2_delete_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/icon_2_delete_normal.png -------------------------------------------------------------------------------- /sample/res/drawable-xxhdpi/image_view_loading_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/habzy/GridImagePicker/HEAD/sample/res/drawable-xxhdpi/image_view_loading_default.9.png -------------------------------------------------------------------------------- /sample/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #FF33E5B5 5 | #AA33E5B5 6 | 7 | -------------------------------------------------------------------------------- /source/src/com/jfeinstein/jazzyviewpager/PhotoViewListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Habzy Huang 3 | */ 4 | package com.jfeinstein.jazzyviewpager; 5 | 6 | public interface PhotoViewListener { 7 | void onPhotoClicked(); 8 | } 9 | -------------------------------------------------------------------------------- /sample/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/res/color/btn_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /source/src/com/habzy/image/viewpager/wrap/ViewPagerListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Habzy Huang 3 | */ 4 | package com.habzy.image.viewpager.wrap; 5 | 6 | public interface ViewPagerListener { 7 | 8 | void onDone(int currentPosition); 9 | 10 | void onDismiss(); 11 | } 12 | -------------------------------------------------------------------------------- /source/res/drawable/icon_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /source/res/values/dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 80dp 5 | 80dp 6 | 4dp 7 | 24dp 8 | 24dp 9 | 10 | -------------------------------------------------------------------------------- /source/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /sample/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /source/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #FFFFFFFF 5 | #4e83a8 6 | #AA4e83a8 7 | #FF33E5B5 8 | #FFAAE5B5 9 | #00000000 10 | 11 | -------------------------------------------------------------------------------- /sample/res/drawable/icon_1_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/src/com/habzy/image/models/ItemModel.java: -------------------------------------------------------------------------------- 1 | package com.habzy.image.models; 2 | 3 | import android.graphics.drawable.Drawable; 4 | 5 | public class ItemModel { 6 | 7 | public String mPath; 8 | public String mThumbnail = null; 9 | public boolean isSeleted = false; 10 | public boolean isFunctionItem = false; 11 | public Drawable functionItemDrawale = null; 12 | public int tag; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /sample/res/drawable/bg_1_done.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/res/drawable/on_focus_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sample/res/drawable/icon_1_delete.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sample/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 64dp 9 | 10 | 11 | -------------------------------------------------------------------------------- /sample/res/drawable/on_1_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sample/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /sample/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Picker 5 | Pick Only One(View Only) 6 | Pick From Gallery (Fixed Height, View Only) 7 | Pick Multiple(Wrap Content) 8 | Select Images 9 | Done 10 | 11 | -------------------------------------------------------------------------------- /source/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /sample/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /sample/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sample/res/layout/titlebar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /source/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-15 15 | android.library=true 16 | -------------------------------------------------------------------------------- /sample/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-15 15 | android.library.reference.1=../source 16 | -------------------------------------------------------------------------------- /source/res/layout/bottom_bar.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /source/src/com/habzy/image/picker/ViewPickerListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Habzy Huang 3 | */ 4 | package com.habzy.image.picker; 5 | 6 | import com.habzy.image.models.ItemModel; 7 | 8 | public interface ViewPickerListener { 9 | 10 | /** 11 | * When cancel the intent of picking images. 12 | */ 13 | void onCanceled(); 14 | 15 | /** 16 | * When finish the intent of picking images. 17 | * @param paths The images' paths which are picked. 18 | */ 19 | void onDone(String[] paths); 20 | 21 | void onFunctionItemClicked(ItemModel item); 22 | 23 | /** 24 | * When picking images changed, such as delete images. 25 | */ 26 | void onImageDataChanged(); 27 | } 28 | -------------------------------------------------------------------------------- /sample/res/layout/gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | -------------------------------------------------------------------------------- /source/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Picker 5 | Settings 6 | Pick image 7 | OK 8 | Has picked the max allow size! 9 | 10 | 11 | Standard 12 | Tablet 13 | CubeIn 14 | CubeOut 15 | FlipVertical 16 | FlipHorizontal 17 | Stack 18 | ZoomIn 19 | ZoomOut 20 | RotateUp 21 | RotateDown 22 | Accordion 23 | 24 | 25 | -------------------------------------------------------------------------------- /sample/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /source/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /source/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | GridImagePicker 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /sample/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | GridImagePicker-Sample 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /source/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /source/res/layout/image_picker.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 16 | 17 | 18 | 25 | 26 | -------------------------------------------------------------------------------- /source/res/layout/gallery_item.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 15 | 16 | 25 | 26 | -------------------------------------------------------------------------------- /source/res/layout/title_bar.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 |