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
- Set of UI components implemented Google's Material Design
- Support hardware "Back" key nagivation
- Dimension in "dp" unit. Auto-scale according to system's DP value.
- Provide page transition animation
- Drawable Image provider
- Load image resource from Android resource style file tree. (e.g drawable-xxxhdpi)
- Tint image at load time
- Choose the best image according to current resolution automatically.
- Messege queue between C++/Qt and Java/Android code
- Auto conversion between C++ and Java data type. No need to write in JNI.
- Theme / Style Engine
- A global Theme object. Set once for all components.
- Helper function to create your own derived style.
- "Apache license" - Free to use for commerical application
System Requirements
- 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
ImagePicker
Utility Components
InverseMouseArea, RectToRectMatrix, SystemDispatcher, MouseSensor
For user who are already using qpm from qpm.io
-
Run
qpm install
qpm install com.github.benlau.quickandroid
-
Include vendor/vendor.pri in your .pro file
You may skip this step if you are already using qpm
include(vendor/vendor.pri)
-
Download a release and bundle the folder within your source tree.
-
Add this line to your profile file(.pro):
include(quickandroid/quickandroid.pri) # You should modify the path by yourself
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.
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
v0.1.7
- Migrate to build with gradle
- Upgrade min Qt version requirement to 5.5.1
v0.1.8
- Upgrade min Qt version requirement to 5.6
- Depreate to use A.dp as measurement unit
v1.0
- Switch
- NavigationDrawer
- Slider
Wish
- SwipeableListItem
- AssetsManager
- 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:
Q. Looking for iOS Native Component?
Q. Any library for ...?
- Sharing
- 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
Libaries
- benlau/quickpromise - Promise library for QML
- benlau/quickcross - QML Cross Platform Utility Library
- benlau/qsyncable - Synchronize data between models
- benlau/testable - QML Unit Test Utilities
- benlau/quickflux - Message Dispatcher / Queue for Qt/QML
- benlau/biginteger - QML BigInteger library
- benlau/qtci - A set of scripts to install Qt in Linux command line environment (e.g travis)
- benlau/quickfuture - Using QFuture in QML
- benlau/fontawesome.pri - Using FontAwesome in QML
Tools
- SparkQML - QML Document Viewer for State and Transition Preview