Android TextView、EditText显示表情 推荐
2011-11-04 00:00
681 查看
要想在TextView和EditText中显示表情有多种方法。Android提供了Html.fromHtml()方法来解析Html标签,如:
用这种方式显示表情图片的话,会出现一个蓝色的小方框,而无法显示真正的表情。
另一种显示方法就是Android提供的
tagHandler没有用到,直接为null即可。在这里我们实现imageGetter:
用这种方法的缺陷就是非常耗网络资源。特别是当图片很多的事情不可取。
另一种方法就是将表情存到本地中,TextView通过替换编码来显示表情。TextView通过替换编码来显示表情。
例如【嘻嘻】,找到这样的字符串则去本地文件夹中寻找对应的图片并显示。
Java 代码复制内容到剪贴板 textView.setText(Html.fromHtml("<img src=\"http://06peng...pg\" />"));
用这种方式显示表情图片的话,会出现一个蓝色的小方框,而无法显示真正的表情。
另一种显示方法就是Android提供的
Java 代码复制内容到剪贴板 Html.fromHtml(source, imageGetter, tagHandler)
tagHandler没有用到,直接为null即可。在这里我们实现imageGetter:
Java 代码复制内容到剪贴板 public static ImageGetter imgGetter = new Html.ImageGetter() { public Drawable getDrawable(final String source) { new Thread(){ public void run(){ try { url = new URL(source); drawable = Drawable.createFromStream(url.openStream(), ""); } catch (Exception e) { e.printStackTrace(); } drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); } }.start(); return drawable; } };
用这种方法的缺陷就是非常耗网络资源。特别是当图片很多的事情不可取。
另一种方法就是将表情存到本地中,TextView通过替换编码来显示表情。TextView通过替换编码来显示表情。
例如【嘻嘻】,找到这样的字符串则去本地文件夹中寻找对应的图片并显示。
Java 代码复制内容到剪贴板 SpannableString ss = new SpannableString(content); int len = 0; int starts = 0; int end = 0; while(len < content.length()){ if(content.indexOf("[", starts) != -1 && content.indexOf("]", end) != -1){ starts = content.indexOf("[", starts); end = content.indexOf("]", end); String phrase = content.substring(starts,end + 1); String imageName = ""; List<Emotions> list = BlogHomeActivity.emotions; for (Emotions emotions : list) { if (emotions.getPhrase().equals(phrase)) { imageName = emotions.getImageName(); } } try { Field f = (Field)R.drawable.class.getDeclaredField(imageName); int i= f.getInt(R.drawable.class); Drawable drawable = activity.getResources().getDrawable(i); if (drawable != null) { drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); ss.setSpan(span, starts,end + 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); } } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { } starts = end; len = end; end++; }else{ starts++; end++; len = end; } } textView.setText(ss);
相关文章推荐
- android 在textView或者EditText当中显示文字加表情符号
- android如果给TextView或EditText的email链接加下划线,并在点击在email连接上可以弹框显示
- android如何在textview或edittext上添加表情
- Android EditText/TextView使用SpannableString显示复合文本
- android textview 显示表情和文字 表情带超链接
- Android—EditText/TextView使用SpannableString显示复合文本
- android TextView和EditText中显示图片
- [置顶] Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- 在EditText中插入表情图片 (CharacterStyle&SpannableString),TextView中显示HTML和图片
- EditText和TextView上显示表情
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- android textview或者edittext显示像QQ那样的图片
- 在EditText中插入表情图片 (CharacterStyle&SpannableString),TextView中显示HTML和图片
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- Android 在TextView,EditText中添加表情,设置输入键盘消失
- Android学习札记48:将TextView中的指定文字转换为表情显示
- Android EditText/TextView使用SpannableString显示复合文本
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等