`
buliedian
  • 浏览: 1223225 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android控件组合应用六

阅读更多

接上一篇,我们来为ListView中的Item加入表情符的显示能力。

先来回顾一下《Android控件组合应用一》中的数据模型,Site类有一个Map对象用于保存表情信息,键是表情的名称,值是表情对应的drawable资源的ID的字符串表示。

同时,对照新浪微博的数据可以发现,每一个表情实际上就是对应的一个字符串,例如在微博正文中如果遇到“[爱你]”字样,就用一个眼冒红心垂涎三尺的小图标展现出来,就形成了所谓的表情符。

上一篇中我们能过为TextView启动超链接的显示,让其解析HTML标签已经成功完成了特殊字符的处理,在这里,我们继续沿此思路分析下去,如果能为其加入HTML<Image>标签,是不是可以让它画出图片来呢?

经过初步的尝试,在这里会遇到两个问题:一是图片画不出来,二是数据中的图片资源ID无法转换成图片资源。

解决第一个问题的方法是使用重载的public static SpannedfromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)方法,其中的第二个参数是一个图片获取接口,其方法:

public abstract Drawable getDrawable(String source)

用于从一个字符串中返回一个Drawable对象。如果我们把Map中的值传入这个接口,然后想办法将其转换成资源ID,再加载进来成Drawable就可以了。

解决第二个问题其实很简单,Resources类提供了一个方法

public int getIdentifier(String name, String defType, String defPackage)

用于从一个字符串获取资源ID

好了,所有问题都有了解决方法了,BlogTextView的代码如下:

我们通过提供一个重载的setText()方法用于将表情的Map传递进来。

修改BlogAdapter类的updateBlogView()updateRetweeteBlogView()方法,用于传递表情数据,代码片断如下:

运行程序,效果如下图所示:

——欢迎转载,请注明出处 http://blog.csdn.net/caowenbin ——

分享到:
评论

相关推荐

    Android自定义组合控件

    在这个例子中,我们将几个原生的控件组合在一起,形成一个全新的控件,这样不仅可以简化代码,还能使UI设计更加灵活。 自定义组合控件的过程主要包括以下步骤: 1. **选择基础控件**:首先,我们需要确定要组合的...

    仿新浪微博客户端的Android控件组合应用_修正版

    本项目"仿新浪微博客户端的Android控件组合应用_修正版"就是一个很好的实践案例,它主要涉及到以下几个关键知识点: 1. **Android布局设计**:项目的实现基于Android的布局管理器,如LinearLayout、RelativeLayout...

    android自定义组合控件

    6. **布局使用**:在XML布局文件中,你可以像使用其他Android控件一样使用自定义组件,只需引入对应的命名空间,并在标签中设置相应的属性。 7. **复用与封装**:好的自定义控件应该具有高度的可复用性和封装性,...

    Android 自定义控件 组合控件

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。组合控件,顾名思义,是指将多个基本控件通过特定的方式组合在一起,形成一个具有新功能或新外观的复合控件。本篇文章将深入探讨如何在Android中...

    Android使用系统控件组合成新的自定义控件

    在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。通过将系统提供的基础控件进行组合和扩展,我们可以创造出满足特定需求的复杂组件。本教程将深入探讨如何在Android Studio中利用现有...

    Android 自定义组合控件案例

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件能够满足开发者对于界面设计和交互效果的个性化需求,使应用程序更加符合业务逻辑和用户习惯。以下将详细介绍Android自定义组合控件的...

    疯狂Android控件集合

    在Android开发中,控件是构建用户界面的基本元素,它们使得用户能够与应用程序进行交互。"疯狂Android控件集合"这...通过研究这些示例,开发者可以更好地理解和掌握Android控件的使用,提升应用的用户体验和功能实现。

    android 自定义组合控件

    在Android开发中,自定义组合控件是一种常见的需求,它允许开发者根据项目需求创建具有独特功能和视觉效果的用户界面组件。这篇博客文章(http://blog.csdn.net/jason_996/article/details/51203215)可能详细介绍了...

    android 自定义View — 自定义组合控件

    自定义组合控件则是将多个基本控件组合在一起,形成一个新的具有特定功能的视图。 在创建自定义组合控件时,你需要考虑以下几个关键步骤: 1. **选择基类**:根据控件的需求,你可以选择继承 View、TextView、...

    【Android进阶】(1)用继承和组合方式自定义控件

    - **基础概念**:组合是指将多个现有的控件组合在一起,形成一个新的功能更强大的控件。这种方式更灵活,可以将复杂的功能分解为多个简单组件,便于维护和复用。 - **步骤**: 1. 在XML布局中嵌套多个控件,通过`...

    Android 自定义控件 组合控件 TitleBar

    在Android应用开发中,自定义控件是提升用户体验和界面个性化的重要手段。本文将深入探讨如何创建一个自定义的组合控件,特别是针对App标题栏(TitleBar)的设计与实现。我们将从基本的自定义控件概念讲起,并逐步...

    android控件滑动和倒影

    "android控件滑动和倒影"的主题聚焦于如何在Android应用中实现图片按钮的滑动效果以及倒影(反射)效果。下面将详细解释这两个关键知识点。 首先,让我们探讨图片按钮的滑动效果。在Android中,滑动通常涉及到触摸...

    android自定义view之组合控件、重写控件

    本文将深入探讨如何在Android中实现自定义View,包括组合控件和重写现有控件。 首先,我们要理解Android的View体系结构。View是Android UI的基本构建块,它负责绘制和处理用户的交互事件。而ViewGroup则是一种特殊...

    android基本控件练习

    Android平台提供了丰富的用户界面(UI)控件,使得开发者能够创建出既美观又实用的应用程序。本文档将介绍一个典型的注册界面设计实例,其中包含了多种常用的Android UI控件,并对它们的基本用法进行详细解释。 #### ...

    android控件demo

    在"android控件demo"项目中,你可以看到这些控件的实战应用,包括它们的布局设计、事件处理以及与其他组件的交互。通过这个demo,开发者可以更深入地理解这些控件的工作原理,提高Android应用开发的技能。在实际应用...

    Android 控件阴影设置

    本文将深入探讨如何使用第三方库以及自定义扩展来实现Android控件的阴影和圆角阴影功能。 首先,Android原生API虽然提供了诸如`View.setElevation()`方法来创建简单的阴影效果,但这在API 21(Lollipop)及以上版本...

    android简单组合控件使用

    在Android开发中,创建用户界面时经常会涉及到控件的组合与自定义,这不仅可以提高代码的复用性,还能让应用界面更具个性化。本篇主要探讨"android简单组合控件使用"这一主题,涵盖组合控件、自定义控件以及广播接收...

    Android 所有控件的使用

    以下是一些主要的Android控件及其用法的详细说明: 1. **按钮(Button)**:Button是最常见的控件,用于用户点击触发某个操作。可以通过设置文字、图片或两者的组合来定制按钮外观。 2. **文本输入(EditText)**:...

Global site tag (gtag.js) - Google Analytics