Beiträge von killphil75

    Zitat

    Hat da jemand einen Tip


    https://code.google.com/p/mp4parser/
    https://github.com/JamesPrudente/mp4parser-android-library


    Das ist aber nur ein Tipp in die richtige Richtung - eine fertige Lösung habe ich nicht gefunden.
    Es gibt Versuche FFMpeg auf Android laufen zu lassen, damit kannst du Dir aus deinem Video und Audio ein neues Video muxen lassen.
    Aber das zum Laufen zu bekommen steht im Gegensatz zu deiner zweiten Aussage:


    Zitat

    für mich die ich das ohne viel Aufwand hinbekomme.



    Video und Audio sind zwei wirklich zeitintensive bzw. Video auch eine ziemlich komplexe Sache. Da musst du viel Zeit investieren und Dir etwas Wissen anlesen.

    Zitat

    ann man bei HTMLView denn auch alles andere wie gewohnt verwenden? Linearlayouts usw? Das wäre nämlich mein bedenken daran...


    Nein HTMLView bzw. korrekt WebView (ich nenn Ihn nur immer HTMLView) ist ein fertiger View, der halt HTML anzeigt und rendert. Das heisst dort kannst du keine weiteren Layouts einfügen. Das müsste man dann über HTML steuern. Aber nachdem was du vorhast, ist es wie vermutet der falsche Ansatz.


    Zitat

    Ein User sollte die möglichkeit haben, selbst solche Bilder einzufügen etc. und danach auch in PDF zu konvertieren. (Die Idee ist ähnlich wie eine eigene Postkarte gestalten, unterscheidet sich aber doch)


    Ok wenn du solche speziellen Sachen machen willst dann kommst du an einem eigenen Customview nicht vorbei. Also wenn du die maximal mögliche Handlungsfreiheit ereichen willst.


    Der andere Weg: du baust Dir für deine "Postkarte" zum Beispiel 10 verschiedene Layouts mit unterschiedlichen Elementen und der User kann sich eines aussuchen und dann die "Platzhalter" mit Leben füllen. (Bild einkleben / Text bearbeiten) ect. pp.



    Das dann in PDF zu wandeln ist noch eine ganz andere Problematik.


    -> Stichwort PDF Library Projekt Android

    Zitat

    Also HTMLView möchte ich nur ungern verwenden.


    Warum ???
    versuch es mir zu begründen und eventl stellst du fest, das es das ist was du suchst.
    Im WebView kannst du Javascript / an/aus schalten, Cacheverhalten manipulieren ect. pp . Was sind deine Bedenken ?


    Eventl zäumen wir das Pferd auch von hinten auf, daher nochmal konkret von vorne.


    Willst du nur 1 Bild so behandeln oder geht es hier um mehrere Variationen ?? Bild link, Bild rechts, Mild in Mitte ???


    Falls 1Bild nur Links oder rechts, dann kannst du tricksen, indem du Dir passende Layouts bastelst. Hier habe ich ein Beispiel gefunden,
    das sind aber alle nur Workarrounds.


    http://stackoverflow.com/quest…t-to-flow-around-an-image



    Customview wäre der wesentlich schwierigere Ansatz so etwas selber zu schreiben, hier habe ich einen gefunden der das gewünschte macht


    https://code.google.com/p/android-flowtextview/

    Zitat

    Und seit wann ist das?


    Na das wurde ja zur GoogleIO vorgestellt, ich hab mir mal die Screencasts angeschaut und dann bei GIT das Projekt geclont.
    Da sind gleich schöne Beispiele dabei.


    Der Vorteil (also ich sehe das als Vorteil)


    Volley baut eine eigene Requestqueue, das heisst er arbeitet all deine Netzwerksachen ab so wie er Resourcen hat.
    Du kannst dir schöne Response Listener bauen welche, dann deine Datenquellen bestücken bzw. dein GUI Updaten. Das ist wesentlich eleganter als 1000 Asynctasks mit noch mehr try catch konstrukten.


    JSOn und XML Helper sind gleich mit an Bord.


    Ein Vorteil von Volley, wenn man HTTP Requests von Hand fährt, dann gibt es Unterschiede zu Pre-Gingerbred und danach. Bei dem einen klappt die eingebaute HTTP Sache besser bei anderen sollte man besser die Apache Implementation nutzen. Da hier sowieso keiner wirklich durchblickt, kümmert sich Volley um das optimale Zugriffserlebnis.


    Na ja am besten mal selber etwas drüberlesen, es macht auf jeden Fall den eigenen Code schlanker und lesbarer.



    Zitat


    Volley hab ich mir bislang gar nicht angesehen. Hab zwar die Session damals verfolgt, das war es dann aber auch. Wie sind deine Erfahrungen bislang? Bereits ausprobiert ob es ggf. weitere Tasks blocken würde?


    Bislang nur gute Erfahrungen, wie gesagt - Code wird wieder lesbarer.
    blockierende Tasks habe ich nicht bemerkt.

    Schau mal in deinem Gerätemanager (Windows) ob das Gerät unter Android Phones auftaucht -> da sollte dann soetwas wie ADB Composite Device auftauchen -> falls nicht einfach mal den Googletreiber hart drüber installieren (Treiber auswaehlen) -> SDK Verzeichnis -> extras/google-> usb_driver


    -> keine Ahnung ob du Win7 oder 8 hast, unter WIn8 habe ich auch das Problem das 1 Android Gerät von mir nicht richtig erkannt wird. (Win7 keine Probleme)

    Hallo Matze,


    ein Wort vorn weg es funktioniert alles wie es soll. Ich denke gute Lösung mit der DB.


    Code
    Wenn du ein paar Codeschnipsel brauchst kann ich dir welche liefern, ich hab einiges an Nerven an dem Thema gelassen


    Die Codeschnipsel würden mich natürlich auch interessieren (nur zur Lernzwecken), aber noch eher so die Probleme auf die du gestossen bist - eventl sind das ja die selben die ich auch hatte.


    Mein Aufbau sieht jetzt wie folgt aus.


    -> Prüfe ob Bild in der lokalen Resourcenliste -> wenn ja anzeigen


    -> NEIN -> Prüfen ob Bild in der lokalen Datenbank vorhanden -> JA -> ByteArray zu Image wandeln -> Anzeigen


    -> NEIN -> wenn Online -> hole vom Webserver URL des Bildes -> Asynctask zum Laden des Bildes wird angestossen Speicerung in der DB -> Anzeigen des Bildes


    -> NEIN ich bin nicht Offline -> dann mache nix (Fallback Standard Image wird angezeigt)



    Den JSON runterladequatsch per Volley lasse ich mal weg und zeige nur mal meinen ASyncTask.


    Die einzige Schwierigkeit die ich hatte, ich muss dem Asynctask ein paar (4) Parameter mitgeben um all meine Wünsche zu handlen.


    Name des Bildes -> wird Unique Index für die DB
    URL des Bildes -> zum runterladen
    ImageView -> damit nach dem Speichern das Bild auch angezeigt wird
    ApplicationContext -> all das befindet sich in einem Fragment und im AsyncTask bekomme ich keinen ContextZugriff auf meine Application (da gibt es einen Absturz ) -> vermutlich weil ein getActivityaufruf ins Leere greift, wenn ich beim Scrollen des Viewpagers bin. -> Contextzugriff deswegen, weil ich den DB Zugriff ganz Oldskool per SQLiteHelperKlasse ect pp gelöst habe (ContentProvider fand ich überdimensioniert) und mein DatenbankObjekt hinterlege ich in meiner ApplicationInstanz.


    Mein Asynctask sieht dann so aus...




    wappendatasource = ist meine Datenbank Zugriffshilfsklasse

    Danke für euren Input.


    Matze hat recht ich könnte natürlich gleich die Bilder mit in der DB speichern (40 ist hier wirklich das absolute Maximum was anfallen würde und die Bilder sind nur 84x84 Pixel groß - also Speicherplatztechnisch im Rahmen.)
    Ich schau mir das Blob speichern in SQLite heute Abend mal an.
    Ich hatte zwar den ImageCache und das Image runterladen schön per Volley gelöst, weil mir das den ganzen AsyncTaskWahnsinn abnimmt - aber das sollte schnell wieder anzupassen sein.

    Halli, hallo


    keine Frage nach Code, sondern mehr so nach einem Lösungansatz bzw. best Case bei minimalem Speicheraufwand.


    Folgendes Scenario


    von Datenquelle A bekomme ich einen Namen. Diese Namen stehen in direktem Zusammenhang mit einem Bild.
    Da ein gewisser Satz an Daten stets und ständig wiederkehrt habe ich mir 2 Arrays angelegt und dort Namen/Bildnamen hinterlegt. Die Bilder liegen
    als drawables vor.


    So nun kann es sein das neue Datensätze dazu kommen und für diesen Fall hatte ich bisher ein Standard-Dummy Bild was angezeigt wurde. (Also Name wurde angeziegt aber mit Standardbild)


    Nun habe ich mir eine Lösung gebaut, welche mir auch die "unbekannten" Bilder nachlädt und anzeigt.


    -> Standardabfrage prüft die Arrays -> wenn Name/Bild da dann wird die Resource geladen
    -> wenn Abfrage negativ verläuft -> Namen/Bildbeziehung sind in einer Datenquelle B (Webserver/MySQL) hinterlegt, hole ich mir per JSON
    den Bildnamen und lade das entsprechende Bild vom Webserver B nach
    -> funktioniert auch alles schön.


    Dem Experten fällt bereits der Hasenfuss bei der Nummer auf. Die Images werden in einem Cache gepuffert. Jedoch muss ich vorher immer noch die JSON-Abfrage durchgeführt werden. Das scheitert bei Offline und schon lande ich wieder beim meinem Fallback Standardbild.


    Lange Rede, wenig Sinn. Ich möchte also auch die JSON Abfrage bzw. Response cachen.
    Also im Grunde muss ich mir nur zwei Stringpaare ablegen. (Name/BildUrl)



    Was ist den jetzt der Königsweg? (gehen wir mal davon aus das die externen Namen/Bildbeziehungen niemals die 40 Einträge Marke übersteigen)


    Anmerkung: Bilder werden relativ häufig auf der Startseite genutzt, sollte also Geschwindigkeitsoptimiert sein


    -> einfach in die Sharedpreferences pumpen ?
    -> Arraylist/Klasse bei Applicationstart aus lokalen Cachedatei (xml/json/textfile) generieren, bei Applicationende würde die Arraylist gespeichert werden, falls neue Einträge dazugekommen sind
    -> eigene SQLite Database Lösung


    -> andere Ideen ???



    Wie gesagt die Anzahl der "Fremdeinträge" ist überschaubar, wichtig wäre die Offlineverfügbarkeit.

    Nein nur die Verweise in deinem Projekt (ABS und Co kann schon alles installiert bleiben).
    Ich such mal ob ich noch die Seite finde wo das mal ausführlich erklärt war, was da bei doppelten dependecies schief gehen kann.

    Ich habe auch schon ab und an Problem mit dem ABS gehabt.


    -> am besten mal alle Dependencies aus deinem Projekt entfernen (Rechtsklick -> Eigenschaften -> Android ectpp)


    und dann alles neu hinzufügen.


    Gerade wenn du UI Bibliotheken nutzt die alle auf das SupportLIb packet von Google setzen, ist es ratsam - die SupportLib nur 1x einzubinden und alle anderen darauf zu verweisen. (ich hatte das in Kombination mit ABS, ViewPagerIndicator - sehr komische Fehler und besonders fatal Error -1 beim kompilieren.)

    na die Funktion html.from html formatiert einen validen HTML Ausdruck, du hast lediglich ein URL angegeben - da weiss er nicht was er damit machen soll.


    Ich hatte oben ein " zuviel


    String text ='<a href="http://www.gmx.de">Check deine Email</a>"';


    richtig so


    String text ='<a href="http://www.gmx.de">Check deine Email</a>';



    dann sollte alles gehen