I'm a newbie at android application development and not good at English.
I want to create medical image processing application on android. I have searched for how to use vtk (it's a cross-platfrom image processing library that I use in java) and found that you can use QT with android. My Question: "Can I use VTK+Qt for creating my Android applications?"; and if so, where do I start?
Thanking you for assistance in advance.
You cannot currently use VTK with Android - there is a significant amount of porting to be done. VTK has a desktop OpenGL 1.x implementation, but no OpenGL ES implementation as would be required for mobile platforms. Some early work is starting in this area, but it does mean even if you get Qt working VTK will not be able to render on this device.
Have you tried VES?
VES is the VTK OpenGL ES Rendering Toolkit. It is a C++ rendering library for mobile devices using OpenGL ES 2.0. VES integrates with the Visualization Toolkit (VTK) to deliver scientific and medical visualization capabilities to mobile application developers.
A first VTK port attempt for Android platforms was done by Ethan Rublee on December 2010. The code is still available on his git repository here: https://github.com/ethanrublee
Related
I have simple c++ game with opengl and I would like to port it into android platform and ios. I have read many articles but i can not find any tool that can do this at the same time.
Can i use cocos2d-x?
http://www.cocos2d-x.org/download
Or what is the best way to port c++ game to android and ios.
I would take a look at SDL 2.0. It supports OpenGL, iOS and Android out of the box and is a great way to hide platform differences. If you already have a OpenGL game it should be very easy.
There is a great talk about the topic from Steam Dev Days:
http://www.youtube.com/watch?v=MeMPCSqQ-34&list=PLckFgM6dUP2hc4iy-IdKFtqR9TeZWMPjm
Besides SDL 2.0 is free to use ( zlib licensed ).
The SDL library is available from here:
http://www.libsdl.org
In android case , find NDK , native activity, difference with openGL ES to OpenGL.
I think it is not hard to find. Sample is in NDK source pack.
I'm developing an application separately for both Android and iOS using their native SDKs.
However, there's a some module in the application that should support basic 2D (it can also be 3D) abilities such as tilting, scaling, rotating of vector graphics + all kinds of optional fancy effects on simple textured planes for example.
I'd like to host this module inside some kine of a view and that its code will be shared between both the iOS and Android platforms, as much as possible.
I've been lurking around the web for all kinds of solutions.
First of all there's OpenGL, the problem is that I'm not familiar with coding for OpenGL and I wasn't able to understand if the code I will be writing with OpenGL will be shareable between the 2 platforms. It seems like no one actually had really tried to do it with NDK and such.
There are platforms like
a. Clutter (http://www.clutter-project.org/) - Which I couldn't find any example for its usage on mobile devices.
b. Platforms like Unity3D, though I don't think they could help me much because as far as I understand the whole application must run on their platform, and that's not what I'm looking for.
So, do you guys think that it is feasible to share 2d/3d code between the iOS and Android?
If so, is there any method you could recommend?
Or should I just go with each device's native method for 2d or 3d graphics?
Thanks!
Kivy: an open source cross-platform programming language for writing OpenGL-powered drawings, interfaces, visuals, anything, for Linux, Windows, MacOSX, Android and iOS. kivy.org
You can potentially drop using Android or iOS native widgets for Kivy widgets and you're apps will have the same OpenGL-powered interface on all platforms.
EDIT 9/27/11 1pm: I've done some more research. All in all, you should check out these 4 open-source frameworks for yourself and decide which one is best for you (I could list commercial frameworks, but those are easy to find):
Kivy (kivy.org)
Amazing GUI and Widgets library.
HaxeNME (haxenme.org)
Very nice 2D/3D API for making OpenGL graphics.
Amazing cross-platform support. The best of all the frameworks.
Unfortunately, no GUI or Widget library is built in though.
Qt Quick QML (qt-project.org)
Very nice 2D/3D API for making OpenGL graphics.
Similar to HTML, but for OpenGL. Already know HTML and JavaScript? QML (Quick Markup Language) includes basic necessities like text fields, radio buttons, check boxes, etc, which can be animated and controlled with event handlers. Animations, event handlers, etc, in your QML application are written in JavaScript; the difference is the JavaScript gets compiled instead of interpreted.
Qt Quick is really amazing; my personal favorite. Read up on Qt Quick QML then try the Animated Tiles app for Android to see Qt Quick's potential. The newest release of Qt (coming very soon) support iOS, Android, and Blackberry, and all desktop OSes. Windows Phone is a work in progress but will arrive soon considering that Qt Quick already supports Windows 8's Metro platform. Qt Quick is very nice, but it doesn't work on every single platform like HaxeNME does.
MoSync (mosync.com)
A hidden gem. This framework needs more exposure. The MoSync SDK provides a cross-platform OpenGL framework, an HTML/JavaScript framework similar to PhoneGap, a NativeUI framework for writing apps across platforms that use each platform's native UI widgets, and MAUI for writing C++ GUIs.
If you were gunna settle on just writing pure OpenGL, then I'd at least recommend checking out MoSync, as it provides a 1-to-1 implementation of OpenGL ES 1.0/2.0.
Also, if your app will be form based (not so much animated like a game), then PhoneGap might suit your needs. If you use the right features of HTML5, you can make apps that feel native (unlike the many horrible and discouraging examples out there). If you'd like to try an app made with PhoneGap that feels "native", try "Go 2012". The Go 2012 apps proves that if you use HTML5 correctly, you can take advantage of hardware acceleration across platforms (iOS, Android, Blackberry, and Windows Phone (I tested it on all)). The animations (scrolling, etc) in Go 2012 are all CSS3 hardware-accelerated animations. Don't let the poor quality of most of the app in the PhoneGap showcase fool you!
Use OpenGL ES and write the code in C. Write a NDK wrapper for Android. Theoretically, your open GL C code should be reusable between the 2 platforms.
Have you ever herd about small company name Adobe
Try using Air.
People do not appreciate the hard work that Adobe did, but it is the most strong cross platform available in market!
It support:
Windows with DirectX access to speed up your app, both in 3D and 2D.
Linux
Android (2.2 and above) with OpenGL background
iOS with OpenGL
BlackBerry
And many more... If you wish to work on the high level, use Air!
If something is written in VB is it compatible with android?
If so, can you give me some documentation?
No, you can not use programs written in visual basic on android. Android uses java. The closest you'll get is Mono For Android which currently doesn't support VB.NET.
EDIT: (7/12/2016): This is now supported via Xamarin
I assume you are talking about VB.NET, then Mono does not yet support it.
Currently Mono for Android does not support Visual Basic.
We are looking at adding support for Visual Basic on upcoming versions
of Mono for Android.
Technically, what needs to happen is the following: we need to provide
the Visual Basic helper library (part of Microsoft.VisualBasic.dll)
and compile it to work with the Mono for Android mscorlib.dll instead
of the standard Mono 2.0 mscorlib.dll
With the above it will be possible to use Microsoft's Visual Studio to
compile VB code that will run on Mono for Android. But we want to
support Mono's own Visual Basic compiler, but that will also require
the compiler to run using the Mono for Android mscorlib.dll. This is
not difficult, but requires time to get done and integrate into our
release process.
At this point there is no ETA on when the above will happen.
2: http://mono-android.net/FAQ
You could try however Basic4android if that suits your needs.
The closest you're probably going to get is VB.NET via MonoDroid, which according to their FAQ currently does not support Visual Basic. (But they do have it on their radar at least.)
VB is a Microsoft product. While there are some 'nix' implementations of .Net product like Mono, Android is unlikely to support .Net mainly due to liscencing.
I want to know OpenGL Version that VTK 5.6.1 implement because I want to create android application that use vtk.I will use VTK visualize DICOM image and present them on screen.
I know Android OS implement OpenGL ES but I don't know VTK 5.6.1 OpenGL version.if VTK OpenGL's version is 4.1 that support OpenGL ES,it mean I can use vtk 5.6.1 to create android application,right.
Thanking you for assistance in advance.
This is highly related to your other question about using VTK on Android. As I said in response to that question, VTK does not currently support Android (or other embedded systems). The base OpenGL version used by much of VTK is 1.1, but quite a few of the classes test for various OpenGL extensions and use them optionally. Porting VTK to OpenGL ES (1.x or 2.0) is non-trivial, but some initial work has begun. See this post for a little more background.
I have been doing some work on the iOS and Android platforms, largely concerned with using OpenGL ES 2.0 from C++ on both platforms (NDK on Android). The results were promising, but it will take time to port a significant portion of VTK. OpenGL ES 2.0 and Open GL 2.1 are quite similar in their API, but they are not identical.
I'm not entirely sure what your purpose/context is regarding using VTK on android, but if you are talking about reading in VTK files and rendering the objects on android, I can give you an explanation (and perhaps some code) on how to do that. I'm currently programming an app that takes in a legacy-VTK ASCII file and renders the image using opengl. Like Marcus said, its non-trivial, and a little bit rough, but I used basic indexOf and tokenizer/split methods to search through the vtk file for the vertices, indices, normals, and text. coords and put them into buffers. I see this is an old thread, so I'm not going to explain any further/give out code unless someone wants it.
I am learning Android development, specifically to eventually do OpengL 2.0 ES on it.
So far I have read that the NDK supports Opengl 2.0 ES.
However, is there also a Java API for it?
If there is a Java API for it, which one is recommended? I know both C++ and Java, so it is not a big deal if I have to use the NDK, but I would prefer to work only in Java if possible and without a big performance hit.
Yes, you can use OpenGL ES 2.0 from Java without touching NDK at all.
Here is official documentation about starting OpenGL ES 2.0 in Android: http://developer.android.com/resources/tutorials/opengl/opengl-es20.html
Also take a look at official samples that comes together with SDK. Here are relevant the files under samples directory:
* ApiDemos\src\com\example\android\apis\graphics\GLES20Activity.java
* ApiDemos\src\com\example\android\apis\graphics\GLES20TriangleRenderer.java
* BasicGLSurfaceView\src\com\example\android\basicglsurfaceview\*.java
As far as i searched this website has some good useful samples related to openGL
http://www.droidnova.com/?s=openGL