Open GoogleCodeExporter opened 9 years ago
Moreover, the same concept should be applied (in dp, this time, not in sp) to
Paddings, Margins, etc...
Original comment by luca.cri...@gmail.com
on 5 Oct 2013 at 11:22
[deleted comment]
I have dimensions in dimen.xml and convert them to pixels when I am configuring
the renderer.
Still, there are lots of "magic numbers" in the code, specially related to the
legends. I am trying to fix some directly in the code, but so far I can't make
them look nice in different resolutions...
Original comment by tral...@gmail.com
on 26 Nov 2013 at 4:51
I do assign different pixel values (defined empirically) in an initializer
routine.
The result is vary from device to device...
I should build a better set of "magic numbers"
Original comment by luca.cri...@gmail.com
on 28 Nov 2013 at 10:16
Hi!
There is no possible set of "magic numbers" that will work nice on every
device.
I know because I am testing in 2 handhelds, one with 320x480 resolution and the
other with 1920x1080 (Full HD) :).
The only way is to use pixel independent numbers.
I changed the code a bit and got pretty good results!
I set the legend text size (as with other vars) in a pixel independent way
(converted from SP). Like this:
http://stackoverflow.com/questions/14067642/label-text-size-according-to-the-scr
een-size-in-a-chart-engine-pie-chart-in-andr/20242407#20242407
Then I made SHAPE_WIDTH = (int)renderer.getLegendTextSize() in LineChart and
BarChart.
In drawLegend of AbstractChart, float size = renderer.getLegendTextSize();
Other paddings and sizes were also converted to fractions of
getLegendTextSize(), in a semi-empirically way.
I know this is also a bit of a hack. I can show you my code or help implement a
proper way to do this, perhaps adding another configurable parameter to the
Renderer.
Original comment by tral...@gmail.com
on 28 Nov 2013 at 10:41
Hello!
So, you were talking of aChartEngine source (better solution).
I was talking of my own app, using some hardcoded pixel values I tested on 4
devices
(ldpi, mdpi, hdpi and xhdpi - emulator refuses to start a xxhdpi avd and I
don't own a physical one).
Your approach is without doubt better than mine.
But now I'm in a hurry, so I have to accelerate my developing a bit...
Original comment by luca.cri...@gmail.com
on 28 Nov 2013 at 10:53
Oh, sorry, I lost the scope of this thread for a bit.
I was able to make almost everything work perfectly across resolutions without
changing the achartengine code, with the technique described in the
stackoverflow link.
I just had to hack into the achartengine code to fix the legends.
Original comment by tral...@gmail.com
on 28 Nov 2013 at 11:04
;) I did my hacks too.
One of which was to strip down the library down to a mere 38 KB.
Just to have Line and Time Charts.
No zoom, no pan, no buttons, ...
And I fixed "different color for text values" (different from wave color).
And I fixed "isolated points not showing" (now they do).
;D
Original comment by luca.cri...@gmail.com
on 28 Nov 2013 at 11:14
Well, I used a technique similar to answer #7 in the link you posted.
But I thing you are referring to a technique like answer #0.
Though, I found that answer #5 is much interesting...
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float val = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 18, metrics);
I got 18 (sp) from "text size medium" in the Roboto font sizes.
You can then use val anywhere you want to use medium sized text. For example:
renderer.setLabelsTextSize(val);
I think that this (18) and another "magic number" for margins (using
TypedValue.COMPLEX_UNIT_DP, this time) could be a viable solution.
Original comment by luca.cri...@gmail.com
on 28 Nov 2013 at 11:43
Original issue reported on code.google.com by
luca.cri...@gmail.com
on 5 Oct 2013 at 7:43