TextView图文混排

public int getResourceId(String name) {
    try {
        // 根据资源的ID的变量名获得Field的对象,使用反射机制来实现的
        Field field = R.drawable.class.getField(name);
        // 取得并返回资源的id的字段(静态变量)的值,使用反射机制
        return Integer.parseInt(field.get(null).toString());
    } catch (Exception e) {
        // TODO: handle exception
    }
    return 0;
}

@Bind(R.id.textview)
TextView textview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    textview.setTextColor(Color.BLACK);
    textview.setBackgroundColor(Color.WHITE);
    textview.setTextSize(20);// 设置字体的大小
    String html = "图像1<img src='image1'/>图像2<img src='image2'/>图像3<img src='image3'/><p>";
    html += "图像4<a href='http://www.baidu.com'><img src='image4'></a>图像5<img src='image5'/>";

    CharSequence charSequence = Html.fromHtml(html, new Html.ImageGetter() {

        @Override
        public Drawable getDrawable(String source) {
            // TODO Auto-generated method stub
            // 获得系统资源的信息,比如图片信息
            Drawable drawable = getResources().getDrawable(
                    getResourceId(source));
            // 第三个图片文件按照50%的比例进行压缩
            if (source.equals("image3")) {
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth() / 2,
                        drawable.getIntrinsicHeight() / 2);
            } else {
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
                        drawable.getIntrinsicHeight());
            }
            return drawable;
        }
    }, null);
    textview.setText(charSequence);
    textview.setMovementMethod(LinkMovementMethod.getInstance());

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中的图文混排可以通过使用TextView和SpannableString来实现。SpannableString是一个可以设置不同样式的字符串类,可以用来设置文字的颜色、大小、字体等属性。 以下是一个简单的例子,展示如何在TextView中实现图文混排: 1. 在布局文件中添加一个TextView: ``` <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` 2. 在Java代码中获取TextView并设置SpannableString: ``` TextView textView = findViewById(R.id.textView); // 创建一个SpannableString对象 SpannableString spannableString = new SpannableString("这是一段文字和图片混排的例子"); // 创建一个ImageSpan对象,用来设置图片 Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); ImageSpan imageSpan = new ImageSpan(drawable); // 将图片插入到SpannableString中 spannableString.setSpan(imageSpan, 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // 设置TextView的文本 textView.setText(spannableString); ``` 在上面的代码中,我们首先创建了一个SpannableString对象,然后创建了一个ImageSpan对象,用来设置图片。接着,我们将图片插入到SpannableString中,并设置了图片的位置。最后,我们将SpannableString设置为TextView的文本。 这样,就可以在TextView中实现图文混排了。当然,这只是一个简单的例子,实际上可以通过SpannableString来实现更复杂的图文混排效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值