手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android利用AsyncTask异步类实现网页内容放大缩小
Android利用AsyncTask异步类实现网页内容放大缩小
摘要:本文实例为大家分享了AsyncTask异步类实现网页内容放大缩小的详细代码,供大家参考,具体内容如下WebActivity.java:pac...

本文实例为大家分享了AsyncTask异步类实现网页内容放大缩小的详细代码,供大家参考,具体内容如下

WebActivity.java:

package com.supermario.filemanager; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.http.protocol.HTTP; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.RelativeLayout; import android.widget.ZoomControls; public class WebActivity extends Activity { //网页浏览器 private WebView webView; //进度条布局和网页内容主体布局 private RelativeLayout loadingLayout,webLayout; //放大缩小控制器 private ZoomControls zoomControls; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web); //初始化页面组件 webView = (WebView)findViewById(R.id.webkit); loadingLayout = (RelativeLayout)findViewById(R.id.loadingLayout); webLayout = (RelativeLayout)findViewById(R.id.weblayout); zoomControls = (ZoomControls)findViewById(R.id.zoomControls); WebSettings webSettings = webView.getSettings(); //设置可以使用js脚本 webSettings.setJavaScriptEnabled(true); //执行异步进程 new MyAsyncTask().execute(""); } private void reading(){ String filePath = getIntent().getStringExtra("filePath"); if (filePath != null) { //读取文件 webView.loadData(readWebDataToStringFromPath(filePath, new FileReadOverBack() { @Override public void fileReadOver() { } }), "text/html", HTTP.UTF_8); } else { new AlertDialog.Builder(WebActivity.this).setTitle("出错了").setMessage("获取文件路径出错!").setPositiveButton("返回", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { WebActivity.this.finish(); } }); } } //将网页数据读取到一个字符串变量中 private String readWebDataToStringFromPath(String path,final FileReadOverBack fileReadOverBack){ File file = new File(path); StringBuffer stringBuffer = new StringBuffer(); try { //读取文件内容 FileInputStream inputStream = new FileInputStream(file); byte[] bytes = new byte[1024]; int readCount = 0; while ((readCount = inputStream.read(bytes)) > 0) { stringBuffer.append(new String(bytes, 0, readCount)); } fileReadOverBack.fileReadOver(); } catch (FileNotFoundException e) { return "文件不存在!"; } catch (IOException e) { return "文件读取错误!"; } return stringBuffer.toString(); } interface FileReadOverBack{ void fileReadOver(); } //异步处理类 class MyAsyncTask extends AsyncTask<String, String, String>{ //首先执行的函数 @Override protected void onPreExecute() { super.onPreExecute(); loadingLayout.setVisibility(View.VISIBLE); webLayout.setVisibility(View.GONE); } //后台执行 @Override protected String doInBackground(String... params) { reading(); return null; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); //设置载入进度条隐藏 loadingLayout.setVisibility(View.GONE); //设置浏览器内容可见 webLayout.setVisibility(View.VISIBLE); // 放大按钮 zoomControls.setOnZoomInClickListener(new View.OnClickListener() { //将网页内容放大 @Override public void onClick(View v) { webView.zoomIn(); } }); // 缩小按钮 zoomControls.setOnZoomOutClickListener(new View.OnClickListener() { //将网页内容缩小 @Override public void onClick(View v) { webView.zoomOut(); } }); } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持查字典教程网。

【Android利用AsyncTask异步类实现网页内容放大缩小】相关文章:

Android手机内存中文件的读写方法小结

Android:多线程之AsyncTask

android图像绘制(二)画布上放大缩小问题

android webview 简单浏览器实现代码

Android 判断SIM卡属于哪个移动运营商的实现代码

Android裁剪图片为圆形图片的实现原理与代码

android 电话状态监听(来电和去电)实现代码

Android用户界面开发之:TextView的使用实例

Android列表实现(3)_自定义列表适配器思路及实现代码

Android TabWidget切换卡的实现应用

精品推荐
分类导航