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_libs
in the zip package tovgandroid/TouchVG/libs
oryourapp/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.sh
to 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 function
occurs, then open thebuild/gmsl/__gmsl
file 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
touchvg
project.-
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 -B
to rebuild the native libraries. -
Type
./build.sh APP_ABI=x86
to build for the x86 (Intel Atom) Emulator. -
Type
./build.sh -swig
to 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.py
in jni/build.sh. - Type
./build.sh -swig
to add log in all JNI entry functions, or removetouchvg_java_wrap.cpp
and 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.