Skip to content

A minimalistic Android view widget for selecting multiple images

License

Notifications You must be signed in to change notification settings

asantibanez/Patio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Patio

Android Arsenal

Patio is a minimalistic Android view widget for selecting multiple images.

Demo Video

Instructions

Patio can be added to an Activity or Fragment using the following XML

<com.andressantibanez.android.patio.Patio
  android:id="@+id/patio"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:thumbnailHeight="200dp"
  app:thumbnailWidth="200dp"
  app:thumbnailsContainerPadding="10dp"
  app:thumbnailsContainerBackground="#ddd"
  app:maxPictures="3"
  app:thumbnailsMessage="@string/patio_footer"
  app:actionsTextColor="#333"/>

Patio has certain customizable attributes:

  • thumbnailHeight defines the thumbnails height.
  • thumbnailWidth defines the thumbnails width.
  • thumbnailsContainerPadding defines how much padding will be used for the thumbnails container.
  • thumbnailsContainerBackground defines a background color for the thumbnails container.
  • maxPictures specifies how many pictures can the user add to the Patio view.
  • thumbnailsMessage defines a custom string for the views footer. This string can be used with %1$d and %2$d tokens to add a pictures attached / max pictures message.
  • actionsTextColor defines the text color for each action: Take Picture, Attach Picture, Remove Picture, Clear.

To add this attributes you must add the following definition to the root view

xmlns:app="http://schemas.android.com/apk/res-auto"

Make sure the Activity or Fragment implements PatioCallbacks. In this callbacks we will handle startActivityForResult intent for adding pictures via Camera or Gallery. You can get these intents from getTakePictureIntent() or getAttachPictureIntent().

Callbacks

@Override
public void onTakePictureClick() {
    Intent intent = mPatio.getTakePictureIntent();
    startActivityForResult(intent, REQUEST_CODE_TAKE_PICTURE);
}

@Override
public void onAddPictureClick() {
    Intent intent = mPatio.getAttachPictureIntent();
    startActivityForResult(intent, REQUEST_CODE_ATTACH_PICTURE);
}

Also, make sure you register you register your Activity or Fragment to get notified when callbacks are fired.

Listener

mPatio = (Patio) findViewById(R.id.patio);
mPatio.setCallbacksListener(this);

Patio needs the following permissions in your app in order to work properly.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

To get an ArrayList of the pictures added to Patio you can call getThumbnailsPaths() method.

ArrayList<String> thumbnails = mPatio.getThumbnailsPaths();

License

Copyright 2014 Andrés Santibáñez

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.

About

A minimalistic Android view widget for selecting multiple images

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages