- 浏览: 626183 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (164)
- android(基础) (81)
- android(进阶) (2)
- android(底层) (7)
- android(面试) (0)
- android(多媒体) (1)
- android(组件学习) (4)
- android(网络相关) (0)
- android(动画) (1)
- android(数据库) (2)
- android(UI样式) (3)
- android(xml) (0)
- android(调试) (14)
- android(环境搭建) (7)
- android(api) (1)
- C++ (1)
- C (0)
- JavaSE (2)
- Objective-c (1)
- JavaScript (0)
- 设计模式 (0)
- eclipse (3)
- javaee (4)
- 其它 (5)
- linux (18)
- Oracle (1)
- mysql (1)
- 嵌入式linux (1)
- 版本控制工具 (3)
- web前端 (1)
- python (1)
最新评论
-
chungehenyy:
android颜色对应的xml配置值,颜色表 -
u011467537:
...
android中用Spannable在TextView中设置超链接、颜色、字体 -
SurpriseLee:
不能更赞了!
android颜色对应的xml配置值,颜色表 -
u012094586:
这个代码是不是不全呀,能不能提供完整版的给予参考呢?xiexi ...
Android VideoView如何播放RTSP的流 -
luechenying:
顶上天!!!!!!!!!!!!!!!!!!
android颜色对应的xml配置值,颜色表
一、[Android实例]实现TextView里的文字有不同颜色
转eoe:http://www.eoeandroid.com/thread-4496-1-1.html
二、TextView显示html文件中的图片
转javaeye:http://da-en.javaeye.com/blog/712415
我们知道要让TextView解析和显示Html代码。可以使用
但是,怎样让TextView也显示Html中<image>节点的图像呢?
我们可以看到fromHtml还有另一个重构:
实现一下ImageGetter就可以让图片显示了:
至于TagHandler,我们这里不需要使用,可以直接传null。
参考文档:
http://tech-droid.blogspot.com/2010/06/textview-with-html-content.html英语好的朋友就直接看英文文档吧。
三、Android---文字中插入表情
转:http://blog.163.com/spf9190@126/blog/static/50207531201091545954587/
这段时间在做一个短信项目,需要实现短信中插入表情的功能,本一位非常困难,经过一段时间的研究,发现还是比较簡単的,现在总结如下。
以短信输入框为例,短信的输入框是一个EditText,它的append方法不仅可以加入字符串,还可以添加HTML标记。以下就是使用HTML标记添加表情的具体操作。
首先需要构建一个ImageGetter,作用是通过HTML标记获得对应在res目录下的图片:
然后就可以直接往EditText视图中添加
其中 Html.fromHtml("<img src='"+clickedImageId+"'/>"就是HTML的图片标记,在Android中支持了部分HTML标记的使用(这方面我还在继续研究),HTML标记必须被Html.fromHtml修饰。imageGetter即为之前创建的ImageGetter类型的对象。
很简单的几句代码就解决了问题,不仅在EditText中,在TextView中同样可以这样插入图片。
效果图:
在此感谢网上共享资料和经验的朋友们,虽然是比较簡単的功能,但网上的文献对我的帮助还是有很大的。
四、android 短信字符转表情显示过程(转)
转:http://dianzisu.javaeye.com/blog/734327
android 的短信实现方式普通用户适应的话需要长时间的使用才能习惯,将andorid的短信模式设置成我们常用的(一般人用户)的习惯。在查看字符转图片的过程中可以猜测出腾讯的QQ表情的原理应该是一样的
只是在传送非常用的表情时是将byte数据转换为image.
转载请注明:QQ:273733055 ppwuyi@sohu.com
android 在将字符转化为表情图像其核心代码为
builder.setSpan(new ImageSpan(mContext, resId), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
原理过程是先匹配到表情字符然后通过new ImageSpan(上下文,表情地址)绘制出一个ImageView然后替换掉表情字符。
五、文档
public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
Since: API Level 1
Returns displayable styled text from the provided HTML string. Any <img> tags in the HTML will use the specified ImageGetter to request a representation of the image (use null if you don't want this) and the specified TagHandler to handle unknown tags (specify null if you don't want this).
This uses TagSoup to handle real HTML, including all of the brokenness found in the wild.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GEOLO/archive/2011/02/13/6182835.aspx
转eoe:http://www.eoeandroid.com/thread-4496-1-1.html
import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3); t3.setText( Html.fromHtml( "<b>text3:</b> Text with a " + "<a href=\"http://www.google.com\">link</a> " + "created in the Java source code using HTML."));
二、TextView显示html文件中的图片
转javaeye:http://da-en.javaeye.com/blog/712415
我们知道要让TextView解析和显示Html代码。可以使用
Spanned text = Html.fromHtml(source); tv.setText(text);来实现,这个用起来简单方便。
但是,怎样让TextView也显示Html中<image>节点的图像呢?
我们可以看到fromHtml还有另一个重构:
fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
实现一下ImageGetter就可以让图片显示了:
ImageGetter imgGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { Drawable drawable = null; drawable = Drawable.createFromPath(source); // Or fetch it from the URL // Important drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); return drawable; } };
至于TagHandler,我们这里不需要使用,可以直接传null。
参考文档:
http://tech-droid.blogspot.com/2010/06/textview-with-html-content.html英语好的朋友就直接看英文文档吧。
三、Android---文字中插入表情
转:http://blog.163.com/spf9190@126/blog/static/50207531201091545954587/
这段时间在做一个短信项目,需要实现短信中插入表情的功能,本一位非常困难,经过一段时间的研究,发现还是比较簡単的,现在总结如下。
以短信输入框为例,短信的输入框是一个EditText,它的append方法不仅可以加入字符串,还可以添加HTML标记。以下就是使用HTML标记添加表情的具体操作。
首先需要构建一个ImageGetter,作用是通过HTML标记获得对应在res目录下的图片:
ImageGetter imageGetter = new ImageGetter() { @Override public Drawable getDrawable(String source) { int id = Integer.parseInt(source); //根据id从资源文件中获取图片对象 Drawable d = getResources().getDrawable(id); d.setBounds(0, 0, d.getIntrinsicWidth(),d.getIntrinsicHeight()); return d; } };
然后就可以直接往EditText视图中添加
inputLable.append(Html.fromHtml("<img src='"+clickedImageId+"'/>", imageGetter, null));
其中 Html.fromHtml("<img src='"+clickedImageId+"'/>"就是HTML的图片标记,在Android中支持了部分HTML标记的使用(这方面我还在继续研究),HTML标记必须被Html.fromHtml修饰。imageGetter即为之前创建的ImageGetter类型的对象。
很简单的几句代码就解决了问题,不仅在EditText中,在TextView中同样可以这样插入图片。
效果图:
在此感谢网上共享资料和经验的朋友们,虽然是比较簡単的功能,但网上的文献对我的帮助还是有很大的。
四、android 短信字符转表情显示过程(转)
转:http://dianzisu.javaeye.com/blog/734327
android 的短信实现方式普通用户适应的话需要长时间的使用才能习惯,将andorid的短信模式设置成我们常用的(一般人用户)的习惯。在查看字符转图片的过程中可以猜测出腾讯的QQ表情的原理应该是一样的
只是在传送非常用的表情时是将byte数据转换为image.
转载请注明:QQ:273733055 ppwuyi@sohu.com
/*** * * 此方法描述的是: 注意此方法在做表情转换的准备了 * @author:wujun@cqghong.com,ppwuyi@sohu.com * @version: 2010-5-13 下午03:31:13 */ private void bindCommonMessage(final MessageItem msgItem) { if (mDownloadButton != null) { mDownloadButton.setVisibility(View.GONE); mDownloadingLabel.setVisibility(View.GONE); } // Since the message text should be concatenated with the sender's // address(or name), I have to display it here instead of // displaying it by the Presenter. mBodyTextView.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); // Get and/or lazily set the formatted message from/on the // MessageItem. Because the MessageItem instances come from a // cache (currently of size ~50), the hit rate on avoiding the // expensive formatMessage() call is very high. CharSequence formattedMessage = msgItem.getCachedFormattedMessage(); if (formattedMessage == null) { //肯定为null应为msgItem.formattedMessage从诞生来就没被注意过一次 formattedMessage = formatMessage(msgItem.mContact, msgItem.mBody, //重点到了 msgItem.mSubject, msgItem.mTimestamp, msgItem.mHighlight); msgItem.setCachedFormattedMessage(formattedMessage); } mBodyTextView.setText(formattedMessage); if (msgItem.isSms()) { hideMmsViewIfNeeded(); } else { Presenter presenter = PresenterFactory.getPresenter( "MmsThumbnailPresenter", mContext, this, msgItem.mSlideshow); presenter.present(); if (msgItem.mAttachmentType != WorkingMessage.TEXT) { inflateMmsView(); mMmsView.setVisibility(View.VISIBLE); setOnClickListener(msgItem); drawPlaybackButton(msgItem); } else { hideMmsViewIfNeeded(); } } drawLeftStatusIndicator(msgItem.mBoxId); drawRightStatusIndicator(msgItem); } //------------------------------------------------------------------------------ /*** * * 此方法描述的是: 开始转换了哦 * @author:wujun@cqghong.com,ppwuyi@sohu.com * @version: 2010-5-13 下午03:32:52 */ private CharSequence formatMessage(String contact, String body, String subject, String timestamp, String highlight) { CharSequence template = mContext.getResources().getText(R.string.name_colon); //遇到鬼了 <主题:<xliff:g id="SUBJECT">%s</xliff:g>>" SpannableStringBuilder buf = //把他当作StringBuffer只是它可以放的不是 String 而已他能放跟多类型的东西 new SpannableStringBuilder(TextUtils.replace(template, new String[] { "%s" }, new CharSequence[] { contact })); //替换成联系人 boolean hasSubject = !TextUtils.isEmpty(subject); //主题 if (hasSubject) { buf.append(mContext.getResources().getString(R.string.inline_subject, subject)); //buff先在是 联系人 主题 XXXX eg wuyi <主题:dsadasdsa> 我爱我家 } if (!TextUtils.isEmpty(body)) { if (hasSubject) { buf.append(" - "); //如果内容有主题有就+ " - " eg wuyi <主题:sdsadsadsa> - } SmileyParser parser = SmileyParser.getInstance(); //获得表情类了哦 buf.append(parser.addSmileySpans(body)); //追查 急切关注中 } if (!TextUtils.isEmpty(timestamp)) { buf.append("\n"); int startOffset = buf.length(); // put a one pixel high spacer line between the message and the time stamp as requested // by the spec. //把之间的信息和时间戳的要求间隔一个像素的高线 //由规范 buf.append("\n"); buf.setSpan(new AbsoluteSizeSpan(3), startOffset, buf.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); startOffset = buf.length(); buf.append(timestamp); buf.setSpan(new AbsoluteSizeSpan(12), startOffset, buf.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // Make the timestamp text not as dark 改变某区域颜色 时间的地方为特殊颜色 int color = mContext.getResources().getColor(R.color.timestamp_color); buf.setSpan(new ForegroundColorSpan(color), startOffset, buf.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } if (highlight != null) { int highlightLen = highlight.length(); String s = buf.toString().toLowerCase(); int prev = 0; while (true) { int index = s.indexOf(highlight, prev); if (index == -1) { break; } buf.setSpan(new StyleSpan(Typeface.BOLD), index, index + highlightLen, 0); prev = index + highlightLen; } } return buf; } //------------------------------------------------------------ /** * Adds ImageSpans to a CharSequence that replace textual emoticons such * as :-) with a graphical version. * * @param text A CharSequence possibly containing emoticons * @return A CharSequence annotated with ImageSpans covering any * recognized emoticons. * 添加ImageSpans一个CharSequence的表情符号代替文字等 *如用图形版本:-)。 * 核心是把表情字符替换成ImageSpans的对象 */ public CharSequence addSmileySpans(CharSequence text) { SpannableStringBuilder builder = new SpannableStringBuilder(text); Matcher matcher = mPattern.matcher(text); while (matcher.find()) { int resId = mSmileyToRes.get(matcher.group()); //注意下面的一块有点不好理解哦但是是核心 builder.setSpan(new ImageSpan(mContext, resId), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } return builder; }总结:
android 在将字符转化为表情图像其核心代码为
builder.setSpan(new ImageSpan(mContext, resId), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
原理过程是先匹配到表情字符然后通过new ImageSpan(上下文,表情地址)绘制出一个ImageView然后替换掉表情字符。
五、文档
public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
Since: API Level 1
Returns displayable styled text from the provided HTML string. Any <img> tags in the HTML will use the specified ImageGetter to request a representation of the image (use null if you don't want this) and the specified TagHandler to handle unknown tags (specify null if you don't want this).
This uses TagSoup to handle real HTML, including all of the brokenness found in the wild.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GEOLO/archive/2011/02/13/6182835.aspx
发表评论
-
Fragment 横竖屏切换问题
2013-04-24 14:41 1864在默认情况下当发生横 ... -
Android EditText 增加自定义过滤
2012-02-19 22:20 2429在Android中,可以通过对EditText设置setFil ... -
解决android textview自动换行问题
2012-02-16 11:46 10778今天忽然发现android项目中的文字排版参差不齐的情况非常严 ... -
通过adb命令获取Android手机的IP地址
2011-12-30 19:11 4400要获取Android手机的IP地址,必须先保证你的Androi ... -
Android 图形用户界面 之 绘图(二) Paint类 主要方法介绍
2011-12-30 09:10 1472/** * Paint类介绍 * * Pa ... -
ListView底部分隔线的问题
2011-12-20 14:42 4330在工作中遇到了一个难题,就是一个listView在最下面的一个 ... -
android获取手机上的图片和视频缩略图thumbnails
2011-11-03 22:05 10076转贴自:http://www.android123.com.c ... -
Activity中使用AIDL让Service与Activity通信
2011-10-25 00:06 2803简易计算器,默认执行1+1的计算,点击go按钮执行计算,先看效 ... -
Android图形报表之AchartEngine(附开发包+API文档)
2011-10-22 16:49 11408统计报表: Java4Less (http://java4le ... -
android中用Spannable在TextView中设置超链接、颜色、字体
2011-10-21 23:08 50562昨晚研读 ApiDemo 源码至 com.example.an ... -
android动态设置TextView字体颜色
2011-10-21 11:50 6478最近写程序就遇到了这么个难题,在TextView 上,正常字体 ... -
layer-list和include的使用
2011-10-20 10:14 2416layer-list,include,merge使用,记录一下 ... -
自定义AlertDialog样式,根据屏幕大小来显示
2011-10-19 12:43 4628先介绍一些关于AlertDialog的基本知识: ... -
Android获取屏幕分辨率及DisplayMetrics简介
2011-10-19 08:56 2836Android 可设置为随着窗口大小调整缩放比例,但即便如此, ... -
android资源文件访问android.resource
2011-10-17 09:14 4221android.resource使用转自:http://www ... -
ImageView添加边框
2011-10-16 19:37 2118import android.content.Context; ... -
Android 实现TextView中文字链接的方式
2011-10-16 14:08 2526Android 的实现TextView中文字链接的方式有很多种 ... -
android实现TextView多行文本滚动
2011-10-16 13:38 6447Android中我们为了实现文本的滚动可以在ScrollVie ... -
ListView之setEmptyView的问题
2011-10-15 23:19 4983使用listView或者gridView时,当列表为空时,有时 ... -
去掉TabActivity底部默认白线
2011-10-15 16:38 3309经过一翻百度,google终于实现了TabActivity设置 ...
相关推荐
总结,针对Android TextView实现HTML图片显示,可以选择WebView方式,它适用于复杂的HTML渲染,而如果只是简单展示图片,使用`Html.fromHtml()`配合自定义`ImageGetter`会更轻量级。两种方法都能实现图片点击的交互...
在Android开发中,有时我们需要在TextView中展示富文本内容,比如HTML格式的文本,这能够增强界面的表现力,包括插入图片、设置字体样式等。这个"Android TextView显示html的demo"就是专门为了实现这一功能而设计的...
本文将深入探讨如何在Android的TextView中正确加载包含文字和图片的HTML内容,并解决图片显示为小方块的常见问题。 首先,我们要了解Android中的TextView默认并不支持HTML解析和渲染。为了使TextView能够处理HTML,...
Android TextView可以支持简单的Html标签,但大部分Html标签是不支持的或者处理得不太好的,其中Img标签就是如此。如果在html中使用img标签的话就会遇到以下问题: 1、图片不能居中显示 2、图片的大小被缩小...
本文将详细介绍如何在Android的TextView中显示图片和图像。 首先,我们要理解Android系统提供的一些基本资源类型,包括Drawable资源,这是用来表示图像的主要方式。在Android工程中,图片通常存储在res/drawable...
总结,Android中的TextView不仅可以显示纯文本,还可以通过HTML、SpannableString或SpannableStringBuilder等方式插入图片,实现文字与图片的混合显示。需要注意的是,处理好图片的大小、位置以及与文字的关系,以...
本教程将详细介绍如何在 `TextView` 中使用 HTML 片段来实现文字和图片的混排,同时处理网络图片的显示。 首先,我们需要理解 `TextView` 的 `setText()` 方法。这个方法不仅能接受字符串参数,还可以接受 `...
实现一下ImageGetter就可以让图片显示了: ImageGetter imgGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { Drawable drawable = null; drawable = Drawable....
在Android开发中,TextView是用于显示文本的基本组件,但其实它并不局限于纯文本,还能通过一些方式来显示图片。这个Demo就是关于如何在TextView中嵌入并显示图片的一个实例。以下我们将详细探讨如何利用TextView的...
2. **图片显示** 要在HTML文本中插入图片,可以使用`<img>`标签,但是`Html.fromHtml()`不支持加载网络图片。对于这种情况,可以使用第三方库,如`androidx.core.text.HtmlCompat`,它提供了更广泛的HTML标签支持,...
总结一下,Android的TextView可以通过`Html.fromHtml()`和自定义的`ImageGetter`来显示HTML内容中的图片。对于本地资源,需要使用`ImageGetter`来加载和绑定图片;而对于网络资源,`Html.fromHtml()`可以直接处理。...
在Android开发中,`TextView` 是一个非常常用的组件,用于显示单行或多行文本。然而,当文本包含HTML格式时,`TextView` 默认是不支持HTML解析和渲染的。为了在`TextView` 中显示带有HTML标签和图片的内容,我们需要...
`HtmlTextView`是Android开发中的一个开源项目,主要用于在3.0及以上版本的TextView中解析并展示HTML代码,尤其在处理网络上的图像或图片时非常有用。然而,根据描述,这个项目在Android 7.0及更高版本上的表现可能...
在Android中,可以使用`Html.fromHtml()`方法将HTML字符串转换为可以在`TextView`中显示的格式。例如: ```java String html = "<b>Hello, World!</b>"; TextView tv = (TextView) findViewById(R.id.text_view)...
如果要显示HTML格式的文本,可以使用`android:textHtml`属性,但这在API级别24及以下版本并不支持,所以我们通常会使用`Html.fromHtml()`方法来解析HTML字符串。 接下来,我们将详细讲解如何在TextView中添加图片和...
最后,对于更复杂的文本展示需求,比如HTML格式的文本或者包含图片,可以使用`WebView`代替`TextView`,因为`WebView`支持渲染HTML内容,同时也可以实现滚动效果。 总的来说,通过XML布局和适当的Java代码,开发者...
在Android开发中,`TextView` 是一个非常常用的控件,用于显示单行或多行文本。然而,当需要在`TextView`中展示HTML格式的内容时,就需要进行一些特殊处理,以便让`TextView`能够理解并正确渲染HTML标签。本文将深入...
1. **TextView加载Html**:在Android中,TextView通常用于显示纯文本,但通过加载Html,我们可以让TextView支持富文本格式,包括内嵌图片、链接、颜色等。使用`Html.fromHtml()`方法可以将Html字符串转换为Spanned...
综上所述,`TextView`加载HTML图片是Android开发中实现图文混排的一种常见方式,通过自定义`ImageGetter`、使用第三方库等方式,可以满足各种复杂的显示需求。不过,要注意性能优化和兼容性问题,以提供更好的用户...