当前位置: 首页 > news >正文

泉州市网站建设_网站建设公司_SEO优化_seo优化

网站重新备案 需要关闭网站么,电子商务网站建设感想,企业内网网站,网站后台做数据库备份代码WebView 网页滚动截屏#xff0c;可对整个网页进行截屏而不是仅当前屏幕哦#xff01; 注意若Web页面存在position:fixed; 的话得在调用前设置为 position:absolute; 哦#xff0c;否则会出现很多次的#xff0c;请看下面的具体解说吧#xff01;#xff01; private st… WebView 网页滚动截屏可对整个网页进行截屏而不是仅当前屏幕哦 注意若Web页面存在position:fixed; 的话得在调用前设置为 position:absolute; 哦否则会出现很多次的请看下面的具体解说吧 private static Bitmap getViewBitmapWithoutBottom(View v) {if (null v) {return null;}v.setDrawingCacheEnabled(true);v.buildDrawingCache();if (Build.VERSION.SDK_INT 11) {v.measure(View.MeasureSpec.makeMeasureSpec(v.getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(v.getHeight(), View.MeasureSpec.EXACTLY));v.layout((int) v.getX(), (int) v.getY(), (int) v.getX() v.getMeasuredWidth(), (int) v.getY() v.getMeasuredHeight());} else {v.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());}Bitmap bp Bitmap.createBitmap(v.getDrawingCache(), 0, 0, v.getMeasuredWidth(), v.getMeasuredHeight() - v.getPaddingBottom());v.setDrawingCacheEnabled(false);v.destroyDrawingCache();return bp;}public static Bitmap getViewBitmap(View v) {if (null v) {return null;}v.setDrawingCacheEnabled(true);v.buildDrawingCache();if (Build.VERSION.SDK_INT 11) {v.measure(View.MeasureSpec.makeMeasureSpec(v.getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(v.getHeight(), View.MeasureSpec.EXACTLY));v.layout((int) v.getX(), (int) v.getY(), (int) v.getX() v.getMeasuredWidth(), (int) v.getY() v.getMeasuredHeight());} else {v.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());}Bitmap b Bitmap.createBitmap(v.getDrawingCache(), 0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());v.setDrawingCacheEnabled(false);v.destroyDrawingCache();return b;}/*** 获取 WebView 视图截图* param context* param view* return*/public static Bitmap getWebViewBitmap(Context context, WebView view) {if (null view) return null;view.scrollTo(0, 0);view.buildDrawingCache(true);view.setDrawingCacheEnabled(true);view.setVerticalScrollBarEnabled(false);Bitmap b getViewBitmapWithoutBottom(view);// 可见高度int vh view.getHeight();// 容器内容实际高度int th (int)(view.getContentHeight()*view.getScale());Bitmap temp null;if (th vh) {int w getScreenWidth(context);int absVh vh - view.getPaddingTop() - view.getPaddingBottom();do {int restHeight th - vh;if (restHeight absVh) {view.scrollBy(0, restHeight);vh restHeight;temp getViewBitmap(view);} else {view.scrollBy(0, absVh);vh absVh;temp getViewBitmapWithoutBottom(view);}b mergeBitmap(vh, w, temp, 0, view.getScrollY(), b, 0, 0);} while (vh th);}// 回滚到顶部view.scrollTo(0, 0);view.setVerticalScrollBarEnabled(true);view.setDrawingCacheEnabled(false);view.destroyDrawingCache();return b;}/*** 拼接图片* param newImageH* param newImageW* param background* param backX* param backY* param foreground* param foreX* param foreY* return*/private static Bitmap mergeBitmap(int newImageH, int newImageW, Bitmap background, float backX, float backY, Bitmap foreground, float foreX, float foreY) {if (null background || null foreground) {return null;}Bitmap bitmap Bitmap.createBitmap(newImageW, newImageH, Bitmap.Config.RGB_565);Canvas cv new Canvas(bitmap);cv.drawBitmap(background, backX, backY, null);cv.drawBitmap(foreground, foreX, foreY, null);cv.save(Canvas.ALL_SAVE_FLAG);cv.restore();return bitmap;}/*** get the width of screen*/public static int getScreenWidth(Context ctx) {int w 0;if (Build.VERSION.SDK_INT 13) {Point p new Point();((WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getSize(p);w p.x;} else {w ((WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth();}return w;}/*** 保存图片* param context* param bitmap* param file* param quality* return*/public static boolean save(Context context, Bitmap bitmap, File file, int quality) {if (bitmap null) return false;// 获得后缀格式String abs file.getAbsolutePath();String suffix abs.substring(abs.lastIndexOf(.)1).toLowerCase();Bitmap.CompressFormat format;if (jpg.equals(suffix) || jpeg.equals(suffix)) {format Bitmap.CompressFormat.JPEG;} else {format Bitmap.CompressFormat.PNG;quality 100;}if (file.exists() ! file.delete()) return false;try {FileOutputStream stream new FileOutputStream(file);bitmap.compress(format, quality, stream);stream.flush();stream.close();context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));return true;} catch (Exception e) {return false;}} JS调用截屏操作 /*** 屏幕截图* param name* param isRecover*/JavascriptInterfacepublic String Capture(String name, boolean isRecover) {File dir new File(Config.PUBLIC_PICTURES_PATH);LogUtil.i(capture, dir.getAbsolutePath());if (! dir.exists() ! dir.mkdirs()) return null;final File file new File(dir, name);String path file.getAbsolutePath();if (file.exists() ! isRecover) return path;body.post(new Runnable() {Overridepublic void run() {Bitmap bitmap CaptureUtil.getWebViewBitmap(activity, body);if (null ! bitmap) ImageUtil.save(activity, bitmap, file, 100);}});return path;}JavascriptInterfacepublic String Capture(String name) {return Capture(name, true);}JavascriptInterfacepublic String Capture() {String name String.valueOf(System.currentTimeMillis()) .png;return Capture(name);}示例图我先通过 JS 触发显示了一个原生的 Button按钮 然后WebView跳转到 csdn 页面然后点击截屏按钮用来触发网页截屏的。下面的图是我手动截的图不是上面代码的效果哈下下面很长的那张才是Java程序的网页截图。。。 测试CSDN的网页完整截图比较长哦~ 一般截图的功能都用于特殊的页面如活动页面之类的不会太长那样是没有问题的。若是这种滚动到底部自动加载的话可能就会很长很长很长啦·····自己看着办吧。。 但这里有个BUG顶部固定Banner条每次截屏都有这个有解决办法不过得是你自己的网页才有操作权限哦需要修改JS啦。 当截图JS命令触发前把顶部悬浮的样式设置为绝对定位当截屏完成后再改回固定定位即可没什么难度了。 截屏是需要一些时间的所以需要预设一个定时器来操作JS栗子如下: JS.Capture 是 WebView 绑定的自定义 Javascript 类对象 var file ;var $header $(#layout-header);$header.css({ position: absolute });setTimeout(function(){if (typeof name function || typeof name undefined) {file JS.Capture();} else {file JS.Capture(name, isRecover);}}, 500);setTimeout(function(){JS.Toast(截图已保存, fast);JS.Toast(file.replace(storage/emulated/0/, ));$header.css({ position: fixed });if ($.isFunction(callback)) {callback(file);}}, 1500); 转载于:https://www.cnblogs.com/zhouzme/p/5758388.html
http://www.ihoyoo.com/news/10737.html

