最近工作用到,就写个小demo

demo实现从assets中利用typeface调用不同字体,并在editText中显示出来

1.layout中创建activity_main.xml文件

布局代码如下:

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ffffff"
  6. android:orientation="vertical">
  7.  
  8. <EditText
  9. android:id="@+id/edit_test1"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:background="#eeeeee"
  13. android:focusable="true"
  14. android:hint="字体1" />
  15.  
  16. <Button
  17. android:id="@+id/button1"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:layout_marginRight="39dp"
  21. android:layout_marginTop="14dp"
  22. android:text="字体2" />
  23.  
  24. <EditText
  25. android:id="@+id/edit_test2"
  26. android:layout_width="match_parent"
  27. android:layout_height="wrap_content"
  28. android:layout_marginTop="50dp"
  29. android:background="#eeeeee"
  30. android:focusable="true"
  31. android:hint="字体1" />
  32.  
  33. <Button
  34. android:id="@+id/button2"
  35. android:layout_width="wrap_content"
  36. android:layout_height="wrap_content"
  37. android:layout_marginRight="39dp"
  38. android:layout_marginTop="14dp"
  39. android:text="字体2" />
  40.  
  41. </LinearLayout>

Java代码如下:

MainActivity.java

  1. package com.example.edittest;
  2.  
  3. import android.app.Activity;
  4. import android.graphics.Typeface;
  5. import android.os.Bundle;
  6. import android.view.KeyEvent;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.TextView;
  12. import android.widget.TextView.OnEditorActionListener;
  13. import android.widget.Toast;
  14.  
  15. public class MainActivity extends Activity {
  16. private EditText editText1;
  17. private EditText editText2;
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22. initView();
  23. }
  24.  
  25. public void initView() {
  26. editText1 = (EditText) findViewById(R.id.edit_test1);
  27. editText2 = (EditText) findViewById(R.id.edit_test2);
  28.  
  29. //调用Typeface的createFromAsset方法 这里用两个ttf文件,ziti1.ttf、ziti2.ttf,这里用的是getAssets()这个方法
  30. //字体1 路径为 assets目录下创建的fonts文件夹: /assets/fonts/ziti1.ttf
  31. Typeface typeface1 = Typeface.createFromAsset(getAssets(),
  32. "fonts/ziti1.ttf");
  33. editText1.setTypeface(typeface1);
  34.  
  35. // 监听回车键
  36. editText1.setOnEditorActionListener(new OnEditorActionListener() {
  37. @Override
  38. public boolean onEditorAction(TextView v, int actionId,
  39. KeyEvent event) {
  40. Toast.makeText(MainActivity.this, String.valueOf(actionId),
  41. Toast.LENGTH_SHORT).show();
  42. return false;
  43. }
  44. });
  45. //字体2 路径为 assets目录下创建的fonts文件夹: /assets/fonts/ziti2.ttf
  46. Typeface typeface2 = Typeface.createFromAsset(getAssets(),
  47. "fonts/ziti2.ttf");
  48. editText2.setTypeface(typeface2);
  49.  
  50. // 监听回车键
  51. editText2.setOnEditorActionListener(new OnEditorActionListener() {
  52. @Override
  53. public boolean onEditorAction(TextView v, int actionId,
  54. KeyEvent event) {
  55. Toast.makeText(MainActivity.this, String.valueOf(actionId),
  56. Toast.LENGTH_SHORT).show();
  57. return false;
  58. }
  59. });
  60.  
  61. Button getValue1 = (Button) findViewById(R.id.button1);
  62. Button getValue2 = (Button) findViewById(R.id.button2);
  63.  
  64. getValue1.setOnClickListener(new OnClickListener() {
  65. @Override
  66. public void onClick(View v) {
  67. //Toast显示字符转换的Unicode码
  68. Toast.makeText(MainActivity.this,
  69. string2Unicode(editText1.getText().toString()),
  70. Toast.LENGTH_SHORT).show();
  71. }
  72. });
  73. getValue2.setOnClickListener(new OnClickListener() {
  74. @Override
  75. public void onClick(View v) {
  76. //Toast显示字符转换的Unicode码
  77. Toast.makeText(MainActivity.this,
  78. string2Unicode(editText2.getText().toString()),
  79. Toast.LENGTH_SHORT).show();
  80. }
  81. });
  82. }
  83.  
  84. // 字符串转换成Unicode
  85. public static String string2Unicode(String string) {
  86. StringBuffer unicode = new StringBuffer();
  87. for (int i = 0; i < string.length(); i++) {
  88. char c = string.charAt(i);
  89. unicode.append("\\u" + Integer.toHexString(c));
  90. }
  91. return unicode.toString();
  92. }
  93. }

