This is a lightweight 2D vector drawing framework using vgcore for Android.
It uses android.graphics and android.view packages to render shapes and handle touches.
Features described in Online document. Please visit vgandroid-demo to see more examples.
Don't want to build libtouchvg.so and jar ?
- Download the prebuilt libraries.
- Extract
touchvg_libsin the zip package tovgandroid/TouchVG/libsoryourapp/libs. - Import this project in eclipse. Android SDK version in the project.properties may need to modify according to your installation.
Enter the directory of this project, then type
./build.shto clone and build libraries needed.Need to add the NDK installation location to PATH.
If the error
build/gmsl/__gmsl:512: *** non-numeric second argument to wordlist functionoccurs, then open thebuild/gmsl/__gmslfile in the NDK installation directory, and change line 512 to:int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))MSYS is recommended on Windows to run UNIX commands such as rm, sh and make. MinGW and Cygwin are not necessary for TouchVG.
Import this project in eclipse, then build
touchvgproject.Android SDK version in the project.properties may need to modify according to your installation.
Recommend using the newer ADT Bundle to avoid complex configuration.
Regenerate libtouchvg.so and JNI classes:
Type
./build.sh -Bto rebuild the native libraries.Type
./build.sh APP_ABI=x86to build for the x86 (Intel Atom) Emulator.Type
./build.sh -swigto regenerate the kernel JNI classes.Need to install the lastest version of SWIG 3.0, and add the location to PATH on Windows. SWIG 2.x may can't parse UTF-8 header files on Windows.
Add
#include "mglog.h"and useLOGD("your message %d", someint)in the C++ files needed to debug.Set LogCat filter in Eclipse:
tag:dalvikvm|AndroidRuntime|vgjni|touchvg|vgstack|libc|DEBUG.Print JNI functions to locate problems of libc crash:
- Add
python addlog.pyin jni/build.sh. - Type
./build.sh -swigto add log in all JNI entry functions, or removetouchvg_java_wrap.cppand type./build.sh.
- Add
You can use newproj.py to create library project containing your own shapes and commands. So the TouchVG and TouchVGCore libraries does not require changes.
Checkout and enter DemoCmds directory, then type
python newproj.py YourCmds:git clone https://github.com/rhcad/DemoCmds.git cd DemoCmds python newproj.py MyCmds
This is an open source BSD licensed project. It uses the following open source projects:
- vgcore (BSD): Cross-platform vector drawing libraries using C++.
- AndroidSVG (Apache): SVG rendering library for Android.
- x3py (Apache): Compile script files.
- SWIG (GPL): Use the tool to generate the glue code for Java and C#.
Contributors and sponsors are welcome. You may translate, commit issues or pull requests on this Github site. To contribute, please follow the branching model outlined here: A successful Git branching model.
