2012-04-10 46 views
0

我想知道将多个小(全部大小相同)的图像放入一个TextView中的最佳方式是什么?从我发现的,最好的方法是使用Html,但是如何?我的所有图像都是离线的,所以我可以将它们复制到原始文件夹中,如果这是正确的话。任何人都可以将我指向正确的方向,或者显示一条类似的线索,但我没有找到?或者,有没有更好的方法,比如不使用TextView,而是其他的东西,可以在布局文件中解决,并动态地填充图像?一个TextView中有多个图像?

顺便说一句,整个事情我想要做的是:

  • 我有一个ListView,装满物品
  • 每个项目都有不同的属性,这是我目前在纯文本打印(我想更换theese与图像
  • 大气压,我使用一个单独的TextView显示theese属性
  • 属性的数量是随机的,但至少是1,并且典型地3-4(所以1图片至少,通常3-4)

欢呼

回答

1

为什么不创建一个可用于您ListView的每一行布局并填充基于该行的数据布局的不同元素?

例如,如果每个项目都有一个最大的4个属性,添加四个ImageViews布局,并根据传入的位置设置其可绘制和知名度的getView

+0

这个听起来不错,我会研究它! – hundeva 2012-04-10 15:03:18

+0

我会做什么是以下几点: 定义的XML与水平allignment一个的LinearLayout和中心引力。在代码认识到这一点,并动态的ImageView的添加到定义的LinearLayout,你说没有什么,但足够接近:) – hundeva 2012-04-10 15:25:19

+0

你必须要小心,因为建设查看回收通过动态适配器返回的意见。实际上,通过调用'setVisibility',您可以通过使用一个标准View来节省CPU,而每次调用'getView'时,都不必在行布局中添加和删除Views。 – 2012-04-10 16:17:04

1

有一两件事是肯定的:你不想把你的图片放入你的textview中。

一个textview可以包含背景,但不应该被用来包含图像。

你想要做的只是设计一个项目布局,将被你的适配器用来填充列表视图。

此项目布局将包含一个仅包含您的文本和图像的textView。然后在你的listAdapter中,你只需显示或隐藏你想要的图像。

尝试在RelativeLayout的,让你有一个简单的设计,甚至重叠的一些元素(图像可以重叠,例如TextView的)

3

听起来像你在聊天使表情基地布局/消息应用程序,我是对的吗? ;)

无论如何,要走的路是使用ImageSpan。您可以使用Matcher找到你要替换所有文字组合,并使用SpannableStringBuilderImageSpan s添加到由匹配返回的位置,这将与由ImageSpan定义的图像替换这些字符。

+0

不,我正在改进我的火车时刻表应用程序,每个火车有不同的属性,就像它有自行车运输或没有,只有第二类或第一类,etcetc :)你提到的答案听起来不错,我会尝试这一个以及:) – hundeva 2012-04-10 15:04:44