TextView中的居中图像

时间:2014-12-22 20:07:50

标签: android html css

我想创建一个TextView,在文本块的中间有一些图像。我用

完成了这个
Html.fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)

并使用我自己的重叠getDrawable()方法:

@Override
public Drawable getDrawable(String source){
     int id;
     if (source.equals("image.png")) {
         id = R.drawable.ic_launcher;
     } else {
         return null;
     }
     LevelListDrawable d = new LevelListDrawable();
     Drawable empty = getResources()
             .getDrawable(id);
     d.addLevel(0, 0, empty);
     d.setBounds(0, 0,
             empty.getIntrinsicWidth(),
             empty.getIntrinsicHeight());
     return d;
}

替换<img>代码。但是,我加载的图像的下边缘总是与文本的底部对齐,如下所示:

enter image description here

我的问题是:有没有办法垂直居中这些图片?

我使用的HTML源代码是:

title = Html.fromHtml("<img src=\"image.png\" align=\"middle\"/>", this, null);
desc = Html.fromHtml("Text <img src=\"image.png\" align=\"middle\"/> "
                + "text <img src=\"image.png\" align=\"middle\"/> blah blah blah blah blah<br>"
                + "Blah <img src=\"image.png\" align=\"middle\"/> blah blah", this, null);

2 个答案:

答案 0 :(得分:0)

尝试将文本的line-height设置为图像的高度。这将使文本使用的空间与图像一样高,并应使文本垂直居中。

我不确定如何以生成html的方式实现这一点,但您可以尝试这样的方法来添加css:

desc = Html.fromHtml("<div style=\"line-height: 60px;\">Text <img src=\"image.png\" align=\"middle\"/> "
            + "text <img src=\"image.png\" align=\"middle\"/> blah blah blah blah blah<br>"
            + "Blah <img src=\"image.png\" align=\"middle\"/> blah blah</div>", this, null);

当然,您需要将60px更改为图像的高度

答案 1 :(得分:0)

试试这个

desc = Html.fromHtml("Text <img src=\"image.png\"  style=\"vertical-align: middle;\" /> "
+ "text <img src=\"image.png\" style=\"vertical-align: middle;\" /> blah blah blah blah blah<br>"
+ "Blah <img src=\"image.png\" style=\"vertical-align: middle;\" /> blah blah", this, null);

这可能会解决您的问题。