transcript
- 1. Board local(e) cab to user's heart
- 2. If you talk to a man in a language he understands, that goes
to his head. If you talk to him in his language, that goes to his
heart. - Nelson Mandela
- 3. Successful stories 1 - 5M
- 4. Successful stories 1 - 5M 1 - 5M
- 5. Successful stories 1 - 5M 10 - 50M1 - 5M
- 6. Preparing Text
- 7. Basic changes String login = "Log In"; String login =
context.getResources().getString(R.string.login);
- 8. Basic changes String login = "Log In"; String login =
context.getResources() .getString(R.string.login); TextView
textView = new TextView(this); textView.setText(Log In);
textView.setText(R.string.login);
- 9. Basic changes String login = "Log In"; String login =
context.getResources() .getString(R.string.login); TextView
textView = new TextView(this); textView.setText(Log In);
textView.setText(R.string.login); android:text="@string/login"
/>
- 10. With format strings JAVA String message = Welcome +
username + ! Successfully logged in.;
- 11. With format strings JAVA String message = Welcome +
username + ! Successfully logged in.; XML Welcome %1s! Successfully
logged in. JAVA String welcome = getString(R.string.welcome,
username);
- 12. JAVA textView.setText("" + count + "item(s) downloaded");
Quantity strings
- 13. JAVA textView.setText("" + count + "item(s) downloaded") ;
XML %d items downloaded %d item downloaded %d items downloaded %d
items downloaded %d items downloaded %d items downloaded Quantity
strings
- 14. JAVA String messages = getResources().getQuantityString(
R.plurals.itemsDownloaded, count, count); Quantity strings
- 15. Handling script types
- 16. Language script type English and English-like: Latin
(except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and
Georgian.
- 17. Language script type English and English-like: Latin
(except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and
Georgian. Tall: Language scripts that require extra line height to
accommodate larger glyphs, including South and Southeast Asian and
Middle Eastern languages, like Arabic, Hindi, Telugu, Thai,
Vietnamese.
- 18. Language script type English and English-like: Latin
(except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and
Georgian. Tall: Language scripts that require extra line height to
accommodate larger glyphs, including South and Southeast Asian and
Middle Eastern languages, like Arabic, Hindi, Telugu, Thai,
Vietnamese. Dense: Language scripts that require extra line height
to accommodate larger glyphs but have different metrics from tall
scripts. Includes Chinese, Japanese, and Korean.
- 19. I Love You Tall / Lengthy languages
- 20. Important TextView attrs android:ellipsize
- 21. Important TextView attrs android:ellipsize android:maxLines
android:minLines
- 22. Important TextView attrs android:ellipsize android:maxLines
android:minLines android:fontFeatureSettings
android:elegantTextHeight
- 23. Important TextView attrs android:ellipsize android:maxLines
android:minLines android:fontFeatureSettings
android:elegantTextHeight android:typeface
- 24. Custom font for full app Calligraphy
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("your font path")
.setFontAttrId(R.attr.fontPath) .build();
- 25. Custom font for full app Calligraphy
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("your font path")
.setFontAttrId(R.attr.fontPath) .build(); Using reflection final
Field staticField =
Typeface.class.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true); staticField.set(null,
newTypeface);
http://stackoverflow.com/questions/2711858/is-it-possible-to-set-a-custom-font-for-entire-of-application
- 26. Localized layouts
- 27. RTL support - Native RTL support from Jellybean (4.2) -
Left -> Start - Right -> End
- 28. RTL support - Native RTL support from Jellybean (4.2) -
Left -> Start - Right -> End - Images with Text should be
split - Background Image - Text as overlay
- 29. Flexible layout android:layoutDirection attribute for
setting the direction of a component's layout.
- 30. Flexible layout android:layoutDirection attribute for
setting the direction of a component's layout.
android:textDirection attribute for setting the direction of a
component's text.
- 31. Flexible layout android:layoutDirection attribute for
setting the direction of a component's layout.
android:textDirection attribute for setting the direction of a
component's text. android:textAlignment attribute for setting the
alignment of a component's text.
- 32. Force RTL layout
- 33. Distance, Time, Currency
- 34. Distance
- 35. Distance
- 36. Time
- 37. Currency - Can be make or break for your app - Must provide
easy way to change it - $$ must be included if international
- 38. Common issues
- 39. Common issues Clipped text, or text that overlaps the edge
of UI elements or the screen
- 40. Common issues Clipped text, or text that overlaps the edge
of UI elements or the screen Poor line wrapping
- 41. Common issues Clipped text, or text that overlaps the edge
of UI elements or the screen Poor line wrapping Incorrect word
breaks or punctuation
- 42. Common issues Clipped text, or text that overlaps the edge
of UI elements or the screen Poor line wrapping Incorrect word
breaks or punctuation Incorrect alphabetical sorting
- 43. Common issues Clipped text, or text that overlaps the edge
of UI elements or the screen Poor line wrapping Incorrect word
breaks or punctuation Incorrect alphabetical sorting Incorrect
layout direction or text direction
- 44. Common issues Clipped text, or text that overlaps the edge
of UI elements or the screen Poor line wrapping Incorrect word
breaks or punctuation Incorrect alphabetical sorting Incorrect
layout direction or text direction Untranslated text
- 45. Thanks! Arun Babu A S P Love building apps with best user
experience! https://www.linkedin.com/in/arunasp
https://yourstory.com/2016/09/arun-babu-story/