MCPcopy Index your code
hub / github.com/donglua/PhotoPicker

github.com/donglua/PhotoPicker @v0.9.12

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.12 ↗ · + Follow
282 symbols 655 edges 28 files 63 documented · 22%

Browse by type

Functions 237 Types & classes 45
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PhotoPicker

CircleCI Build Status Android Arsenal Download API


Example

Get it on Google Play


Usage

Gradle

dependencies {
    compile 'me.iwf.photopicker:PhotoPicker:0.9.10@aar'

    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.github.bumptech.glide:glide:4.1.1'
}
  • appcompat-v7version >= 23.0.0

eclipse

[GO HOME

Pick Photo

PhotoPicker.builder()
    .setPhotoCount(9)
    .setShowCamera(true)
    .setShowGif(true)
    .setPreviewEnabled(false)
    .start(this, PhotoPicker.REQUEST_CODE);

Preview Photo

ArrayList<String> photoPaths = ...;

PhotoPreview.builder()
    .setPhotos(selectedPhotos)
    .setCurrentItem(position)
    .setShowDeleteButton(false)
    .start(MainActivity.this);

onActivityResult

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

  if (resultCode == RESULT_OK && requestCode == PhotoPicker.REQUEST_CODE) {
    if (data != null) {
      ArrayList<String> photos = 
          data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS);
    }
  }
}

manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.CAMERA" />
  <application
    ...
    >
    ...

    <activity android:name="me.iwf.photopicker.PhotoPickerActivity"
      android:theme="@style/Theme.AppCompat.NoActionBar" 
       />

    <activity android:name="me.iwf.photopicker.PhotoPagerActivity"
      android:theme="@style/Theme.AppCompat.NoActionBar"/>

  </application>
</manifest>

Custom style

<style name="actionBarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
  <item name="android:textColorPrimary">@android:color/primary_text_light</item>
  <item name="actionBarSize">@dimen/actionBarSize</item>
</style>

<style name="customTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="actionBarTheme">@style/actionBarTheme</item>
  <item name="colorPrimary">#FFA500</item>
  <item name="actionBarSize">@dimen/actionBarSize</item>
  <item name="colorPrimaryDark">#CCa500</item>
</style>

Proguard

# Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
    **[] $VALUES;
    public *;
}
# nineoldandroids
-keep interface com.nineoldandroids.view.** { *; }
-dontwarn com.nineoldandroids.**
-keep class com.nineoldandroids.** { *; }
# support-v7-appcompat
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }
-keep public class * extends android.support.v4.view.ActionProvider {
    public <init>(android.content.Context);
}
# support-design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }

License

Copyright 2015 Huang Donglu

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 237
Class 38
Interface 6
Enum 1

Languages

Java100%

Modules by API surface

PhotoPicker/src/main/java/me/iwf/photopicker/widget/TouchImageView.java81 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/fragment/PhotoPickerFragment.java20 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/adapter/PhotoGridAdapter.java18 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/entity/PhotoDirectory.java15 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/PhotoPicker.java12 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/fragment/ImagePagerFragment.java11 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/PhotoPickerActivity.java11 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/adapter/SelectableAdapter.java10 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/utils/MediaStoreHelper.java9 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/adapter/PopupDirectoryListAdapter.java9 symbols
PhotoPicker/src/main/java/me/iwf/photopicker/PhotoPreview.java9 symbols
photopickerdemo/src/main/java/me/iwf/PhotoPickerDemo/RecyclerItemClickListener.java8 symbols

For agents

$ claude mcp add PhotoPicker \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page