Re: Android SDK
Napísané: Pi Sep 05, 2014 9:44 am
Toto je prave velmi jednoduche, aj ked sa to neda lahko najst v tej webovej dokumentacii (dost to prekopali odkedy so s tym zacinal). Ono totiz standardne sa orientacia obrazovky meni podla toho, ako telefon natacas... a je o dost vacsi problem urobit to naopak (teda aby tvoja aplikacia bola "zamknuta" na jednu orientaciu, aj ked s telefonom tocis).
V kazdom pripade, odpoved na tvoju otazku je nasledovna:
1. Teraz mas layout nadefinovany v subore /res/layout/activity_layout.xml (/ je hlavny projektovy adresar), spravil si to pre "portrait" orientaciu obrazovky a je to zatial tvoj jediny layout.
2. Potrebujes vytvorit subor /res/layout-land/activity_layout.xml (rovnaky nazov, len v inom adresari), kde nadefinujes rozlozenie jednotlivych prvkov pre "landscape" orientaciu obrazovky.
3. V kode nemusis v suvislosti s layoutom samotnym robit vobec nic. Pri natoceni obrazovky z portrait do landscape si aplikacia sama nacita layout pre landscape (ak adresar /res/layout-land neexistuje, pripadne v nom nie je dany .xml subor patricneho layoutu, tak sa pouzije defaultny layout z adresara /res/layout).
4. V pripade zlozitejsej aktivity mozno musis zobrat do uvahy fakt, ze pri zmene layoutu sa automaticky restartne aktivita. Napriklad by sa ti pri zmene orientacie mohli nechcene zinicializovat niektore tvoje vlastne atributy... ak su spravne pouzite onCreate(), onStart(), onResume() a onRestart() (spolu s onPause(), onStop() a onDestroy()) kde si vsetko potrebne ulozis, tak by to problemy robit nemalo.
Popis je tu: https://developer.android.com/guide/top ... rview.html (ma to podkapitoly kde je to dost rozobrate, napriklad aj ten restart aktivity pri zmene orientacie). Na rovnakom principe funguju aj preklady do inych jazykov (napriklad sa k standardnym /res/values/strings.xml prida /res/values-sk/strings.xml).
V kazdom pripade, odpoved na tvoju otazku je nasledovna:
1. Teraz mas layout nadefinovany v subore /res/layout/activity_layout.xml (/ je hlavny projektovy adresar), spravil si to pre "portrait" orientaciu obrazovky a je to zatial tvoj jediny layout.
2. Potrebujes vytvorit subor /res/layout-land/activity_layout.xml (rovnaky nazov, len v inom adresari), kde nadefinujes rozlozenie jednotlivych prvkov pre "landscape" orientaciu obrazovky.
3. V kode nemusis v suvislosti s layoutom samotnym robit vobec nic. Pri natoceni obrazovky z portrait do landscape si aplikacia sama nacita layout pre landscape (ak adresar /res/layout-land neexistuje, pripadne v nom nie je dany .xml subor patricneho layoutu, tak sa pouzije defaultny layout z adresara /res/layout).
4. V pripade zlozitejsej aktivity mozno musis zobrat do uvahy fakt, ze pri zmene layoutu sa automaticky restartne aktivita. Napriklad by sa ti pri zmene orientacie mohli nechcene zinicializovat niektore tvoje vlastne atributy... ak su spravne pouzite onCreate(), onStart(), onResume() a onRestart() (spolu s onPause(), onStop() a onDestroy()) kde si vsetko potrebne ulozis, tak by to problemy robit nemalo.
Popis je tu: https://developer.android.com/guide/top ... rview.html (ma to podkapitoly kde je to dost rozobrate, napriklad aj ten restart aktivity pri zmene orientacie). Na rovnakom principe funguju aj preklady do inych jazykov (napriklad sa k standardnym /res/values/strings.xml prida /res/values-sk/strings.xml).