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

北京城建亚泰建设集团有限公司网站百度导航是哪个国家的公司

北京城建亚泰建设集团有限公司网站,百度导航是哪个国家的公司,win2012安装wordpress,软件开发专业哪个学校好关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、实践四、 推荐阅读 一、导读 我们…

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、概览
  • 三、实践
  • 四、 推荐阅读

在这里插入图片描述

一、导读

我们继续总结学习,温故知新。

二、概览

本文讲述如何遍历获取页面中所有的view,并输出对应的id,textview文本内容,imageview实际大小及设置的图片大小。

可用于检测android应用中的大图。

三、实践

不多说,直接上代码,

图片大小检测思路。

    fun checkBitmapFromView(){//1、遍历activity中的各个View控件//2、获取View控件加载的Bitmap//3、对比Bitmap宽高与View宽高}

示例代码:
遍历获取所有的view,并输出相应的信息

List<View> viewList=new ArrayList<>();@Overrideprotected void onResume() {super.onResume();logoIcon.postDelayed(new Runnable() {@Overridepublic void run() {getAllViews((ViewGroup) getWindow().getDecorView());for (View view: viewList) {if(view instanceof TextView) {Log.d("xyz", view.toString());Log.d("xyz", ((TextView)view).getText().toString());} else if(view instanceof ImageView) {Log.d("xyz", view.toString());checkBitmap(view, ((ImageView)view).getDrawable());} else {Log.d("xyz", view.toString());}}}}, 3000);}
//获取所有的子view,我们这里只保存imageview及textview,用于测试private List<View> getAllViews(ViewGroup viewGroup){for(int i=0;i< viewGroup.getChildCount(); i++){View view = viewGroup.getChildAt(i);if(view instanceof ViewGroup) {getAllViews((ViewGroup) view);} else {if(view instanceof ImageView || view instanceof TextView) {viewList.add(view);}if(view.getVisibility() == View.VISIBLE) {}}}return viewList;}

ImageView大小检测

private void checkBitmap(Object thiz, Drawable drawable) {if (drawable instanceof BitmapDrawable && thiz instanceof View) {final Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();final View view = (View) thiz;int width = view.getWidth();int height = view.getHeight();if (bitmap != null) {if (width > 0 && height > 0) {// 图标宽高都大于view带下的2倍以上,则警告if (bitmap.getWidth() >= (width << 1)&& bitmap.getHeight() >= (height << 1)) {
//                        warn(bitmap.getWidth(), bitmap.getHeight(), width, height, new RuntimeException("Bitmap size too large"));}warn(bitmap.getWidth(), bitmap.getHeight(), width, height, new RuntimeException("log"));} else {final Throwable stackTrace = new RuntimeException();view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {@Overridepublic boolean onPreDraw() {int w = view.getWidth();int h = view.getHeight();if (w > 0 && h > 0) {if (bitmap.getWidth() >= (w << 1)&& bitmap.getHeight() >= (h << 1)) {
//                                    warn(bitmap.getWidth(), bitmap.getHeight(), w, h, stackTrace);}warn(bitmap.getWidth(), bitmap.getHeight(), w, h, stackTrace);view.getViewTreeObserver().removeOnPreDrawListener(this);}return true;}});}} else {warn(bitmap.getWidth(), bitmap.getHeight(), width, height, new RuntimeException("bitmap null"));}}}private void warn(int bitmapWidth, int bitmapHeight, int viewWidth, int viewHeight, Throwable t) {String warnInfo = new StringBuilder("Bitmap info: ").append("\n real size: (").append(bitmapWidth).append(',').append(bitmapHeight).append(')').append("\n desired size: (").append(viewWidth).append(',').append(viewHeight).append(')').append("\n call stack trace: \n").append(Log.getStackTraceString(t)).append('\n').toString();Log.d("xyz", warnInfo);}

我们看下log输出

com.xxx.xxx.xxx.ImageViewFor{e292c7e VFED..C.. ........ 540,1348-900,1528 #7f0a024e app:id/bt_phone}
2023-08-23 18:28:47.956 12556-12556 xyz                com.xxx.xxx                      D  Bitmap info: real size: (144,144)desired size: (360,180)call stack trace: java.lang.RuntimeException: logat com.xxx.xxx.ui.LoginActivity.checkBitmap(LoginActivity.java:235)at com.xxx.xxx.ui.LoginActivity.access$100(LoginActivity.java:79)at com.xxx.xxx.ui.LoginActivity$2.run(LoginActivity.java:193)at android.os.Handler.handleCallback(Handler.java:900)at android.os.Handler.dispatchMessage(Handler.java:103)at android.os.Looper.loop(Looper.java:219)at android.app.ActivityThread.main(ActivityThread.java:8673)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)

四、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

ddd

http://www.yayakq.cn/news/151528/

相关文章:

  • 在哪个网站上做实验仪器比较好广告设计培训机构哪家好
  • 网站建设与网页设计视频中小企业服务中心网站建设
  • 网站服务器无法访问网站后台 教程
  • 廊坊网站建设制作个人单页网站建设
  • 自己做网站要不要租服务器游戏分类网站怎么做
  • 关于京东商城网站建设的实践报告盐城seo网站优化软件
  • 无锡制作网站公司哪家好河北邢台是不是很穷
  • 虚拟网站php专业型中国建筑app下载
  • 网站建设需不需要编程wordpress汉化插件下载地址
  • 高端产品网站wordpress git themes
  • 网站建站公司哪家价钱合理在线3d建模网站
  • 做网站菠菜什么意思有限公司与有限责任公司的区别
  • sqlite3做网站数据库wordpress app主题
  • 百度图在图不留网站方常见的网站建设程序有哪些
  • 如何一键建淘宝客网站好听的网络科技公司名字
  • 个人网站可以名字写官网吗网页设计教学设计
  • 苏州大型网站设计公司google推广有效果吗
  • 网站上用的字体网络规划设计方案实例
  • 个人网站做百度竞价wordpress商用可以用吗
  • 做网站用的国外节点服务器wordpress depth
  • seo网站建设是什么重庆网站建设-言西早工作室响应式
  • 专业的网站建设房子装修设计图用什么软件
  • 网站策划网广西桂林旅游团报价
  • 个人外贸网站制作外包制作app
  • 青岛建网站多少钱wordpress 微信关注插件
  • 全国电子网站建设想开个网站做外贸怎么做
  • 网络工程师 网站建设合肥做app公司
  • 志愿者协会网站建设u盘启动盘制作工具
  • 青岛网站建设企业wordpress简单网址导航模板
  • 南通建设网站注册域名com和cn