Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pnc/iconbutton
A Button subclass for Android that provides better control over drawable positioning
https://github.com/pnc/iconbutton
Last synced: 24 days ago
JSON representation
A Button subclass for Android that provides better control over drawable positioning
- Host: GitHub
- URL: https://github.com/pnc/iconbutton
- Owner: pnc
- License: apache-2.0
- Created: 2013-01-03T19:26:15.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2015-09-08T13:57:01.000Z (over 9 years ago)
- Last Synced: 2024-11-28T04:41:26.032Z (about 1 month ago)
- Language: Java
- Homepage:
- Size: 750 KB
- Stars: 135
- Watchers: 10
- Forks: 43
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IconButton for Android
IconButton is an Android button widget that allows you to center both the button's text and an icon.
Android's stock `Button` class allows you to assign a `Drawable` to the left, right, top, or bottom of a button, but it looks bad if you need to have the button fill the screen:
![Default Android Button Behavior](images/default_behavior.png "Default Android Button Behavior")
## Installation
### For Gradle / Android Studio
Make sure you declare the JCenter repository in your project's `build.gradle`:
``` groovy
repositories {
jcenter()
}
```Then add a compile-time dependency on this library, adding the `dependencies` section to `build.gradle` if it doesn't already exist:
``` groovy
dependencies {
compile 'com.githang:com-phillipcalvin-iconbutton:1.0.1@aar'
}
```### For Old Version
If you're using ADT, clone this repository and import it into your workspace using File - Import. Then add it to your project by right-clicking your project, selecting Properties, then Android, and adding IconButton in the references list at the bottom of the Properties window.
If you're not using ADT, I recommend using this library as a submodule:
``` bash
git submodule add [email protected]:pnc/IconButton.git
```Generate a `local.properties` for IconButton:
``` bash
android update project -n IconButton --path IconButton/IconButton
```Then reference the library from your own `project.properties`:
``` properties
android.library.reference.1=IconButton/IconButton
```If you already have library references, change the `1` to the appropriate number.
## Usage
### In your layout
``` xml
```The use of `app:iconPadding` is optional. It allows you to add padding between the drawable and your text.
Change the text `your.project.package` to your own project's package. You don't have to use `LinearLayout`, but you do need to make sure to define the namespace definition (`xmlns:app="http://schemas.android.com/apk/res/your.project.package"`) appears in the root element.
You can assign either a `drawableLeft` or a `drawableRight` to the IconButton.
![Preview of icon button in several different configurations](images/demo.png "Preview of icon button in several different configurations")
### Caveats
IconButton only supports one drawable on the left or right. I'll absolutely accept patches that improve its handling of multiple drawables.
## Contributors
Special thanks to:
* [@msdx](https://github.com/msdx) for significant contributions around Android Studio and Gradle support.
* [@kaushikgopal](https://twitter.com/kaushikgopal) for adding left and right drawable support## License
Copyright (c) 2012-2015 [Phil Calvin](http://philcalvin.com) and contributors.Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
Contains modified source from [ParcelHelper](https://github.com/commonsguy/cwac-parcel), also under the Apache License.