显示适应手机屏幕宽度的长图

如果要显示普通的图片,现在的显示图片框架主要有Glide,Picasso,Fresco,还有已经停止维护更新的 Image Loader。之前项目中遇到要显示一个长图(宽高比远大于普通手机的宽高比),而且需要宽度适应手机宽度。发现按照普通的图片显示,用第三方图片框架无论怎样都达不到效果。如果要适应手机宽度,不能压缩或者拉伸图片的话,只能显示部分图片,长于手机屏幕的部分会被截取。如果要适应手机宽度,又要全部显示图片,只能压缩图片。如果不能压缩或者拉伸图片,又要全部显示图片,那么适应不了手机宽度。

     看来,要实现图片适应手机宽度,不能压缩或者拉伸图片,又要全部显示图片,这个效果实现不了了。我折腾了很久,后面想到webview不是也可以显示图片吗?而且它可以上下滑动,图片多长都能显示出来。于是我尝试了一下。

1.布局定义一个webview:

<WebView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myweb_view"
    />

2.在activity上实现代码:

WebView myWebView=this.findViewById(R.id.myweb_view);
//拼接了部分代码组成html
url=图片的链接;
String headhtml="<p><img src=\"";
String foothtml="\"/></p>";
String htmlstr=headhtml+url+foothtml;
htmlstr = htmlstr.replaceAll("<img", "<img width=\"100%\"");//保证图片宽度适应手机
myWebView.loadDataWithBaseURL(null, "<html><body>" + htmlstr + "</body></html>", "text/html", "utf-8", null);

3.最后,达到我想要的效果:长图适应手机宽度,不拉伸或者压缩图片,能显示全部图片,上下滑动即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值