AChartEngine: Chart wird bei Portrait Ausrichtung und Android 2.x nicht angezeigt

  • Antworten:6
Rafael K.
  • Forum-Beiträge: 2.359

21.08.2012, 23:37:47 via Website

Hi Leute,

hab mal wieder ein Problem wo ich selbst nicht weiterkomme.

Ich habe die AChartEngine mit einem BarChart eingebunden und es funktioniert soweit wunderbar auf meinem SGS2 mit 4.0.3 und meinem Touchpad mit CyanogenMod9 = Android 4.
Starte ich die App aber im Emu auf Android 1.6, 2.1, 2.3 völlig egal mit welcher Auflösung, wird das Diagramm im Portrait Modus konsequent nicht angezeigt (Fläche bleibt weiss), im Landscape Modus aber sofort.
Ich dachte zunächst es liegt am Emu, aber auf einem HTC Wildfire vom Kollegen war das Problem auch vorhanden.

Jemand schon selbst über sowas gestolpert? Evtl. sachdienliche Hinweise?

Danke schonmal :)

Grüße,
Rafael

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

21.08.2012, 23:46:36 via App

Hmm, ich nutze AChartEngine extrem intensiv. Hast Du das Problem im Emulator auch wenn Du von Landscape nach Portrait drehst oder nur beim direkten Start in den Portrait Modus.

Ich könnte morgen mal im Emulator testen ob ich das auch sehe (ich teste nie im Emulator).

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

21.08.2012, 23:50:11 via Website

Jupp, wenn ich per Strg-F12 drehe, wird es im Landscape angezeigt, im Portrait nicht.
Bei jedem Hin-und-her-Schalten reproduzierbar.
Hab schon die verschiedensten Container-Layouts für den ChartView probiert und auch mit den LayoutParams rumprobiert...absolut keine Veränderung.

Auf 4.0 wie gesagt in beiden Ausrichtungen sichtbar. Echt sehr merkwürdig.

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

22.08.2012, 08:18:25 via Website

Ha, lustig. Ich habe gerade mal einen 2.3.3 Emulator angeworfen und mein Tankbuch damit getestet. Da funktioniert ja überhaupt nichts. Beim Drehen wird überhaupt kein neues Layout gezogen - und ich habe jede Menge verschiedener Layouts hinterlegt. Was ist das denn für ein Müll?

Ich besitze ein olles Google Nexus One mit 2.3.6 und ein billiges Chinatablet mit 4.0.4. Da läuft alles einwandfrei. Und bisher habe ich noch nicht eine Fehlermeldung zu diesem Thema erhalten - zu keiner meiner Apps.

Wie gesagt, ich nutze den Emulator nie. Wir hatten ja schon mehrfach die Diskussionen über Eclipse im Allgemeinen und die Android Plugins im Speziellen... ich habe da meine eigene Meinung.

Welche Android Version hat Dein Kollege?

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

22.08.2012, 08:27:29 via Website

Harald Wilhelm
Ha, lustig. Ich habe gerade mal einen 2.3.3 Emulator angeworfen und mein Tankbuch damit getestet. Da funktioniert ja überhaupt nichts. Beim Drehen wird überhaupt kein neues Layout gezogen - und ich habe jede Menge verschiedener Layouts hinterlegt. Was ist das denn für ein Müll?

Ich besitze ein olles Google Nexus One mit 2.3.6 und ein billiges Chinatablet mit 4.0.4. Da läuft alles einwandfrei. Und bisher habe ich noch nicht eine Fehlermeldung zu diesem Thema erhalten - zu keiner meiner Apps.

Wie gesagt, ich nutze den Emulator nie. Wir hatten ja schon mehrfach die Diskussionen über Eclipse im Allgemeinen und die Android Plugins im Speziellen... ich habe da meine eigene Meinung.

Welche Android Version hat Dein Kollege?
WTF?
Also das mit den Layouts funzt soweit gut bei mir.
Ich habe auch teilweise unterschiedliche für hoch/quer und schalte die im onConfigurationChanged um.
Klappt auch alles bestens, nur wie gesagt, das Chart wird im Portrait nicht gerendert.

Das Wildfire hatte soweit ich mich erinnere 2.1 drauf.

Heute schaue ich mir mal das ChartView im Debugger genauer an und auch wie die Größe beim onMeasure berechnet wurde.
Evtl. liegt da der Hund begraben und es wird auf Grund von Sonnenflecken o.ä. eine falsche Größe berechnet.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

23.08.2012, 21:13:27 via Website

OK enige neue Erkenntnisse in der Sache:

Es liegt tatsächlich an der Android Version, denn bei einem Freund auf dem Desire mit 2.3.x tritt das Problem auf.
Es gibt aber auch einen ganz einfachen Weg das Problem zu umgehen.
setMinimumWidth() und setMinimumHeight() auf dem View Objekt, das man von aChartEngine bekommt.

Finde ich nur leider sehr unsauber, weil ich das in Abhängigkeit von der Display-Größe machen muss.
Wäre schön, wenn da noch andere Tipps kommen.

EDIT:
Genauer gesagt reicht es schon die minHeight zu setzen.
Scheinbar wird da einfach eine Höhe von 0 berechnet.
Würde mich nur interessieren warum.

— geändert am 23.08.2012, 21:38:02

Antworten