最后在edittext中输入字符后,点击button可分别显示出对应的Unicode码。

图和demo我都不上了,很简单的一个例子,希望能帮到需要的同学。

【原创】利用typeface实现不同字体的调用显示及String转换为Unicode的更多相关文章

  1. 利用ManualResetEvent来来控制异步调用的打印的线程的暂停和恢复(转)

    利用ManualResetEvent来来控制异步调用的打印的线程的暂停和恢复 打印过程可能很长,这时候有可能需要暂停下来做一些事情,然后回来继续接着打印 打印过程中有2个线程:一个是程序运行的主线程, ...

  2. python利用or在列表解析中调用多个函数.py

    python利用or在列表解析中调用多个函数.py """ python利用or在列表解析中调用多个函数.py 2016年3月15日 05:08:42 codegay & ...

  3. 利用JS实现闪烁字体

    以下为在JSP文件中,利用JS实现闪烁字体的代码: HTML代码: <div id="blink">一段会闪烁的字</div> JavaScript代码: ...

  4. SpringCloud系列-利用Feign实现声明式服务调用

    上一篇文章<手把手带你利用Ribbon实现客户端的负载均衡>介绍了消费者通过Ribbon调用服务实现负载均衡的过程,里面所需要的参数需要在请求的URL中进行拼接,但是参数太多会导致拼接字符 ...

  5. JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素

    一.现在我们在网站设计(三)的基础上,来编写about.html页面. 这个页面要用到的知识点是利用JavaScript和DOM实现选择性地显示和隐藏某些DIV about.html页面在前面我们为了 ...

  6. 利用动态图层实现数据的实时显示(arcEngine IDynamiclayer)

    marine 原文利用动态图层实现数据的实时显示(arcEngine IDynamiclayer) 说明:最近一个项目用到这方面知识,文章主要来至网络,后期会加入自己的开发心得.(以下的代码实例中,地 ...

  7. android如何调用显示和隐藏系统默认的输入法(一)

    1.调用显示系统默认的输入法 方法一. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_MET ...

  8. C# 利用反射动态创建对象——带参数的构造函数和String类型

    C# 利用反射动态创建对象——带参数的构造函数和String类型 最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好, ...

  9. 利用Python计算π的值,并显示进度条

    利用Python计算π的值,并显示进度条  第一步:下载tqdm 第二步;编写代码 from math import * from tqdm import tqdm from time import ...

随机推荐

  1. java解析xml

    一.Document对象相关   1.读取XML文件,获得document对象.             SAXReader reader = new SAXReader();             ...

  2. Oracle Profile 使用

    一.目的: Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该prof ...

  3. rhel 5.8下静默安装oracle11gr2

    1.图形界面下录制脚本如下: #-------------------------------------------------------------------------------# Do ...

  4. .Net Core CLI–Ubuntu 14安装

    sudo sh -c 'echo "deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ trusty main&q ...

  5. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.6,增加语音消息、语音留言等功能

    自从微信出来后,语音消息和语音留言变得非常流行,按下一个键说话,比打字要方便多了.GG在V3.6版本增加了对语音消息和语音留言(或称为离线语音消息)的支持.这两个功能的实现已经很完整,只是比较遗憾的一 ...

  6. 分享一个简单程序(webApi+castle+Automapper+Ef+angular)

    前段时间在周末给朋友做了一个小程序,用来记录他们单位的一些调度信息(免费,无版权问题).把代码分享出来.整个程序没有做任何架构.但是麻雀虽小,用到的技术也没少.WebApi+Castle+AutoMa ...

  7. Linux3:more、which、find、chmod、tar、diff、grep、ps、netstat、uname

    more 类似cat,不过more不是将整个文件内容从上到下显示在屏幕上的,而是以一页一页的显示方便使用者逐页阅读.more最基本的指令就是space即往下翻一页,b即往回翻一页显示,而且还有搜索字符 ...

  8. .NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy

    当我们要接到一个新的项目的时候,我们第一时间想到的是用微软的MVC框架,但是你是否想过微软的MVC是不是有点笨重?我们这个项目用MVC是不是有点大材小用?有没有可以替代MVC的东西呢?看到这里也许你会 ...

  9. 解决在onCreate()过程中获取View的width和Height为0的4种方法

    很经常当我们动态创建某些View时,需要通过获取他们的width和height来确定别的view的布局,但是在onCreate()获取view的width和height会得到0.view.getWid ...

  10. 本地DNS安装

    在centOS里最常用的DNS服务工具应该是bind了.下面就以bind为例做一个DNS服务. 首先查看bind 是否已经安装 Rpm -qa | gerp bind 如果没有的话就用yum 安装一下 ...