当前位置: 代码迷 >> Android >> Android TextView中有图片有文字混同排列
  详细解决方案

Android TextView中有图片有文字混同排列

热度:23   发布时间:2016-04-28 04:38:12.0
Android TextView中有图片有文字混合排列

Android TextView中有图片有文字混合排列

1.使用html.fromHtml

2.新建ImageGetter

3.使用<img src>标签


demo:

1.设置文字

     ((TextView) findViewById(R.id.tv_gradlist_calorie_desc)).setText(Html                .fromHtml(descString(), getImageGetterInstance(), null));
2.获取文字

    /**     * 字符串     *      * @return     */    private String descString() {        return "您消耗的总热量约等于4杯" + "<img src='" + R.drawable.ic_gradlist_coke                + "'/>" + "+5只" + "<img src='" + R.drawable.ic_gradlist_ice                + "'/>" + "+10个" + "<img src='"                + R.drawable.ic_gradlist_hamburger + "'/>" + "";    }
3.imagegetter

    /**     * ImageGetter用于text图文混排     *      * @return     */    public ImageGetter getImageGetterInstance() {        ImageGetter imgGetter = new Html.ImageGetter() {            @Override            public Drawable getDrawable(String source) {                int fontH = (int) (getResources().getDimension(                        R.dimen.textSizeMedium) * 1.5);                int id = Integer.parseInt(source);                Drawable d = getResources().getDrawable(id);                int height = fontH;                int width = (int) ((float) d.getIntrinsicWidth() / (float) d                        .getIntrinsicHeight()) * fontH;                if (width == 0) {                    width = d.getIntrinsicWidth();                }                d.setBounds(0, 0, width, height);                return d;            }        };        return imgGetter;    }
效果



  相关解决方案