QML Theme and Component Library for Android
Clone or download
Latest commit 364c32e Feb 14, 2017
Failed to load latest commit information.
.travis Add .travis/deploy_pages.sh - script to deploy docs to Github Pages Nov 29, 2015
QuickAndroid Add support for Toasts Oct 7, 2016
docs Add document about how to setup Java envirnomnet Oct 9, 2016
examples/quickandroidexample build.gradle: Add example to obtain androidPackageSoruceDir that work… Aug 13, 2016
java/quickandroid Fix a build isse on Toast.java Jan 15, 2017
priv Register all QML types by qaqmltypes.cpp Nov 24, 2015
tests .travis.yml: Try to install extra package Aug 10, 2016
tools/ninepatchconverter Imported tools/nincpatchconverter Sep 9, 2014
.gitignore Set min SDK version to 18 Jul 27, 2016
.travis.yml .travis.yml: Initial xvfb with opengl support Aug 11, 2016
LICENSE CHANGED THE LICNESE TO Apache License 2.0 Sep 16, 2014
README.md Update README.md Feb 14, 2017
qadevice.cpp Enable high dpi mode only when Qt version >= 5.6 Jul 29, 2016
qadevice.h QADevice: Add "os" property Dec 6, 2015
qadrawableprovider.cpp [Bug Fix ] QADrawableProvider: Apply wrong tintColor for resource in … Oct 22, 2015
qadrawableprovider.h QADrawableProvider - Support to set tintColor on load Aug 26, 2015
qaimagewriter.cpp Fix #16 - Compile issue with -Wall -Werror flags Jan 13, 2016
qaimagewriter.h Add new class : QAImageWriter Nov 24, 2015
qaline.cpp Register all QML types by qaqmltypes.cpp Nov 24, 2015
qaline.h Add new class: QALine - Draw line with style Sep 25, 2015
qamousesensor.cpp PageStack: Push and pop in queue. Dec 11, 2015
qamousesensor.h Add Ripple Effect to Button and RasiedButton Dec 9, 2015
qaqmltypes.cpp Add new class : QAUnits Jul 27, 2016
qasystemdispatcher.cpp jniEmit: Use alternative way to convert jstring to QString Feb 18, 2016
qasystemdispatcher.h SystemDispatcher: Add "loadClass" method. Oct 5, 2015
qatimer.cpp Register all QML types by qaqmltypes.cpp Nov 24, 2015
qatimer.h Import QuickPromise's QPTimer , and rename to QATimer Sep 22, 2015
qaunits.cpp Add new class : QAUnits Jul 27, 2016
qaunits.h Add new class : QAUnits Jul 27, 2016
qpm.json qpm: 1.0.7 Jul 30, 2016
quickandroid.cpp QADevice: Change its type to QObject Dec 3, 2015
quickandroid.h Refactor Singleton object "A". Now it is declared by QML instead of C… Sep 12, 2015
quickandroid.pri Remove gradle.properties.in Aug 17, 2016


QuickAndroid will be splitted into multiple projects. One of the fork is AndroidNative.pri. It offer native Java components and system service in a more easy installable way. Site: https://github.com/benlau/androidnative.pri

QML Material Design Component and Support Library for Android


  1. Set of UI components implemented Google's Material Design
  2. Support hardware "Back" key nagivation
  3. Dimension in "dp" unit. Auto-scale according to system's DP value.
  4. Provide page transition animation
  5. Drawable Image provider
  6. Load image resource from Android resource style file tree. (e.g drawable-xxxhdpi)
  7. Tint image at load time
  8. Choose the best image according to current resolution automatically.
  9. Messege queue between C++/Qt and Java/Android code
  10. Auto conversion between C++ and Java data type. No need to write in JNI.
  11. Theme / Style Engine
  12. A global Theme object. Set once for all components.
  13. Helper function to create your own derived style.
  14. "Apache license" - Free to use for commerical application

System Requirements

  1. Qt 5.4 or above

UI Components

ActionBar , Button , BottomSheet , Drawable , StateListDrawable
Page , PageStack , MaterialShadow , Text, TextField, DropDownMenu, Paper
TabBar, TabView, FloatingActionButton, ListItem, RaisedButton

Native Components


Utility Components

InverseMouseArea, RectToRectMatrix, SystemDispatcher, MouseSensor

Installation Instruction (qpm)

For user who are already using qpm from qpm.io

  1. Run qpm install

    qpm install com.github.benlau.quickandroid

  2. Include vendor/vendor.pri in your .pro file

You may skip this step if you are already using qpm


Installation Instruction

  1. Download a release and bundle the folder within your source tree.

  2. Add this line to your profile file(.pro):

    include(quickandroid/quickandroid.pri) # You should modify the path by yourself

Java Setup Guide

In order to get native components like image picker, you need to setup the Java environment according to this guide quickandroid/java-setup-guide.md at master · benlau/quickandroid


An example program is available in the folder of tests/quickandroidexample . You may build it by yourself or download the daily build from drone.io .

Remarks: Daily build for non-master branch may not be working.


Class Reference (Under Construction)

Quick Android Class Reference

If you have any question, please feel free to ask.


Automatic type convertion

Qt Java
int int
bool boolean
QString String
QVariantList List
QVariantMap Map


Apache License 2.0



  1. Migrate to build with gradle
  2. Upgrade min Qt version requirement to 5.5.1


  1. Upgrade min Qt version requirement to 5.6
  2. Depreate to use A.dp as measurement unit


  1. Switch
  2. NavigationDrawer
  3. Slider


  1. SwipeableListItem
  2. AssetsManager
  3. Haptic Feedback


Q. Looking for component that is not supported yet?

Please feel free to submit the request to our issue tracker. Moreover, you may take a look on other component library:

  1. Iktwo/components
  2. rschiang/material

Q. Looking for iOS Native Component?

  1. benlau/quickios

Q. Any library for ...?

  1. Sharing
  2. bdentino/Qtino.SharingKit

Q. How to create splash screen for Android?

See Complete Guide to Making a Splash Screen for your QML Android Application — Medium

Related Projects


  1. benlau/quickpromise - Promise library for QML
  2. benlau/quickcross - QML Cross Platform Utility Library
  3. benlau/qsyncable - Synchronize data between models
  4. benlau/testable - QML Unit Test Utilities
  5. benlau/quickflux - Message Dispatcher / Queue for Qt/QML
  6. benlau/biginteger - QML BigInteger library
  7. benlau/qtci - A set of scripts to install Qt in Linux command line environment (e.g travis)
  8. benlau/quickfuture - Using QFuture in QML
  9. benlau/fontawesome.pri - Using FontAwesome in QML


  1. SparkQML - QML Document Viewer for State and Transition Preview