This is a lightweight 2D vector drawing framework using TouchVGCore for Android.
It uses android.graphics
and android.view
packages to render shapes and handle touches.
Features described in Online document. Please visit the TouchVG Demo project 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/touchvg/DemoCmds.git cd DemoCmds python newproj.py MyCmds
-
This is an open source LGPL 2.1 licensed project. It uses the following open source projects:
- TouchVGCore (LGPL): 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.
Welcome to the Chinese QQ group 192093613
to discuss and share.
- Zhang Yungui
- Archer
- ljlin
- Pengjun / Line and triangle commands
- Proteas