Beiträge von mrt

    Hi Leute,


    ich lade einen ca. 800KB langen base64 string per POST und Retrofit 2 hoch:

    Java
    void postSpecialData(String base64, Callback callback);


    wobei das Callback das Retrofit 2 Interface ist, mit:

    Code
    void onResponse(Call<T> call, Response<T> response); 
    void onFailure(Call<T> call, Throwable t);

    Dann kann ich mein Code Aufrufen, mit:

    Java
    getRestCommunicator().postSpecialData(encryptedBase64, new Callback() { 
      @Override public void onResponse(Call call, Response response) { 
        toast("Response code " + response.code());
      }
      @Override public void onFailure(Call call, Throwable t) { 
        toast("Failure REST CALL");
      }
    });

    Wie kann ich beim POST call den Fortschritt der hochgeladenen bytes abgreifen? Möchte es in einer Progressbar wiederspiegeln.


    Danke schonmal im voraus

    Hi,


    ich wollte mal dieses Beispiel ausprobieren...


    1. Bild Rechts kann man sehen, wäre das fertige Endergebnis, tip top.


    2. Bild bei mir jedoch sieht man hinter dem DatePickerDialog noch ein View, was so ziemlich überflüssig ist.


    Hier mal der Codeabschnitt:


    Liegt es am Style?

    habs auf eine sehr einfache weise gelöst:



    ich habe zwei shape items,

    • bei dem einen sind die Ecken nach außen spitz
    • und bei dem anderen sind die innenEcken abgerundet.

    Was ist BitmapPhoto? Kenne ich nicht muss eine eigene Klasse sein. Wird mit " .bitmap" auch wirklich ein Bitmap daraus?

    BitmapPhoto ist ein Objekt von io.fotoapparat, wird geliefert bei whenDone()



    Wie sieht es aus wenn du das forderground mal weg läßt wird da ein Bild angezeigt?

    Ohne setForeground sieht das Bild ganz normal, mit Ecken aus.


    Zitat von jogiMuc

    In welches Layout wird denn das Bild von der Cam eingeblendet?

    das LiveBild? Es ist ein andere Fragment vorher. Das klappt das auch wunderbar mit CameraView.setForeground().

    Hier das Layout:


    Dann die Java:

    Wie gesagt, da ich ab API 19, meckert er über die setForeground(), weil kennt diese nicht. Vorschlag seitens Android Stuio:

    • @RequiresAPI(M)
    • @TargetApi(M)
    • Surround with if (VERSION.SDK_INT >= VERSION_CODES.M)
    • Supress @SupressLint("NewApi")

    Nummer 4 führt zum obigen Crash auf API zwischen 19 und 23.
    Auf neuen Geräten tut sich da nicht wirklich was ändern...

    und das geht auch mit api19. Lade die Datei in ein Bitmap und gib es dem ImageView.

    Wenn ich die CameraView in ein ImageVIew ändere srteht da:

    Code
    Call requires API level 23 (current min is 19) : android.view.View#setForeground

    mit @SuppressLint("NewApi") gibt das folgerichtig einen Crash:


    Code
    java.lang.NoSuchMethodError: No virtual method setForeground(Landroid/graphics/drawable/Drawable;)V in class Landroid/widget/ImageView; or its super classes (declaration of 'android.widget.ImageView' appears in /system/framework/framework.jar)

    Setze ich dann vectorDrawables.useSupportLibrary = true (in der build.gradle) stürtzt die App beim S4 Mini immer ab.

    Hatte ein ähnlicheds Problem. Workaround damals: Ich habe meine vector_image.xml mit einem selector gewrappt.. selector_vector_image.xml mit :


    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/vecotr_image"/>
    </selector>


    dann noch statt android:src --> app:srcCompat

    Warum benutzt du für dein Bild kein ImageView?

    Ja, da gibt es mehrere Gründe:

    • ImageView sagt für setForeground erst ab API 23, ich habe ab API 19
    • Ich habe eine io.fotoapparat.CameraView instanz, welche von FrameLayout ableitet.
    • Bei dem CameraView habe ich das shape schon drübergelegt. Ich möchte dann das aufgenommene Bild genauso anzeigen wie es in der CameraView zu sehen war.

    Hallo Leute,


    ich habe ein FrameLayout in welchem ich ein Bild zeige. Dabei möchte ich die Ecken abrunden.. Dazu gehe ich ähnlich vor wie hier


    Da ich aber ein bild zeige, habe ich als setBackground() das Bild und als setForeground() die shape mit den abgerundeten Ecken.. da funzt nur zur hälfte.. Die Ecken werden auf den ersten Blick abgerundet, jedoch sieht man die Ecken dann doch noch.. siehe









    Jemand eine Idee? Bin für hinweise Dankbar.


    Mfg MrT

    Danke jogimuc.


    Es kämen für mich auch andere Emulatoren in Frage.. Siehe Genymotion.. Leider waren da auch hauptsächlich Samsungs Devices aufgelistet..

    Es gibt doch auch für den emulator ein Image für die China Version api 28 glaube ich.
    Das schon mal getestet.

    Die Chinaverson des P20? interessant...

    Auf einem P20 werden einige drawable falsch gerendert, bzw. der Hintergrund schwarz gezeichnet, obwohl die Bilder dort transparent sind.. auf anderen Geräten wird es korrekt angezeigt. Eine Vermutung war, dass es mit dem Huawei EMUI Style gedöns zu tun hat.


    Aber generell wäre es meinerseits auch für künftige Fälle wünschenswert, Hersteller ROMs per Emulator zu Starten..



    Im Netzt liest sich das aber anders.. https://stackoverflow.com/ques…m-rom-on-android-emulator
    Mir ist klar, dass ich nicht alle Hardwarespezifischen Sachen 100% abbilden kann.. siehe HTC Edge Sense, wo man am Rand drücken kann..


    Aber wenn ich so ein ROM mal grob zum laufen bringen könnte, wäre das schon mal ein Schritt.. :D

    Hallo Leute,


    ich habe ein Bug von nem User welches wohl mit einem Huawei P20 reproduzierbar ist. Da ich mir nun kein P20 kaufen möchte, würde ich gerne ein Rom Image von Huawei für ein P20 mit dem Android Emulator Starten..
    Bloß wie? Hat das schon mal jemand gemacht?
    Das image von Huawei habe ich mir schon runtergeladen..


    Bedanke mich für alle Hinweise, viele Grüße
    Mrt

    Hallo, ich werde demnächst eine DB in meine App einbinden. Zur DIskussion stehen Room vs. SQLDelite. Im folgenden habe ich mal einige Stickpunkte für meine Entscheidung zusammen getragen bzw. erweitere diese auch bei Wissensupdates:


    DBPROsCONs
    Room
    • Google Support
    • Weniger Zelen Code als SqlDelite
    • closed source
    SQLDeLite
    • etwss mehr Zeilen Code als Room



    Anforderungen / Infos:

    • Ich werde nicht so viele Datenbank-Einträge in der App haben; vermutlich < 100 .
    • Durchaus könnte ich später kleine icons/drawables < 10kB (Avatare) pro DB-Eintrag mit abspeichern - also byte-array (oder drawable) Tauglichkeit.
    • Encryption tauglich - für SQL Delight habe ich https://www.zetetic.net/sqlcipher/ gefunden
    • Java / Kotlin Tauglichkeit - wichtiger ist wohl Kotlin


    Offene Fragen meinerseits ():

    • Benchmark bzgl. RAM Benutzung, größe der lib in der EndApp
    • Benchmark bzgl. DB-Operation wie new, delete, edit - jedoch weniger wichtig da ich kaum über 100 DB Einträge kommen werde
    • Wie sieht es mit der Verschlüsselung der Datenbank bzw. einzelner Spalten aus. Wird von Hause aus mitgeliefert? 4th party libs
    • Dokumentation?
    • Bugs - macht kein Sinn, wenn die lib als zum crash führt
    • Testbarkeit - Wartbarkeit?
    • Realm schließe ich mal aus, da es die App auf einen Schlag um 5 MB aufpumpt. Aber eine 3te Alternative zum Vergleich käme mir auch recht..
    • Hab ich was wichtiges vergessen? Entscheidungskriterium

    Ich würde mich sehr freuen wenn ihr zu dem einen oder anderen Punkt euren Senf dazugeben könnt :) - sofern dieser Konstruktiv ist :thumbup:


    Mfg mrt

    na wenn im playstore dann nur ein apk für den jeweiligen user angeboten wird, ist das ok. Das klang nur so als wenn dann verschiedene apks im playstore stecken und der user dann aussuchen muss.

    Nein nein. Die Ursprüngliche Universal-APK war knapp 32 MB groß (nur eine Datei).
    Die dedizierten Architektur-APK sind knapp 15 MB groß, gibt aber halt eben 7 Stück davon (Auszug Gradle)


    Code
    include 'armeabi', 'armeabi-v7a', 'arm64-v8a', "x86", 'x86_64', "mips", 'mips64'

    Diese werden einzeln auf PlayStore hochgeladen (siehe Screenshot).. Da Google alles weiß, weiß es auch eben, welche Architektur das Gerät hat, und lädt automatisch die richtige runter. Der User wird nicht danach gefragt, er merkt es nicht, klickt wie gewohnt nur Install im PlayStore