Android使用WebView显示网页(图片缩放)

上周写了一篇关于webview的博文:Android使用WebView显示网页(图片大小的处理及内容的自适应)

后来通过自己想的第三种办法实现了图片的适配,方法是设置html的img标签属性,把图片的宽度设置为设备屏幕的宽度,涉及的知识点就是,获取设备宽度值、java代码 添加/修改 html标签属性。

1. 获取设备屏幕信息:

	/**
	 * 获取设备的屏幕信息
	 * @param activity
	 * @return
	 */
	public static DeviceInfo getDevicesPix(Activity activity) {
		DisplayMetrics metric = new DisplayMetrics();
		activity.getWindowManager().getDefaultDisplay().getMetrics(metric);
        DeviceInfo deviceInfo = new DeviceInfo();
        deviceInfo.width = metric.widthPixels;  // 屏幕宽度(像素)
        deviceInfo.height = metric.heightPixels;  // 屏幕高度(像素)
        deviceInfo.density = metric.density;  // 屏幕密度(0.75 / 1.0 / 1.5)
        deviceInfo.densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)

        Log.i(TAG, "deviceInfo.width" + deviceInfo.width);
        Log.i(TAG, "deviceInfo.height" + deviceInfo.height);
        Log.i(TAG, "deviceInfo.density" + deviceInfo.density);
        Log.i(TAG, "deviceInfo.densityDpi" + deviceInfo.densityDpi);

        return deviceInfo;
	}

html标签中设置图片宽度值的单位是像素pix,所以这里没有转换。

2. jsoup设置html标签属性:

			Elements elementImgs = detail.getElementsByTag("img");//获取所有img标签

			DeviceInfo deviceInfo = DeviceUtil.getDevicesPix(BlogContentActivity.this);

			for (Element img : elementImgs) {
				img.attr("width", (int)(deviceInfo.width/deviceInfo.density) + "px");//设置width属性
			}

将经过处理的html加载到webview,就可以看到图片是与屏幕同宽,当然如果图片本来的大小小于屏幕宽度,就没必要进行放大了,可以在修改width属性前,先判断一下。

通过webview显示CSDN博文,就剩下一个问题:如何高亮显示代码,且webview的宽度不会因为长代码太长导致体验不好。下一篇博文就解决这个问题。

时间: 2024-10-14 01:42:32

Android使用WebView显示网页(图片缩放)的相关文章

Android使用WebView显示网页

在Android开发过程中,会遇到需要显示网页的需求,或者需要用webview控件来达到某个效果.我这段时间在做CSDN博客的客户端,使用webview来显示博文内容,一是因为解析博文内容再适配比较麻烦,并且效果很不理想,后来想到直接用webview来显示,将博文原汁原味的呈现出来. webview使用起来比较容易,但是想要达到比较理想的效果还需要很多摸索.我做的CSDNBlog客户端,现在基本可以使用,已经在进行版本迭代了,但是博文的webview显示效果依然不太满意,主要是因为图片的缩放问题

Android中WebView获取网页中标题 ,内容, 图片的方法

如题,在Android中WebView获取网页中标题 ,内容, 图片的方法 首先是获取标题,在new WebChromeClient(){}中重写onReceivedTitle()方法 @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); // loge.e("__页面标题__"+title); } 获取内容,是参考的这边的 http

Android-使用WebView显示网页

Android-使用WebView显示网页 WebView是安卓提供显示web界面的工具类,可以像PC端的浏览器那样进行显示: 大致就是上图那样.其实也可以不用WebView,简单的三行代码就可以在安卓App上显示网页界面. 示例 Uri uri = Uri.parse("http://www.baidu.com"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); 运行效果: 使用WebView

用WebView显示网页

用WebView显示网页非常方便,缺点是速度比较慢,对webView属性也要设置一下,否则可能会出现宽度不匹配等问题.代码并不复杂,如下: private WebView wv_statistics_html; @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override protected void initViews(Bundle savedInstanceState) {     requestWindowFeature(Window.FEATUR

Android ImageView 不显示JPEG图片 及 Android Studio中怎样引用图片资源

Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里须要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其他的JPEG格式的图片确能够正常的显示. 原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示. 解决:换一张图片.或又一次生成JPEG图片. 假设还是不能正常显示,建议在设置完VISIBLE后,调用例如以下方法: iv.setVisibili

Android ImageView 不显示JPEG图片 及 Android Studio中如何引用图片资源

Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里需要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其它的JPEG格式的图片确可以正常的显示. 原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示. 解决:换一张图片,或重新生成JPEG图片. 如果还是不能正常显示,建议在设置完VISIBLE后,调用如下方法: iv.setVisibility(

Anroid5.0下webview显示本地图片

以前的时候,Android下webview显示本机图片可用ontent://+包名+路径的方式来实现,后来5.0后,安全协议提高了,不支持这种方式了,后来发现img标签可以是这样用,将本地图片转换为bitmap,再将bitmap转为Base64 public static String imgToBase64(Bitmap bitmap) { ByteArrayOutputStream out = null; try { out = new ByteArrayOutputStream(); bi

Android 获取并显示远程图片 Picasso框架的使用(一)

转载请注明出处:明桑Android 在Android开发中,常需要从远程获取图片并显示在客户端,当然我们可以使用原生HttpUrlConnection和AsyncTask等操作来完成,但并不推荐,因为这样不仅需要我们编写大量的代码,还需要处理缓存和下载管理等,最好自己封装成库或者采用第三方库: Picasso:A Powerful Image Downloading and Caching Library for Android 根据名字就知道它是跟什么相关了(Picasso:毕加索)它的基本操

Android 获取并显示远程图片 Picasso框架的使用(二)

转载请注明出处:明桑Android 在上篇文章中介绍了Picasso的基本用法,这篇文章作为以上的练习: 本文代码github地址:UsePicasso 实现效果:(动图请耐心加载) 需要的知识点 了解Picasso框架的使用:Android 获取并显示远程图片 Picasso框架的使用(一) 知道如何自定义GridView 我们需要编写两个布局文件:activity_gridview.xml activity_main.xml 以及ImageAdapter类.GridImageActivity