2017-10-16 3 views
1

Ich verwende eine JSON-Zeichenfolge, die ein Bildobjekt unter anderen Objekten enthält. Daraus erstelle ich eine PropertyBusinessObject, die eine hat folgendeClassCastException - java.lang.String kann nicht in com.codename1.ui.Image umgesetzt werden

public final Property<EncodedImage, Profile> profilePic = new Property<>("profilePic", EncodedImage.class); 

Ich habe eine Methode in der

PropertyBusinessObject erstellt
public EncodedImage getProfilePic() { 
    return profilePic.get(); 
} 

besiedeln ich meine Daten in das Objekt Property Geschäft wie folgt:

profile.getPropertyIndex().populateFromMap((Map) profileObject); 

Wenn ich versuche, das Bild auf dem Formular mit dem folgenden Code anzuzeigen:

ScaleImageLabel profilePic = new ScaleImageLabel(profile.getProfilePic()) { 
     @Override 
     protected Dimension calcPreferredSize() { 
      Dimension dimension = super.calcPreferredSize(); 
      dimension.setHeight(Math.min(dimension.getHeight(), Display.getInstance().convertToPixels(40))); 
      return dimension; 
     } 
    }; 
    profilePic.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL); 
    container.add(BorderLayout.NORTH, profilePic); 

ich eine Classcast

Ausnahme: java.lang.ClassCastException - java.lang.String nicht com.codename1.ui.Image

jemand gegossen werden kann mir helfen kann zu lösen, oder einen anderen Weg vorschlagen, den JSON-String zu konsumieren?

+0

Welches Format hat das Bild? base64? – Diamond

+0

Das Bild ist Base64 – Rootsman

Antwort

1

populateFromMap unterstützt derzeit keine Base64-Images, ich füge das als Option hinzu, da dieser Anwendungsfall sinnvoll ist. Sollte mit dem Freitag Update da sein.

+0

Danke Shai. Sehr geschätzt. Kannst du mir bitte in der Zwischenzeit einen Hinweis geben, wie ich sonst dasselbe erreichen kann? – Rootsman

+0

Sie können über die Karte gehen und die String-Daten durch Base64-Dekodierung durch ein Bild ersetzen. So oder so wird es in 2 Tagen dort sein, so dass ein Workaround möglicherweise nicht benötigt wird –

Verwandte Themen