【菜鸟学安卓】- TextView 显示Html 二 图片大小的显示问题

这个图片大小的显示,如果直接取图片本身的大小,那么图片就会有大有小,界面就会显的特别的难看,所以对图片大小的处理还是很有必要的


由于本人处理的图片中只有两种类型,一种是非常小的头像,一种是比较的大的图片,这样我们就可以根据图片大小来进行调整,当图片的高度小与一定的值时,则把高宽按一定的比例缩放成一定的值,反之大图片则缩放成适应全屏宽度,这样图片则会显示的正常些。


方法比较牵强,不过蛮用了


代码修改如下:

ImageGetter imgGetter = new Html.ImageGetter() {    
    public Drawable getDrawable(String source) {    
        Drawable drawable = null;    
        URL url;      
        try {       
            url = new URL(source);      
            drawable = Drawable.createFromStream(url.openStream(), "");  //获取网路图片    
        } catch (Exception e) {      
             return null;      
        }      
        //图片高宽处理
        int height = drawable.getIntrinsicHeight();
        int width = drawable.getIntrinsicWidth();
        if(width < 100){
                drawable.setBounds(0, 0, 40, 40);
        }else{
                double scale = (WelcomeActivity.windowWidth-40)/width;
                width = WelcomeActivity.windowWidth-40;
                height = (int)scale*height;
                drawable.setBounds(0, 0, width, height);
        }
        return drawable;
    }
};
不过修改后的图片产生了一定的变形,(WelcomeActivity.windowWidth-40)/width应该是这句上的精度损失造成的,应该是要先将类型进行转变后再进行运算。留待你们自己测试了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 中,可以通过以下两种方式在 TextView显示图片: 1. 使用 HTML 标记 可以在 TextView 中使用 HTML 标记来显示图片。具体做法如下: 在 strings.xml 中定义一个包含 HTML 标记的字符串: ```xml <string name="html_text">这是一个包含图片的文本:<br><img src="android.resource://com.example.app/drawable/ic_launcher"/></string> ``` 在代码中获取该字符串,并将其设置给 TextView: ```java textView.setText(Html.fromHtml(getString(R.string.html_text))); ``` 其中,`android.resource://com.example.app/drawable/ic_launcher` 是图片的路径,需要根据实际情况进行修改。 2. 使用 SpannableString 使用 SpannableString 可以在 TextView 中插入图片,并且可以控制图片的大小和位置。具体做法如下: ```java SpannableString spannableString = new SpannableString("这是一个包含图片的文本:"); Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); spannableString.setSpan(imageSpan, spannableString.length() - 1, spannableString.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); ``` 其中,`R.drawable.ic_launcher` 是图片的资源 ID,需要根据实际情况进行修改。`setBounds()` 方法用于设置图片的大小和位置,`ALIGN_BASELINE` 表示将图片和基线对齐。`setSpan()` 方法用于将图片插入到 SpannableString 中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值