GreenDroid is a development library for the Android platform. It makes UI developments easier and consistent through your applications.

Related tags

UI/UX GreenDroid
Overview

#GreenDroid

Foreword : This project, initially initiated by me, Cyril Mottier, is not maintained anymore and can be considered as deprecated. As a consequence, it will not receive any new features nor fixes. Please keep that in mind and use it at your own risks.

GreenDroid is a development library for the Android platform. It is intended to make UI developments easier and consistent through your applications. A complete description is given on my personal blog. You can also take a tour to the GreenDroid website at http://greendroid.cyrilmottier.com!

Keep in mind this is still a work in progress. There are thousands of things to do and I hope I'll have enough time to develop all of the features I have in mind :)

A sample application can be downloaded on the Android Market

##Contacts

Feel free to contact me for any question related to GreenDroid: bug report, questions about the library, etc. I don't have time to provide personal support but I'll try to look at bug reports and important talks about the GreenDroid philosophy.

##Using GreenDroid in your projects

Note : The previous greendroid.py method has been removed from the library. Indeed, this Python script was perfectly functional but wasn't user-friendly (especially for Windows users). Creating libraries for Android is now handled by the ADT plugin.

In order to use GreenDroid you have to do the following steps:

  1. Download the GreenDroid library on your computer with a simple: git clone http://github.com/cyrilmottier/GreenDroid.git. As usual, Git will clone the GreenDroid repository and create a folder GreenDroid that contains a 3 folders:

    • GreenDroid: the core library. This is the code that will be mostly linked to your code
    • GreenDroid-GoogleAPIs: GreenDroid's extension including Google APIs related features (GDMapActivity for instance)
    • GDCatalog: the demonstration application. This project contains a lot of snippet of code showing you how to use GreenDroid.
  2. Since May 2010, the ADT plugin added an amazing new feature: the ability to work with library projects. Using GreenDroid consists on applying the GreenDroid project as a library to your application. A complete description on how to use library projects is given on the Android documentation website. Make sure your development environment uses the latest tools and platforms, since older releases of the tools and platforms do not support building with library project.

    • In case you want to use some Google APIs features, make sure you are using the GreenDroid-GoogleAPIs library. GreenDroid-GoogleAPIs is based on GreenDroid. As a result, you don't need to link GreenDroid as an Android library to your project.
  3. By default, the GreenDroid theme inherits from @android:style/Theme. If your project inherits from a different theme, you'll have to modify the GreenDroid library on your own (and do that everytime you are updating GreenDroid as updating deletes all of your changes - still working on a way to overcome that problem). Open the res/values/gd_themes.xml and replace the parent theme @android:style/Theme with your own theme.

  4. A lot of GreenDroid's feature (GDActivity, GDListActivity or GDTabActivity for instance) requires your application to be a GDApplication so make sure your application is a GDApplication class. In order to do that, simply add android:name="greendroid.app.GDApplication (where greendroid.app.GDApplication may be replaced by your own class that inherits from GDApplication) in the application tag of your AndroidManifest.xml.

  5. You finally need to make your project use the GreenDroid base theme. In your AndroidManifest.xml, go to the application tag and add android:theme="@style/Theme.GreenDroid" as a new attribute.

##Using the GDCatalog application

The GreenDroid project includes a demo projet called GDCatalog. This project shows some of the GreenDroid's features. I strongly encourage you to look at it as it's a great way to apprehend the library and understand how to use it in a correct manner.

GDCatalog obviously uses the GreenDroid library. As a result, it won't build until GreenDroid has been applied to it. If your IDE is up-to-date you'll have nothing particular to do. Simply press the "Play" button!

##Documentation

GreenDroid documentation is available online at http://greendroid.cyrilmottier.com.

##Software Requirements

GreenDroid has been designed for Android 1.6 and greater. It may work on Android 1.5 but I don't want to provide support for this platform as it's way too old ... It has been developed using the following software:

  • Eclipse IDE 3.6
  • Android SDK 4 (android-4)
  • Android Development Tools (ADT) 8.0.1

Go the Android Developers website for complete installation instructions.

##Credits

Copyright © Cyril Mottier [email protected]

