Android解决html带图片标签图片宽度过大报错

Android解决html带图片标签图片宽度过大报错

直接上代码

主要代码,具体显示多少可以自己修改

Bitmap bitmap = (Bitmap) resource;
//屏幕大小
int screenWidth = textView.getWidth();
int screenHeight = textView.getHeight();
//图片大小
int width = bitmap.getWidth();
int height = bitmap.getHeight();
//如果图片大小大于可展示屏幕大小,显示三分之二
if (width > screenWidth) {
double bl = (double) width / screenWidth;
int newW = (int) Math.floor(width / bl);
int newH = (int) Math.floor(height / bl);
newW = newW - (screenWidth / 3);
newH = newH - (screenWidth / 3);
bitmap = Bitmap.createScaledBitmap(bitmap, newW, newH, true);
}

全部代码

TextView textView = 展示textView;
String content = html标签;

//处理图片
Html.ImageGetter imgGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
final URLDrawable urlDrawable = new URLDrawable();
Glide.with(context).asBitmap().load(source).into(new SimpleTarget() {
@Override
public void onResourceReady(@NonNull Object resource, @Nullable Transition transition) {
Bitmap bitmap = (Bitmap) resource;
//屏幕大小
int screenWidth = textView.getWidth();
int screenHeight = textView.getHeight();
//图片大小
int width = bitmap.getWidth();
int height = bitmap.getHeight();
//如果图片大小大于可展示屏幕大小,显示三分之二
if (width > screenWidth) {
double bl = (double) width / screenWidth;
int newW = (int) Math.floor(width / bl);
int newH = (int) Math.floor(height / bl);
newW = newW - (screenWidth / 3);
newH = newH - (screenWidth / 3);
bitmap = Bitmap.createScaledBitmap(bitmap, newW, newH, true);
}
urlDrawable.bitmap = bitmap;
urlDrawable.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight());
textView.invalidate();
textView.setText(textView.getText());
}
});
return urlDrawable;
}
};
textView.setText(Html.fromHtml(content, imgGetter, null));

URLDrawable

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;

public class URLDrawable extends BitmapDrawable {

    public Bitmap bitmap;

    @Override
    public void draw(Canvas canvas) {
        if (bitmap != null) {
            canvas.drawBitmap(bitmap, 0, 0, getPaint());
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 请提供更具体的误信息,以便我们更好地帮助您解决问题。一般来说,插入图片时可能会出现以下几种误: 1. 图片路径误:请确保您插入的图片路径正确,可以尝试使用绝对路径或相对路径。 2. 图片格式误:Android Studio支持的图片格式包括PNG、JPEG、GIF和WebP,如果您插入的图片格式不正确,可能会导致报。 3. 图片大小误:Android Studio对图片大小有一定限制,如果您插入的图片过大,可能会导致报。建议将图片压缩至合适的大小再插入。 4. 其他误:如果以上情况都不是问题所在,可能是其他原因导致的误。建议您查看Android Studio的日志文件,以便更好地定位问题。 ### 回答2: 关于Android Studio插入图片的问题,可能是由于以下原因导致的: 1.图片命名问题:在将图片导入项目时,应确保图片的名称不包含特殊字符或空格。最好使用简短且易于识别的名称。 2.路径问题:在使用图片时,应确保使用正确的路径。如果图片在项目中的不同位置,则需要使用相对或绝对路径。 3. 图片格式问题:Android Studio支持的图片格式包括PNG、JPEG和GIF等,如果你插入了不支持的图片格式就会报。 4.大小问题:安卓手机内存有限,如果你插入的图片太大,就会报。要注意减小文件体积以节省空间。 5. 编码问题:有时候图片的编码格式不同会造成报,在工具中可将图片编码转换格式就好。 针对以上问题,建议尝试以下方法: 1.重新命名图片并将其重新导入项目。 2.检查路径以确保使用正确的路径。 3.使用支持的图片格式。 4.减小图片大小。 5.使用工具来更改编码格式。 在应对这些问题时,最好仔细检查并排除可能的原因。除此之外,你还可以查看Android Studio的日志,以查明导致插入图片误的原因。通过排除这些问题,你就可以成功地插入图片并使你的安卓应用程序更加美观和生动。 ### 回答3: 在使用Android Studio添加图片时,有时候可能会遇到一些报,这时候需要仔细排查误原因,进行修复。下面是一些常见的报情况及解决方法。 1. Cannot resolve symbol 'R' 误信息:在引用图片资源时,出现类似“Cannot resolve symbol 'R'”或“Cannot resolve symbol 'app'”等误。 解决方法:这通常是因为资源文件没有正确生成所致。可以尝试在工具栏中选择Build -> Clean Project来清理项目,然后再选择Build -> Rebuild Project重新构建项目。 2. Unable to find explicit activity class 误信息:在调用图片资源时,出现“Unable to find explicit activity class 'com.example.appname.MainActivity'”等误。 解决方法:这通常是因为路径或类名出所致。可以检查代码中的路径和类名是否正确,或者尝试在工具栏中选择File -> Invalidate Caches/Restart清理缓存并重启Android Studio。 3. java.lang.NullPointerException 误信息:在添加图片时,出现“java.lang.NullPointerException”等误。 解决方法:这通常是因为图片资源没有正确引用所致。可以检查代码中是否正确引用了图片资源,或者尝试重新导入图片资源。 总的来说,Android Studio插入图片解决方法很多,需要结合具体情况进行排查。如果遇到问题无法解决,可以搜索相关问题的解决方法,或者在社区中寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值