做专业网站设计多少钱wordpress 云储存
2026/4/6 8:56:57 网站建设 项目流程
做专业网站设计多少钱,wordpress 云储存,公司广告宣传片拍摄,广州海珠区房价多少钱一平方在我们做客制化android系统中经常会碰到这样的需求#xff0c;屏的实际尺寸是12.2英寸#xff0c;但在安兔兔或者其他设备信息检测类app中显示的却不是这个数#xff0c;而是比他小的数#xff0c;如5.66英寸#xff0c;或者6.56英寸#xff0c;就像下面这样 那么我们有…在我们做客制化android系统中经常会碰到这样的需求屏的实际尺寸是12.2英寸但在安兔兔或者其他设备信息检测类app中显示的却不是这个数而是比他小的数如5.66英寸或者6.56英寸就像下面这样那么我们有没有什么方法实现不修改TextView来实现这个需求呢答案是有的。本篇文章也是借鉴两位大佬的思路来的在这里要先感谢两位大佬Android 14 修改安兔兔等三方工具显示的屏幕尺寸RK3588S Android12修改安兔兔等读到的屏幕尺寸大小framework修改patch:diff--git a/sys/frameworks/base/core/java/android/view/DisplayInfo.java b/sys/frameworks/base/core/java/android/view/DisplayInfo.java index bf000d5fa39..f25b00f5aad100644---a/sys/frameworks/base/core/java/android/view/DisplayInfo.javab/sys/frameworks/base/core/java/android/view/DisplayInfo.java -923,6923,18publicfinalclassDisplayInfoimplementsParcelable{outMetrics.xdpioutMetrics.noncompatXdpiphysicalXDpi;outMetrics.ydpioutMetrics.noncompatYdpiphysicalYDpi;//三方检测app屏幕尺寸数据修正 add by lywif(widthheight){//竖屏 width 1600 height 2400outMetrics.xdpi597.65f;outMetrics.ydpi201.63f;}elseif(widthheight){//横屏 width 2400 height 1600outMetrics.xdpi597.65f;outMetrics.ydpi138.89f;}else{outMetrics.xdpioutMetrics.noncompatXdpiphysicalXDpi;outMetrics.ydpioutMetrics.noncompatYdpiphysicalYDpi;}finalRectappBoundsconfiguration!null?configuration.windowConfiguration.getAppBounds():null;widthappBounds!null?appBounds.width():width;xdpi来源安兔兔整数不精确或者通过在上述类DisplayInfo中用日志的方式打印出来带5位小数更精确推荐ydpi来源使用如下java代码生成。将如下代码复制到 IntelliJ IDEA 2024.3.5 (Community Edition) 中并修改main方法中的尺寸、分辨率、xdpi然后Run就能生成ydpi了packagecn.incartech;importjava.math.BigDecimal;importjava.math.RoundingMode;publicclassMain{publicstaticclassPoint{publicintx;publicinty;publicPoint(intx,inty){this.xx;this.yy;}}privatestaticdoublecalculateSize(PointscreenSize,doublexdpi,doubleydpi){doublesqrtMath.sqrt(Math.pow(screenSize.x/xdpi,2)Math.pow(screenSize.y/ydpi,2));returnnewBigDecimal(Double.toString(sqrt)).setScale(3,RoundingMode.HALF_UP).doubleValue();}publicstaticfloatgetYdpi(PointscreenSize,doubletargetSize,floatxdpi){doubley0.01;doublecalculatedSize;do{y0.01;calculatedSizecalculateSize(screenSize,xdpi,y);}while(Math.abs(calculatedSize-targetSize)0.001);return(float)y;}privatestaticvoidcalculateYdpi(doubletargetSize,intwidth,intheight,floatxdpi){System.out.println(----------------- start calculate -----------------);System.out.println(要在安兔兔中显示的尺寸为targetSize);System.out.println(屏实际分辨率为width x height);try{intscreenWidth;intscreenHeight;screenWidthwidth;screenHeightheight;if(screenWidthscreenHeight){System.out.println(开始计算竖屏参数...);}else{System.out.println(开始计算横屏参数...);}PointscreenSizenewPoint(screenWidth,screenHeight);floatydpigetYdpi(screenSize,targetSize,xdpi);StringresultString.format(xdpi: %.2f, ydpi: %.2f,xdpi,ydpi);System.out.println((screenWidthscreenHeight?竖屏参数:横屏参数) result result);}catch(NumberFormatExceptione){System.out.println(e);}}/** * xdpi参数来源(打印出来就行了或者直接用安兔兔的) * 类--frameworks\base\core\java\android\view\DisplayInfo.java * 方法--private void getMetricsWithSize(DisplayMetrics outMetrics, CompatibilityInfo compatInfo, Configuration configuration, int width, int height) * * param args */publicstaticvoidmain(String[]args){/** * 结果示例 * ----------------- start calculate ----------------- * 要在安兔兔中显示的尺寸为12.2 * 屏实际分辨率为1600 x 2400 * 开始计算竖屏参数... * 竖屏参数 result xdpi: 597.65, ydpi: 201.63 */calculateYdpi(12.2,1600,2400,597.64703f);/** * 结果示例 * ----------------- start calculate ----------------- * 要在安兔兔中显示的尺寸为12.2 * 屏实际分辨率为2400 x 1600 * 开始计算横屏参数... * 横屏参数 result xdpi: 597.65, ydpi: 138.89 */calculateYdpi(12.2,2400,1600,597.64703f);}}将xdpi、ydpi填入到前述patch中就能实现三方检测apk检测的屏幕尺寸与预期一致----------------- 验证结果 修改前 -----------------竖屏横屏----------------- 验证结果 修改后 -----------------竖屏横屏

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询