Based on ImageGallery by lawloretienne , it is a easy to implement library to create a gallery to host an array of images
You can add one or more images to the gallery
Support for using Palette to set the background color
Palette color types
- VIBRANT
- LIGHT_VIBRANT
- DARK_VIBRANT
- MUTED
- LIGHT_MUTED
- DARK_MUTED
Supports pinch-to-zoom on the images
ImageGalleryActivity | FullScreenImageGallery |
---|---|
compile 'com.ayoprez:iggy:0.1.0'
<dependency>
<groupId>com.ayoprez</groupId>
<artifactId>iggy</artifactId>
<version>0.1.0</version>
</dependency>
You can choose to show or not the Download and Share button. Just add to the bundle your desire. By default the option is false.
Intent intent = new Intent(MainActivity.this, ImageGalleryActivity.class);
String[] images = getResources().getStringArray(R.array.unsplash_images);
Bundle bundle = new Bundle();
bundle.putStringArrayList(ImageGalleryActivity.KEY_IMAGES, new ArrayList<>(Arrays.asList(images)));
bundle.putString(ImageGalleryActivity.KEY_TITLE, "Unsplash Images");
bundle.putBoolean(FullScreenImageGalleryActivity.KEY_DOWNLOAD_BUTTON, true);
bundle.putBoolean(FullScreenImageGalleryActivity.KEY_SHARE_BUTTON, true);
intent.putExtras(bundle);
startActivity(intent);
If you want to use the ImageGalleryActivity you must declare the following in your AndroidManifest.xml .
<!-- Declare this activity in your AndroidManfest.xml -->
<activity
android:name="com.ayoprez.iggy.library.activities.ImageGalleryActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label=""
android:theme="@style/ImageGalleryTheme" />
Alternatively, you can use the ImageGalleryFragment and host the fragment in your own Activity. In that case you can do something like this in an activity:
Fragment fragment = getSupportFragmentManager().findFragmentById(android.R.id.content);
if (fragment == null) {
fragment = ImageGalleryFragment.newInstance(getIntent().getExtras());
getSupportFragmentManager()
.beginTransaction()
.replace(android.R.id.content, fragment, "")
.commit();
} else {
getSupportFragmentManager()
.beginTransaction()
.attach(fragment)
.commit();
}
If you want to implement the palette to the images, you should use the PaletteHelper class:
Bitmap bitmap = ((BitmapDrawable) iv.getDrawable()).getBitmap();
PaletteHelper.applyPalette(bitmap, PaletteColorType.VIBRANT, bgLinearLayout);
You must set up image loading by implementing these interfaces ImageGalleryAdapter.ImageThumbnailLoader
and FullScreenImageGalleryAdapter.FullScreenImageLoader
. See https://github.com/ayoprez/IGGY/blob/master/sample/src/main/java/com/ayoprez/iggy/activities/MainActivity.java .
- Ayoze Pérez
Email - arezrod@gmail.com
Blog - https://medium.com/@ayoprez
Website - http://ayoprez.com
###Inspired in
ImageGallery by Etienne Lawlor
Copyright 2016 Ayoze Pérez
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.