Comments
  • Pull request

    Pull request

    Hi Cyril,

    First of all thanks for GreenDroid, it helped my android development a lot. :)

    I made two changes which I think might interest you so I'm sending a pull request. What I did:

    • Added a new activity which inherits the MapActivity.
    • Added support for configurable number of max action bar items (I needed 5 in my application).

    Best, Alexandru Badiu

    opened by voidberg 4
  • Settings type

    Settings type

    addActionBarItem(Type.Settings); doesn't work because there is no break in the switch case inside createWithType. This cause to end up in the default case which returns null.

    I have added break; to other items but I didn't provide a descriptionId.

    opened by Macarse 1
  • Have `ActionBar.addAction(Type)` Return Instance

    Have `ActionBar.addAction(Type)` Return Instance

    This will allow for the storing of handles to action bar items from the onCreate method. This does not change the helper method in GDActivity (since that is specified by an interface), only the direct addItem method in ActionBar.

    E.g., I create a Type.Refresh item and want to instantly trigger the refreshing state while the activity content loads.

    LoaderActionBarItem refresh = (LoaderActionBarItem)this.getActionBar().addItem(Type.Refresh);
    refresh.setLoading(true);
    
    opened by JakeWharton 1
  • Allow more flexibility in ThumbnailItemView's styling

    Allow more flexibility in ThumbnailItemView's styling

    By moving the specification of layout_height and scaleType from the XML layout to the style definitions, it's possible for developers to override the defaults without modifying the base GreenDroid library. One may simply override the styles in the application.

    If I'm missing some compelling reason to leave these two attributes in the XML layout, please enlighten.

    opened by pdeffendol 0
  • Light themes & Turkish Translation

    Light themes & Turkish Translation

    Instead of using standard dark theme, added two alternative theme derived from Light theme. These can be used calling Theme.GreenDroid.Light & Theme.GreenDroid.NoTitleBar.Light

    We use it in our app "itü sözlük": https://market.android.com/details?id=com.itusozluk.android

    Also, I made a Turkish translation

    opened by cagataygurturk 0
  • Adding GDPreferenceActivity and a color strip

    Adding GDPreferenceActivity and a color strip

    An equivalent to a PreferenceActivity that manages fancy preferences and an ActionBar. A color strip configurable frame that separates the ActionBar and the content of the activity.

    Workaround : Quick Action Bar Transparent on press We delay the dismiss of the QuickActionBar widget to give time to the clicked view to refresh its state

    opened by jdupouy 0
  • Eclipse project configuration

    Eclipse project configuration

    I added project-specific settings so that Eclipse enforces Java 1.6 as the target. Without this, if the user's workspace is set to target a different version of Java by default (eg, 1.5) some compile errors can result.

    opened by erizzo 0
  • Fixed bug : was crashing when removing an item from a list and adding another one of a different type

    Fixed bug : was crashing when removing an item from a list and adding another one of a different type

    When removing then adding an Item, if the item added was of a different type than the previous one (for exemple replacing a TextItem with a ProgressItem), ItemAdapter.getView() would crash when trying to reuse the convertView

    opened by clement-sciascia 0
  • Created AsyncImageSwitcher

    Created AsyncImageSwitcher

    I created a simple extension of the ImageSwitcher class which changes the underlying View to AsyncImageView. I had a need for this while writing my own app, and thought it would be a good addition to GreenDroid.

    opened by elevine 0
Beagle is an open-source framework for cross-platform development using the concept of Server-Driven UI.

Beagle Getting Started · Learn the Basics · Contribute Beagle is an open-source framework for cross-platform development using the concept of Server-D

ZUP IT INNOVATION 657 Dec 28, 2022
Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your

Txus Ballesteros 1.5k Jan 2, 2023
A set of Android-UI components to make it easier to request permission in a user friendly way.

Permission UI A set of Android-UI components to make it easier to request permission in a user friendly way. Access background location A jetpack comp

Stefan Wärting 54 Nov 3, 2022
💳 A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.

The article on how this library was created is now published. You can read it on this link here. →. ?? EasyFlipView Built with ❤︎ by Wajahat Karim and

Wajahat Karim 1.3k Dec 14, 2022
GIFView is a library for showing GIFs in applications

GIFView GIFView is a library for showing GIFs in applications. Setup In your project's build.gradle file: allprojects { repositories { ...

Tzlil Gavra 20 Apr 19, 2022
A color picker and a color preference for use in Android applications.

HSV-Alpha Color Picker for Android This library implements a color picker and a color preference for use in Android applications. Features I couldn't

Martin Stone 279 Nov 26, 2022
A powerful library for creating notifications in android platform.

Download Download the latest AAR or grab via Maven: <dependency> <groupId>com.github.halysongoncalves</groupId> <artifactId>pugnotification</artif

Halyson Lima Gonçalves 867 Nov 19, 2022
This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Ibrahim Mushtaha 3 Oct 29, 2022
Multi Roots TreeView implementation for Android Platform with a lot of options and customization

Multi roots TreeView :palm_tree: implementation for Android Platform with a lot of options and customization

Amr Hesham 112 Jan 3, 2023
Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.

FancyToast-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ... ma

Shashank Singhal 1.2k Dec 26, 2022
Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.

FancyAlertDialog-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ..

Shashank Singhal 350 Dec 9, 2022
Sentinel is a simple one screen UI which provides a standardised entry point for tools used in development and QA alongside device, application and permissions data.

Sentinel Sentinel is a simple one screen UI that provides standardised entry point for tools used in development and QA alongside device, application

Infinum 29 Dec 12, 2022
[] A fast PDF reader component for Android development

This project is no longer maintained. You can find a good replacement here, which is a fork relying on Pdfium instead of Vudroid/MuPDF for decoding PD

Joan Zapata 2.8k Dec 16, 2022
Multiplatform UI DSL with screen management in common code for mobile (android & ios) Kotlin Multiplatform development

Mobile Kotlin widgets This is a Kotlin MultiPlatform library that provides declarative UI and application screens management in common code. You can i

IceRock Development 320 Dec 30, 2022
MIUINativeNotifyIcon - Fix the native notification bar icon function abandoned by the MIUI development team

MIUI 原生通知图标 Fix the native notification bar icon function abandoned by the MIUI

Fankesyooni 189 Jan 4, 2023
This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.

Note: we are not actively responding to issues right now. If you find a bug, please submit a PR. Android Sliding Up Panel This library provides a simp

Umano: News Read To You 9.4k Dec 31, 2022
A simple library to let you sign (or draw lines) smoothly with your finger into a view and save it.

FingerSignView Introduction FingerSignView is a simple library that lets you finger, or draw lines, smoothly with your finger into a View and save it

Agnaldo Pereira 25 Nov 20, 2022
A Jetpack Compose library with blur, pixelate, and other effects to keep your designer happy. Inspired by iOS UIVisualEffectView.

A Jetpack Compose library with blur, pixelate, and other effects to keep your designer happy. Inspired by iOS UIVisualEffectView.

清茶 67 Dec 30, 2022
Useful library to use custom fonts in your android app

EasyFonts A simple and useful android library to use custom fonts in android apps without adding fonts into asset/resource folder.Also by using this l

Vijay Vankhede 419 Sep 9, 2022