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

汽车案例网站湖南智慧住建云

汽车案例网站,湖南智慧住建云,网站建设吉金手指排名14,手机网站有什么区别关于作者#xff1a;CSDN内容合伙人、技术专家#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 #xff0c;擅长java后端、移动开发、商业变现、人工智能等#xff0c;希望大家多多支持。 目录 一、导读二、概览三、实践四、 推荐阅读 一、导读 我们… 关于作者CSDN内容合伙人、技术专家 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 擅长java后端、移动开发、商业变现、人工智能等希望大家多多支持。 目录 一、导读二、概览三、实践四、 推荐阅读 一、导读 我们继续总结学习温故知新。 二、概览 本文讲述如何遍历获取页面中所有的view并输出对应的idtextview文本内容imageview实际大小及设置的图片大小。 可用于检测android应用中的大图。 三、实践 在Android开发中有时我们需要遍历界面上的所有View以便进行某些操作。例如我们可能需要查找特定类型的View或者对所有的View进行某种操作。这里是一个简单的示例展示如何遍历界面上的所有View。 首先假设你有一个Activity或Fragment里面有一个布局文件里面包含各种各样的View例如Button、TextView、ImageView等。 然后你可以在Activity或Fragment的代码中通过递归的方式遍历所有的View。 不多说直接上代码 图片大小检测思路。 fun checkBitmapFromView(){//1、遍历activity中的各个View控件//2、获取View控件加载的Bitmap//3、对比Bitmap宽高与View宽高}示例代码: 遍历获取所有的view并输出相应的信息 ListView viewListnew 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 ListView getAllViews(ViewGroup viewGroup){for(int i0;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;}这个示例代码会遍历界面上的所有View并将image view和textview加入到list中。注意这里使用了递归方法来遍历ViewGroup中的所有子View。如果View是一个ViewGroup例如RelativeLayout、LinearLayout等那么我们就递归遍历它的所有子View。如果View是一个叶子视图例如Button、TextView等那么我们就执行想要的操作。 当我们获取到页面上的imageview后就可以做一些操作如 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学习专栏
http://www.pierceye.com/news/813712/

相关文章:

  • 网站制作精品案例欣赏中国建设局网站首页
  • 几分钟做网站网站网格布局
  • 为企业做网站策划案网站建设 爱诚科技公司
  • 怎么把网站放到阿里云做网站外链需要多少钱
  • 南宁市网站建设公司给人做网站网站
  • 怎么查网站的备案号网站页面设计需求
  • 手机网站怎么做的好网页设计参考书籍
  • 网站建设和网络推广方案网站建设技术可行性分析
  • 免费建站网站自助建站的网站建站淘宝网站开始怎么做的
  • 旅游电网站建设目标公司注册成本
  • 建设婚恋网站基本功能有哪些毕业设计网页
  • 广州贸易网站杭州关键词推广优化方案
  • 怎么注册自己的网站wordpress静态设置
  • 网站收录有什么好处仿糗事百科wordpress
  • 面试网站建设工程师鞍山市城市建设管理局网站
  • 电商网站建设与管理柳州网站建设多少钱
  • 网站的访问量统计怎么做企业网站建设基本标准
  • 网站开发服务属于什么行业先做网站再备案吗
  • 做零售去哪个外贸网站专业做网站较好的公司
  • 网站运营职业分析2233网页游戏大全
  • 深圳网站制作880网站建设课设总结
  • 瑶海区网站建设公司中铁建设集团有限公司基础设施事业部
  • wordpress 用js网站备案 seo
  • 网站一级域名和二级域名区别自己怎么做外贸英文网站
  • 南京网站定制南京wordpress安装提示500错误
  • 网站图片优化免费网站建设凡科
  • 网站开发项目团队网页设计图片与文字的研究
  • 百度网站建设策划书范文做暧在线网站
  • 松江新城做网站公司国产成年做视频网站
  • 杭州网站推广服务网站单页面怎么做