• ú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í
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    RADDINO: konstanta "utf8" -> viz. přetížení o jednom parametru, co jsem poslal zde: [ H_U_N_T_E_R @ Android development ]
    RADDINO
    RADDINO --- ---
    H_U_N_T_E_R: co prosím dělá textEncoding?
    GIOMIKY
    GIOMIKY --- ---
    DRIZDIK: diky moc. Tam hde jeste o to, ze je to webview, kde je stranka, na ktery odchytavam javascriptem touchdown atp. Tudiz bych potreboval jeste nejak odlisit gesto pro stranku a pro aplikaci. S refreshview jsem problem nemel.
    Kdyz pises, ze je to nejhorsi zpusob... jak by to melo byt spravne?
    A kde se takovy veci dozvedet? Zatim googlim a nejcasteji cerpam z android developer stranky. Pak sem nasel nejaky prastary tutorial na rootu, ale ten je asi moc obecny.
    Predem diky za trpelivost.
    DRIZDIK
    DRIZDIK --- ---
    GIOMIKY: Pokud potřebuješ jen to tak ti stačí jakýkoliv view a odchytávat na něm touch eventy a detekovat swipe .. buď si to napsat sám, nebo implementovat nějakej guesture listener. Na tuhle událost potom vyměnit URL v jediném webview .. ale je to asi nejhorší způsob jak udělat appku :-D
    GIOMIKY
    GIOMIKY --- ---
    DRIZDIK: Me by bohate stacilo, abych mohl pri swipe vlevo vpravo vymenit stranku. Neni nutne mit nekolik webview. Na kazdy pad s tim docela bohuju. Zkousim NestedScrollView, ale ani mi to nezachytava eventy. Tak nevim. :-(
    DRIZDIK
    DRIZDIK --- ---
    GIOMIKY: Tady už máš spoustu možností od obsluhování tohodle v javascriptu uvnitř stránky, přes nějaké fragmenty ve viewpageru po implementaci guesture handleru a složitějšího hraní, protože mít několik webview vedle sebe nebude zrovna hezké pro zdroje v telefonu, kor když budeš svipovat a ty webview ti budou umirat a zase se startovat
    GIOMIKY
    GIOMIKY --- ---
    Ahoj, jeste jeden dotaz. Mam jednoduchou apku ze sablony s menu. Tzn. Na strane mi vyskoci menu. Mam tam nadefinivanych asi 5 polozek. Kdyz vyberu polozku, tak se mi v webView nacte jedna stranka. Zvladl jsem jeste naimplementovat refresh. Ale co bych jeste potreboval je scrollovat mezi polozkama menu pomoci swipe doprava doleva. Vsechno to mam v jedne tride, pricemz override na refresh a menu je to, co jsem dopsal. Z googleni tusim, ze bych mel pouzit fragmenty?! Bohate by mi stacilo, abych zachytil swipe do stran, ktery kdyz provedu, tak se okraj jako zschveje. Jenom netusim, co bych mel implementovat a jak. Predem diky za rady.
    RADDINO
    RADDINO --- ---
    H_U_N_T_E_R:
    H_U_N_T_E_R: díky, vyzkouším.
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    H_U_N_T_E_R: jo a ještě převod stringu z UTF16 na UTF8
    public static String toEncoding(String str) throws UnsupportedEncodingException {
    return new String(str.getBytes("utf8"), "utf8");
    }
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    RADDINO: jo, embeduju si tam ale svoje fonty:
    BaseFont bfAntigo = BaseFont.createFont("assets/fonts/antigonilight.ttf", textEncoding, BaseFont.EMBEDDED);
    Font antigo16 = new Font(bfAntigo, 15);
    ...
    PdfPCell cellCelkemCaption = new PdfPCell(new Paragraph(TextNormalizer.ToEncoding("CELKEM K ÚHRADĚ", textEncoding), antigo16));
    RADDINO
    RADDINO --- ---
    Používáte někdo iText na generování PDF z aplikace? Už jsem to nějak rozchodil, ale nejdou mi české znaky (ř,č,š..). Neřešil to někdo? Z stackoverflow jsem to napochopil. Díky
    GIOMIKY
    GIOMIKY --- ---
    GIOMIKY: aha tak zabralo vypnout a zapnout
    GIOMIKY
    GIOMIKY --- ---
    Ahoj, mel bych takovej lamma dotaz. Mam webView. Mam webStranku. Na webStrance mam javascript. Javascriptem se pokousim zachytit touchdown, touchmove, touchend. Ale bohuzel mi na pristroji nefunguje zachytavani techto eventu javascriptem. Je to HTML5 Canvas nejak takhle:

    canvas.addEventListener('touchend', touchend, false);

    function touchmove(ev){
    ev.preventDefault();
    var gnEndX = ev.changedTouches[0].pageX;
    var gnEndY = ev.changedTouches[0].pageY;
    ...
    }

    A webView je standardni neco na zpusob:

    mWebView = (WebView) findViewById(R.id.webViewPage);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    ... loadUrl ... atd.

    Ale jak rikam. Kdyz chci zachytit pohyb prstem po obrazovce na webView, tak se nedeje vubec
    nic. Predpokladam, ze pohyb prsty zachycuje andoroid aplikace a pokousi se je handlovat sama...
    a pritom nema zadny handler. A k tomu javascriptu se to vubec uz nedostane jako touchmove.

    Je to tak? Co s tim, aby mi stranka ve webView zacala zpracovavat touch eventy v Javascriptu?

    Predem diky za jakoukoliv radu (google jsem zkousel... rad spousty, ale asi to bude logicka chyba designu?)
    RADDINO
    RADDINO --- ---
    YAZZMAN:
    DRIZDIK: díky, nastuduji.
    DRIZDIK
    DRIZDIK --- ---
    RADDINO: Určitě bys měl persistovat někam ty data, ať už nějaká struktura v paměti na fragmentu nebo přímo DB, pokud ti appka spadne, tak budeš schopný obnovit ten stav.
    Místo linearu bych určitě použil recyclerView, kde nebudeš strojově vytvářet imageView, ale jen zavoláš datasetChanged nad adapterem a budeš moc jednoduše handlovat itemClick
    YAZZMAN
    YAZZMAN --- ---
    RADDINO: nebude jednodussi misto generovani ImageView pouzit RecyclerView? Jakoze o hodne jednodussi?
    CZERUDLA
    CZERUDLA --- ---
    RADDINO: Ahoj. Můžeš to tam "doprasit" tak, že v onActivityResult() budeš mít i obr.setOnClickListener(new OnClicklistener() {Dialog...});
    RADDINO
    RADDINO --- ---
    RADDINO: ještě ukázka těch metod
    Imageview · GitHub
    https://gist.github.com/ankhthief/fe4035ef90ecfd422a0fd9ef8b1711b5
    RADDINO
    RADDINO --- ---
    Jdu si pro radu zkušenějších. Mám fragment, kde ukládám do DB info o zranění a chci mít také možnost přiložit fotku. Nyní řeším to, že bych rád po vyfocení fotky ty fotky zobrazoval pod tlačítkem "Take photo .." a po kliknutí na ně otevřel fotku ve větším náhledu asi v Dialogu, kde by byla možnost fotku smazat. Aktuálně to mám tak, že po kliknutí na tlačítko se spustí camera Intent. Po vyfocení fotky se v OnActivityResult kódem vytvoří ImageView do definovaného LinearLayoutu a obrázek se zobrazí. Pokud vyfotím další, další obrázek se vytvoří pod to. Řeším teď, jak udělat obrázek kliknutelný, aby se po kliku otevřel Dialog, když nevím jeho ID, jelikož ty ImageView vytvářím dynamicky. Budu rád za nějaké nakopnutí, případně nasměrování, jak podobnou situaci řešit správně. Předpokládám, že moje řešení je prasárna.

    Díky moc

    JOHNY_G
    JOHNY_G --- ---
    Ještě k těm support packages. I kdybychom zapomněli na budoucí vývoj (jak psal DATEL), tak je tu slušná pravděpodobnost, že dřív nebo později narazíš na nekompatibilitu v nějaké classe, kterou Android vůbec nepodporuje, a existuje jenom v support libkách. Typicky ViewPager :-).
    DRIZDIK
    DRIZDIK --- ---
    MR_DAN: backstack je pro tebe něco jako history, s tím že jeden fragment můžeš mít v backstacku ale víckrát tak na to pozor. Současně to co dostaneš od manageru nemusí být stejná instance já tam byla předtím. Aplikace ti může umřít a znovu se probrat a backstack se mezi tím serializuje.
    Kliknutím sem můžete změnit nastavení reklam