相关文章:

  • dw如何建设网站网站建设的质量区别
  • 合肥有哪些做网站的山东省建设教育信息网站首页
  • 哈尔滨网页设计模板网站市场营销策划公司
  • 专业的企业网站建设公司广州市城乡建设局
  • 建设网站需要注册证书吗百度竞价排名背后的伦理问题
  • 正规免费发布信息网站wordpress插件重写
  • 专做洗衣柜的网站建网站 必须学html吗
  • 做网站原价商品打个横线企业网站推广工具
  • 南宁市建设局网站青岐网站建设平台
  • 网站开发网站设计制作咸阳市网站建设公司
  • 做精神科网站丹徒网站建设怎么样
  • 做网站计入什么科目子域名绑定wordpress子目录
  • you物公馆网站建设长春市建设工程信息网站
  • 网站程序方面如何开设一个网站
  • 网站建设桔子科技站长工具seo综合查询adc
  • 南京做企业网站公司哪家好工程设计公司
  • 可以悬赏做任务的叫什么网站张槎网站建设制作
  • 宇舶手表网站加盟类网站怎么做
  • 大渡口的网站开发公司电话大连免费营销型建站网络推广
  • 影楼网站建设全球建站
  • 网站建设维护学什么科目公司对比网站
  • 网站开发外快服务器两个域名一个ip做两个网站
  • 李志自己做网站2023北京一级战备开始
  • 个人站点的制作网站备案没有了
  • 深圳设计网站的公司wordpress优化指南
  • 百度网盘做自已网站网站做任务挣钱
  • 怎样做企业网站备案网站关键词怎样修改
  • 先进网站网站可以放多少视频
  • 昆明营销型网站建设公司网站表单
  • .电子商务网站建设的核心是网站建设技术和销售工资