3. 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
17. Language script type
English and English-like:
Latin (except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and Georgian.
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.
19. 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.
20. I Love You ❤
म तुमसे यार करता हूँ ❤
আিম তামায় ভােলাবািস ❤
ಾನು ನ ನು ೕ ಸು ೆ ೕ ೆ ❤
ను ను సు ను ❤
ഞാൻ നിെ േപമി ു ു ❤
நா உ ைன காதலி கிேற ❤
Tall / Lengthy languages
25. Custom font for full app
Calligraphy
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("your font path")
.setFontAttrId(R.attr.fontPath)
.build();
26. 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
28. RTL support
- Native RTL support from Jellybean (4.2)
- Left -> Start
- Right -> End
29. RTL support
- Native RTL support from Jellybean (4.2)
- Left -> Start
- Right -> End
- Images with Text should be split
- Background Image
- Text as overlay
32. 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.
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
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
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
45. 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
46. 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/