Starší komentáře ke článku: Kdo si J2ME, nezlobí - texty

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: petr006

Datum vložení: 28.6.2005 9:28:42

Mno, ja pouzivam tento zpusob (priklad) : final static String EXIT =(lng==0)? "Konec" :(lng==1)? "Koniec" : "Exit"; A podle konstanty lng se vytvori pozadovana verze. Myslim, ze vyhoda je v prehlednosti, protoze texty jsou u sebe a pri zmene se nemusi kontrolovat 3 (v tomto pripade) ruzne soubory. Princip je jednopduchy, neni tedy potreba vymyslet funkce na vytvareni a cteni nejakeho text/bin. souboru (ktere zabiraji zbytecne misto-tedy ty funkce :-). Nutnost prekladu aplikace podle me taky nevadi (ta je u principu s bin. souborem v podstate taky potrebna).

Avatar

Autor komentáře: -=Taz=-

Datum vložení: 28.6.2005 16:40:21

Je to dobry napad, pokud nepotrebujes treba az po nejake dobe udelat verzi v jinem jazyku. Kdyz ti zahranicni partner posle prelozene texty v souboru, tak da docela praci je tam nasazet do zdrojaku.

Avatar

Autor komentáře: Hanni

Datum vložení: 8.7.2005 23:05:00

Prosím o radu jak na obrázky PNG s průhledností. Zkusil jsem již desítky grafických programů ale vždy po nakopírování obrázku do telefonu průhlednost tak nejak nefunguje. Muzete mi nekdo poradit jak na to? Vlastním standartni telefon sie cx65

Avatar

Autor komentáře: Lucie Rút

Datum vložení: 9.7.2005 21:51:48

Nevím jak u cx65, ale většina telefonů umí pouze zcela průhledné a zcela neprůhledné pixely, poloprůhledné neovládají, není problém v tom? Osobně používám gimp a průhlednost obrázků mi funguje, ale je pravda, že je více způsobů, jak png s průhlednými pixely uložit, a některé z nich některé telefony nezobrazují dobře. Pokud si dobře pamatuji, tak dělalo problémy, když jsem při ukládání obrázku zaškrtla parametr "uložit barvu pozadí". Podívej se, jaké parametry ti k png obrázkům tvůj grafický editor nabízí, a zkus s nimi experimentovat. Přeju hodně úspěchů.

Avatar

Autor komentáře: dan

Datum vložení: 12.7.2005 15:41:24

musis pouzit 24-bit png, ktory zvlada 256 stupnov v alpha maske, cize postupne 'zpriehladnovanie' do stratena, vhodne pre ne-pravouhle obrazky, tiene, prechody...

Avatar

Autor komentáře: Jerry

Datum vložení: 9.7.2005 22:59:20

No, podobne dilema jsem resil pred tydnem, kdyz jsem mel udelat dalsi jazykovou verzi aplikace. Nakonec mi nejrozumnejsi prisla samostatna trida. Texty ve zvlastnim souboru jsem nepouzil proto, ze mi to prislo jako mene usporne reseni a mne slo o kazdy byte. Nicmene vubec me nenapadlo umisteni textu do deskriptoru. Mate s tim nejake zkusenosti nebo je to moznost ciste teoreticka? Ja bych mel docela strach, ze nekdo do telefonu ulozi jen JAR a na JAD se vykasle, protoze spousta telefonu vyzaduje jen JAR. Jeden clovek mi dokonce tvrdil, ze kabelem dostane do SonyEricssonu pouze JAR, ale JAD mu program neumozni odeslat. Tehda mi kvuli tomu aplikace nefungovala spravne, protoze nedokazala z JADu zjistit svoji verzi. Nemate s tim zkusenosti?

Avatar

Autor komentáře: nigol

Datum vložení: 11.7.2005 12:05:34

Jerry: Je to bohuzel tak. Nekteri vyrobci to takhle delaji. Mam zkusenost se SE T610 a tam se da opravdu poslat pouze JAR. Potrebne udaje pro spusteni si vycucne z manifestu a je to. Bohuzel tim clovek prichazi o spoustu moznosti, jak vyuzit deskriptor...I kdyz ted mne napada, jestli by ty informace(treba texty) nesli nacpat primo do toho manifestu, to jsem nikdy nezkousel.

Avatar

Autor komentáře: Lukas

Datum vložení: 9.8.2005 15:33:35

