I tried to find answer for my question, but I wasn't lucky. I have an Android app where I have thousands of points which have an altitude data and I want to draw that data in graph. What app is doing now is drawing graph data to ImageView. But I want to add zoom functionality, because when there are too many points that graph is too contracted.
I dont want to draw it to larger image and then downsample it, because it will take much memory - there can possible be many of these graphs. And I tried MPAndroidChart library to create that graph, but when there were thousands of points it drastically slowed down app.
I don't know what is the best to do. What do you think? I hope that this isn't a duplicate question and if you know that someone tried to solve this question, please let me know. Thnaks a lot.
This is complex stuff.
I can only recommand HelloCharts library that handles many things (including zoom): https://github.com/lecho/hellocharts-android
Related
I'm trying to develop a app with a teacher of mine to help students with some math subjects. The problem is that I'm stuck on how to make a proper beautiful XY graph with circles (such as x²+y²=R²). I'm pretty much a noobie in programming, but I'm just asking for some directions on how to do it.
I've tried chart libs such as Androidplot, MPAndroidchart etc, but as far as I could differ, they aren't made to deal with circles because of axis proportion issues (I ended up with elipses).
I already know some openGL (but not much) and I've heard about drawing with the Canvas. Which direction should I take? Or do anyone knows a graph lib that could solve my problem?
I am using "shinobicontrols" (link given bellow) for my mono android application(xamarin).so, now i want to draw line chart for two data field one for "ask" price and one for "bid" price. so, any one can help me?
thanks in advance ....
http://www.shinobicontrols.com/android/shinobicharts/price-plans
The best place to ask for help relating to Shinobi Charts is their forums, there you will get help from people who are familiar with the libraries and the devs themselves.
It seems like you are just getting started, so the best place to begin would be the user guide, available here:
http://www.shinobicontrols.com/docs/ShinobiControls/ShinobiChartsAndroid/1.3.5/Premium/Normal/user-guide/index.html
This will take you through the steps needed to create and render a chart, there are also more detailed API documentation for the Xamarin bindings, for example for a Line Series (which is what it sounds like you are wanting to use):
http://www.shinobicontrols.com/docs/ShinobiControls/ShinobiChartsAndroid/1.3.5/Premium/MonoTouch/Com.ShinobiControls.Charts/LineSeries.html
Finally if you are still having problems feel free to post on the forums:
http://www.shinobicontrols.com/forum/shinobicontrols
Hope this helps, if you are still struggling just let us know what we can do to help.
Craig.
(Full disclosure: I work for ShinobiControls)
Is there anything like WhirlyGlobe for Android?
I just need to place a texture on a sphere that can be manipulated by the user. It must also be able to place overlays at various latitudes and longitudes.
I don't want to include whole 3D engines and I don't really want to code with bunches of arrays and GL specifics.
Are there any options or is OpenTK the best?
I started working on my own implementation: https://github.com/mattleibow/OpenGlobe
It is a bit rough and old, but I am hoping to work on this again sometime.
Just in case someone is interested...
Will you guys tell me whether or not this solution will work before I spend a lot of time learning/researching KML? (It looks like I need to learn it at some point, but I have a deadline to meet, first.)
Background - I need to plot 1662 points on a map that fall into 7 categories. I would like to show all, as well as filter/show only categories that the user chooses.
My first attempt at this used the Google Maps API. I created GeoPoints, added them to an ItemizedOverlay, and then added the ItemizedOverlay to the map. That works great for a few points. 100 points only took 3 seconds. By the time I got up to 400 points, things really started to slow down (like 30 seconds or so). I loaded all 1662, and it took 15 minutes!
1) Why does this take so long? Does the API make a call to Google Maps for each point?
2) I found KML as a possible alternative. How well does KML scale? Will it be able to plot and load 1600+ points? If not, can you recommend another solution?
3) How do you recommend I go about filtering my categories? Currently, I plan on loading each category to a layer. I found references to hiding/showing layers, so I'm going to try to do that. Is this a good approach?
4) How can I add buttons? Can/should I add them to an overlay? If not, is it possible to have the map open in a MapView and then control the filter/show with Android Buttons?
I'm sorry if my questions sound basic. I will continue researching and learning on my own. However, I want to know whether or not my solution will work at all before I waste another week going down another dead end.
Thanks in advance! :)
I don't know anything about Android, but I am working on a project where I generate KML output from a Java application. I'm not sure what kind of constraints you have when working with Android Java, but if you can you should try the following open source library:
JAK - Java API for KML
It will make the KML creation fairly easy. I can't answer your question about scalability on Android since I have no experience with it.
I'm new to Android and Java programming and I've manage to create a simple paint program, but how do I add a zoom feature? Right now I'm just extending the View class and using the "onDraw()" method.
Do I have to use a Drawable to be able to add zooming functionality? I'm not really understanding the differences between the two.
If I am way off base then please point me to a good tutorial on paint/zooming.
I think your question is beyond the scope that stackoverflow Q/A format can provide. I know you're asking for 'simple' but imho that's probably due to your lack of perception about the scope of the question that you're asking.
In order to support zooming you need to know what kind of image processing engine you want. Are you creating a vector or raster based drawing program? If you do not understand the difference between the two then you'll going to have a difficult time figuring out what to do.
You should probably at least gain a basic understanding about these various topics (links to books pulled more or less from the top of amazon's search results):
Image Processing
Computer Graphics Fundamentals, two, and three
SVG (vector graphic format)
Wikipedia links:
Vector Graphics
Raster Graphics
Image Processing
Open source image processing apps (not android but source code never hurts to see how others have done something)
Paint.net
GIMP
Inkscape
I'm sorry there isn't an easy and direct answer to your question. I'm also not saying that you need to become an expert in these topics to do what you want. You just need to familiarize yourself with them and then you'll probably be able to implement what you want without much difficulty.