• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LWEEKAndroid development
    Diskuse o vývoji aplikací pro platformu Android.
    -----------------
    Tipy, Triky, Postřehy, Začátečnický help, Nápady na nové aplikace.

    Oficiální developerská stránka: http://developer.android.com
    Něco málo v češtině na WiKi android fora: http://wiki.androidforum.cz/index.php/Programov%C3%A1n%C3%AD
    Článek na Zrojáku: http://zdrojak.root.cz/clanky/vyvoj-pro-android-ii/

    Docela zajímavé tutoriály přímo od vývojářů ze Sony Ericsson:

    na tvorbu vlastního View adapteru
    http://blogs.sonyericsson.com/developerworld/2010/05/20/android-tutorial-making-your-own-3d-list-part-1/

    zajímavý nápad na zoomování jedním prstem - aneb vytváření gest
    http://blogs.sonyericsson.com/developerworld/2010/05/18/android-one-finger-zoom-tutorial-part-1/
    rozbalit záhlaví
    DATEL
    DATEL --- ---
    ZACK: no, zkoušel jsem, viz příspěvky níže, zatím se nějak nemůžu přeorientovat na ten Gradle

    Z trochu jiného soudku - jak je to s logováním chyb, tj. voláním Log.d (a další) a e.printStackTrace() - necháváte tyto volání i v ostré verzi nebo ne? Já momentálně mám každé takové volání v podmínce "if (BuildConfig.DEBUG)".
    ZACK
    ZACK --- ---
    DATEL: Pak absolutne nechapu, proc uz davno neouzivas Ideu.
    DATEL
    DATEL --- ---
    DATEL: ha, tak jsem náhodou objevil v IDE menu Tools / Android / Sync Project with Gradle Files, spustil jsem a teď už se to tváří, že je to OK. No, poněkud (hodně) neintuitovní, doufám, že tohle ještě v průběhu vývoje pořeší. No, nevím, ale zatím to Studio na mě nepůsobí moc dojmem, že by to bylo použitelné na ostrý vývoj. A to jsem se tak těšil, používám PhpStrorm a nedám na něj dopustit.
    DATEL
    DATEL --- ---
    Tak jsem podle postupu na http://developer.android.com/tools/support-library/setup.html#libs-with-res přidal do toho build.gradle

    compile 'com.android.support:appcompat-v7:18.0.+'

    dal jsem rebuild, event log hlásí "Compilation completed successfully in 26 sec", ale editor s activitou, kde linkuju android.support.v7.app.ActionBar stále hlásí, že nemůže rozpoznat symbol "app", tak nevím :(
    DATEL
    DATEL --- ---
    JOHNY_G: moc nevím, na co odpovídáš :) Knihovny v SDK samozřejmně mám stažené, já ale nevím, jak je jednoduše dostat do projektu - všude jsou jen popisy, že se má editovat ten Gradle konfigurák, ale protože to vůbec neznám, tak nevím, která bije. Prostě - existuje obdobná cesta jako v Eclipse ADT, kde jsem vytvořil nový projekt nad SDK supportí knihovnou a ten pak nalinkoval v nastavení (dialogové okno) mého projektu jako knihovnu?
    JOHNY_G
    JOHNY_G --- ---
    DATEL: Musíš nejprve v SDK manageru updatovat knihovny a dependencies. Sám update Studia ty support knihovny neobsahuje.
    DATEL
    DATEL --- ---
    MRAKY: jj, to je, ale měl jsem dojem (dle informací na netu), že to dost lidí používá na produkční vývoj, tak jsem čekal, že to bude alespoň v nějakém použitelném stavu.

    A jak jednoduše nalinkovat supportí knihovny někdo nevíte? V ADT klasicky jsem udělal nový projekt nad soubory v SDK, bez kopírování a tento projekt se pak dal jednoduše v nastavení nastavit jako knihovna. Nic takového jsem v AS nenašel (ale to nic neznamená, o půl dvanácté večer jsem fakt už slepej :) ), navíc veškeré postupy na netu jsou pomocí ruční editace konfiguračního souboru Gradle, což když to neznám, tak je mi to k ničemu.
    PISKVOR
    PISKVOR --- ---
    DATEL: Nekde v Options je "path to SDK" - tu je treba vyplnit, pak to novy projekt vytvori bez problemu.
    MRAKY
    MRAKY --- ---
    DATEL: tak ono je to stale nejaka pre alpha ne ?
    DATEL
    DATEL --- ---
    Dotaz na ty, co používají Android Studio. Dneska jsem si ho nainstaloval, že ho vyzkouším. Vytvoření projektu nějak nedopadlo, neukazoval zdrojáky v záložce s projektem. Googlil jsem, prý nějaký bug. Naštěstí byl skrz AS dostupný update na verzi 0.3.0 (nevím, proč není ke stažení přímo na stránkách). Tam už se projekt vytvořit podařilo. Vyzkoušel jsem vytvořit nový projekt a označit, že chci použít support knihovny por drawer, action bar atd. Všechno vygeneroval, samozřejmně hlásí chyby, že nezná patřičné třídy, protože nemá ty support knihovny připojené. Stánul jsem je přes SDK manager, ale teď nevím, jak je tam mám přidat. Opět jsem hledal na Googlu, ale všude je jen ruční konfigurace toho Gragle, a pokud tam byly nějaké screeshoty přes Project Structure, tak vypadají úplně jinak - ve verzi 0.3.0 tam chybí kupa záložek. Jak teda nějak rozumně přidat do projektu další knihovny? V ADT co bylo celkem snadné, ale teda s tím Gradlem mi to přijde na dost velká příšernost.
    DRIZDIK
    DRIZDIK --- ---
    VICSYL: Budeš mít špatně zanořené view asi. Pošli mi to do pošty.
    VICSYL
    VICSYL --- ---
    DRIZDIK:
    ScrollView funguje, respektive jsem vyzkousel HorizontalScrollView,
    ale ted se mi zase text objevuje nad misto pod obrazkem.

    Zkousel jsem

    android:layout_alignParentTop="true"

    pro ImageView a

    android:layout_alignParentBottom="true"

    pro ten HorizontalScrollView, nefungovalo. Zkousel jsem ten HorizontalScrollView jeste zabalit do RelativeLayout
    a na nem pak dat android:layout_alignParentBottom="true", taky nefungovalo.

    Nevite?


    VICSYL
    VICSYL --- ---
    DRIZDIK: dik, zkusim
    DRIZDIK
    DRIZDIK --- ---
    VICSYL: Mas problem s tim, ze ty sice posouvas s tm view pomoci translate, ale to view se vykresli pouze to co se vejde u textView.
    Prvi bych zkusil android:clipChildren="true" na parentView (ale to jsem nikdy nepouzil, tak nevim jak to funguje)
    Druhe a pravdepodobnejsi je umistit to do nejakeho scrollView a potom bud zase translate nebo pohybovat tim scrollem
    NECROMAN
    NECROMAN --- ---
    LITTLELI: diky, predhodim to u nas :)
    LITTLELI
    LITTLELI --- ---
    22DAEMON: já se nepřu, nicméně takovéhle použití pro mobilní telefon asi není úplně normální, že ne?
    LITTLELI
    LITTLELI --- ---
    NECROMAN: nebo
    s knihovnou Jackson:
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    InputStreamReader r = // zase čteme
    Shape[] shapes = mapper.readValue(reader, new TypeReference<Shape[]>() {});
    

    opět 577 záznamů, doba zpracování 124ms
    LITTLELI
    LITTLELI --- ---
    NECROMAN:

    public class Shape {
        public int page;
        public String link;
        public double[][] coo;
    }
    
    InputStreamReader r = // cteme soubor
    Gson gson = new Gson();
    Shape[] shapes = gson.fromJson(r, (Type) Shape[].class);
    


    jinak teda mi to píše: 577 entries, a doba zpracovani: 94ms, ale neni na telefonu, tam to imho klidne muze byt trebas az 10x pomalejsi.
    NECROMAN
    NECROMAN --- ---
    NECROMAN: pro zajimavost, v .NET staci toto:
    [DataContract]
    public class IlShape
    {
        [DataMember(Name = "page")]
        public int Page { get; set; }
        [DataMember(Name = "link")]
        public string Link { get; set; }
        [DataMember(Name = "coo")]
        public float[][] Coordinates { get; set; }
    }
    string json = // load the file to string
    IlShape[] shapes = JsonConvert.DeserializeObject<IlShape[]>(json);
    NECROMAN
    NECROMAN --- ---
    Jak jsem tu nedavno resil to neskutecne pomale parsovani JSONu na Androidu, ktere kolega vyvojar stale nijak nerozlouskl - dokazal by nekdo mistni napsat uryvek kodu, ktery by tento file nacetl do modelu za radove desitky az stovky ms? Diky :) shapes.json
    VICSYL
    VICSYL --- ---
    Zdravim,
    potreboval bych dynamicky menit text zobrazeny v jednom radku dole na obrazovce (to zatim zvladnu).
    Text se zmeni treba jednou za +- 5-20 sekund. Pokud se text nevejde na display (zatim moc nevim, jak tohle korektne zjistit, ale to neni jadro pudla), chci, aby se text pomalu posouval, aby si ho user postupne precetl cely.

    Zkousel jsem:

    < translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="8000"
    android:fromXDelta="00"
    android:interpolator="@android:anim/linear_interpolator"
    android:repeatCount="infinite"
    android:repeatMode="restart"
    android:toXDelta="-400" / >

    A v kodu pak:

    textView.startAnimation((Animation)AnimationUtils.loadAnimation(activity,R.anim.animation));

    Coz je sice pekny, text se posune, ale hned na zacatku se orizne a posouva se oriznuty ....

    Nevite?
    Kliknutím sem můžete změnit nastavení reklam