Myslím si, že následující kousek kódu je zbytečný a pravděpodobně vyvolává vyjímku (java.io.IOException). if(is!=null){   // zavření instance InputStream   try{     is.close();   } catch(Exception e){   } } V dokumentaci MIDP 1.0 je u InputStream.close() napsáno "The close method of InputStream does nothing." .... :-)

Avatar

Autor komentáře: vit

Datum vložení: 22.7.2006 13:10:53

Přesně tak: Na SE W800i způsobí výjimku. V emulátoru program běží bez problémů, ale v telefonu close neprojde.

Avatar

Autor komentáře: GeorgeP

Datum vložení: 21.12.2005 10:40:08

Ahoj! Potrebuju do sve prvni hry (Sun J2ME) dat polozku v menu zvanou "Informace" (to neni problem). Problem je, ze nevim, do jakeho objektu pak ulozit ten text s informacemi o hre! Napr. Alert mi nevyhovuje, protoze napr. na Nokiich je jeste extra oramovan. TextBox mi nevyhovuje, protoze v MIDP1.0 nelze zakazat editaci textu. A do Canvasu se mi nechce dodelavat zalamovani a scrolovani textu. Nemate nekdo nejaky tip jak na to? Diky!

Avatar

Autor komentáře: Vilém Krejčí

Datum vložení: 2.1.2006 13:30:53

to GeorgeP: Domnívám se, že by stačilo použít instanci standardního objektu "Form" a pomocí jeho metody "append(String)" do něj našoupat potřebné texty (nebo celý text jako jeden řetězec). Na emulátoru v NETBeans to šlape, nevím jak na jednotlivých telefonech. Případné odřádkování jednotlivých řetězců docílíš zařazením escape znaku "\n" na jejich konec.

Avatar

Autor komentáře: GeorgeP

Datum vložení: 2.1.2006 15:52:14

Ahoj Vileme! To uz jsem zkousel, ale s vysledkem jsem nebyl spokojen, protoze uz v Sun emulatoru byla dana retezcova polozka Formu oznacena "kurzorem" (v pripade, ze jsem tam mel vice nez jednu StringItem polozku). Ted jsem zkousel mit tam prave jednu StringItem polozku a to uz v emulatoru vypada slibne, jeste to nekdy zkusim hodit do mobilu, jak se s tim popere :-) Zatim a dik za tip!

Avatar

Autor komentáře: GeorgeP

Datum vložení: 2.1.2006 20:11:12

Nacitam text ze souboru s kodovanim UTF-8 takrka shodne s uvedenym prikladem. V Sun emulatoru je vsecko naprosto OK, ale v telefonu (Nokia 6610, ktera ma podle vyrobce podporu UTF-8, viz http://nds.nokia.com/uaprof/N6610r100.xml) mam misto znaku s diakritikou obdelnicky (nekdy 2, jindy 4), pokud jde o neexistujici UTF znak, zobrazuje se otaznik (to je OK). Ale kdyz zadam do Stringu text a diakritiku pomoci UTF entit ("\uXXXX"), zobrazi se mi to v telefonu v poradku. Netusi nejaky Guru, kde je zakopanej pes? Prosim! private static void readLanguageResource(String resourceName) { Log.info("Started... Reading resource: " + resourceName); InputStream is = Thread.currentThread().getClass().getResourceAsStream(resourceName); String str = ""; try { InputStreamReader isr = new InputStreamReader(is, RESOURCE_ENCODING); int i = 0; while ( (i = isr.read()) != -1 ) { if (i == '\n') { if (!str.startsWith(COMMENT_START_STR) && str.length() > 0) { int separatorIndex = str.indexOf(KEY_VALUE_SEPARATOR); String key = str.substring(0, separatorIndex); String value = str.substring(separatorIndex + 1); Log.debug("Hashtable: Putting " + key + KEY_VALUE_SEPARATOR + value); hashtable.put(key, value); InstructionsForm.instructionsStr = str; } else { Log.debug("Hashtable: Skipping empty line or comment ('" + str +"')"); } str = ""; } else str += (char)i; } isr.close(); } catch (Exception e) { e.printStackTrace(); } Log.info("Finished... Reading resource: " + resourceName); }

Avatar

Autor komentáře: GeorgeP

Datum vložení: 3.1.2006 14:50:27

Pricemz ta konstanta je: public static final String RESOURCE_ENCODING = "utf-8"; A urcite nevyhazuje vyjimku UnsupportedEncodingException...

Avatar

Autor komentáře: GeorgeP

Datum vložení: 5.1.2006 12:04:01

Nakonec jsem ten zrejme nedostatek Java API v mem telefonu obesel nasledovne: 1) Normalni InputStreamReader s default kodovanim. 2) Z nacteneho Stringu ziskat pole bajtu v default kodovani (budou tam nejake nesmyslne znaky, ale ty prevede na spravne nasledujici konverze). 3) String value = new String(bytes, RESOURCE_ENCODING); // RESOURCE_ENCODING="utf-8" InputStreamReader isr = new InputStreamReader(is); int i = 0; while ( (i = isr.read()) != -1 ) { if (i == '\n') { if (!str.startsWith(COMMENT_START_STR) && str.length() > 0) { int separatorIndex = str.indexOf(KEY_VALUE_SEPARATOR); String key = str.substring(0, separatorIndex); byte[] bytes = str.substring(separatorIndex + 1).getBytes(); String value = new String(bytes, RESOURCE_ENCODING); Log.debug("Hashtable: Putting " + key + KEY_VALUE_SEPARATOR + value); hashtable.put(key, value);

Avatar

Autor komentáře: Amatér

Datum vložení: 15.4.2008 16:06:46

Chtěl bych se zeptat jak otevřít soubor[b].lang[/b]? Jde to sice otevřít v poznámkovém bloku ale hodně znaků vypadá jinak než by mělo (různý čtverečky a podobný nesmysly). No když to zhrnu, chtěl bych si přeložit java hru do češtiny.

Zpět na článek | Úvodní stránka Interval.cz