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

太原手机网站制作龙口网站制作公司

太原手机网站制作,龙口网站制作公司,男女在床上做暖暖插孔网站,企业网站建设制作的域名费用概述 最小宽度smallWidth适配实现屏幕适配方案 详细 前言 在之前的文章中#xff0c;我们讲到了Android屏幕适配的一些知识#xff0c;大家感兴趣的话可参考Android屏幕适配(1) — 概念解释Android屏幕适配(2) — drawable与mipmapAndroid屏幕适配(3) — 资源文件夹命名与…概述 最小宽度smallWidth适配实现屏幕适配方案 详细 前言 在之前的文章中我们讲到了Android屏幕适配的一些知识大家感兴趣的话可参考Android屏幕适配(1) — 概念解释Android屏幕适配(2) — drawable与mipmapAndroid屏幕适配(3) — 资源文件夹命名与匹配规则Android屏幕适配(4) — 宽高限定符 今天就让我们来学习下Android屏幕适配的最小宽度smallWidth适配相关知识吧。 今天涉及知识有 屏幕适配原理SmallWidthDimensHelper屏幕values文件夹生成帮助类的使用效果图和项目结构图screenMatch插件的使用 一.屏幕适配原理 1.1 最小宽度的理解 之前我们已经讲过屏幕适配的原理是: px(实际分辨率/涉及基准分辨率)*dp由于无法兼顾横竖两个方向所以会采取宽或者高的一个方向来适配。今天要讲的最小宽度smallWidth适配与之前又有所区别。最小宽度是指对手机或平板而言最短的两条边不一定是屏幕的宽度。(例如对平板而言有的高度其实是小于宽度的这是所谓的最小宽度其实是平板的高度) 1.2 values文件夹理解 利用SmallWidthDimensHelper帮助类我们生成的values文件夹名字类似如下 values-sw240dpvalues-sw360dpvalues-sw400dpvalues-sw960dpvalues-sw1080dp...... 以我测试的手机为例我手机信息如下 *************屏幕信息*************宽1080 高2032dpi480 density(屏幕像素比例)3.0smallwidthDensity(最小宽度)360.0********************************** 可以看到我手机屏幕尺寸: 1080x2032,dpi480,density(屏幕像素比例)3.0,接着有一个smallwidthDensity(最小宽度)360.0。 这里我们需要注意的是我手机屏幕尺寸: 1080x2032适配的values文件夹并不是values-sw1080dp,而是values-sw360dp。values-swXXXdp文件夹格式这里的XXX表示的可不是屏幕宽度尺寸而是最小宽度Density。我们可以通过公式 smallwidthDensity 屏幕最短尺寸(屏幕宽高尺寸较短的那个)/屏幕像素比例(density) 来获取一个参考值。 为什么说是一个参考值呢因为我们的手机一般默认最小宽度我们计算的这个值一般不会去改它但是在手机的设置—系统—开发者模式/开发人员选项—最小宽度上是显示默认最小宽度如下图 1.3 布局向上兼容 由上面的讲解我们已经知道为了适配屏幕我们会生成大批量values-swXXXdp文件夹。类似如下 values-sw240dpvalues-sw360dpvalues-sw400dpvalues-sw960dpvalues-sw1080dp 以我测试为例加载的是values-sw360dp文件夹若项目中没有values-sw360dp文件夹则会向上匹配values-sw240dp文件夹如果values-sw240dp文件夹没有则会再往小的匹配如果还是没有则会匹配默认values文件夹。 二. SmallWidthDimensHelper屏幕values文件夹生成帮助类的使用 这里我封装了一个自动生成values dimens文件夹的工具类。此类要在Android项目中新建一个Java_module然后在Java的main方法中执行以下调用 public static void main(String[] args) {System.out.println(我是中国人);SmallWidthDimensHelper helper new SmallWidthDimensHelper();helper.setBase(1080, 1920) //设计图基准宽高.setDefaultScale(1.0f) //默认缩放比.createSmallWidthDimens(); //最小宽度适配} 以上代码的setBase(1080, 1920)设置的是设计图即UI给出的基准屏幕宽高, setDefaultScale(1.0f)设置的是默认values文件夹中dp和实际dp的比值。 三. 效果图和项目结构图 下面贴出MainActivity中布局代码 ?xml version1.0 encodingutf-8?androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/tv_textandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textHello World!app:layout_constraintLeft_toLeftOfparentapp:layout_constraintRight_toRightOfparentapp:layout_constraintTop_toTopOfparentandroid:layout_marginTop70dp/Buttonandroid:idid/btn_testandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text测试1app:layout_constraintStart_toStartOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintTop_toBottomOfid/tv_textandroid:layout_marginTop50dp/Buttonandroid:idid/btn_test2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text测试napp:layout_constraintStart_toStartOfparentapp:layout_constraintEnd_toEndOfparentapp:layout_constraintTop_toBottomOfid/btn_testandroid:layout_marginTop50dp/androidx.appcompat.widget.AppCompatTextViewandroid:idid/act_oneandroid:layout_widthdimen/dp_360android:layout_heightdimen/dp_100app:layout_constraintTop_toTopOfparentandroid:layout_marginTopdimen/dp_20app:layout_constraintStart_toStartOfparentandroid:background#ff0000/androidx.appcompat.widget.AppCompatTextViewandroid:idid/act_twoandroid:layout_widthdimen/dp_720android:layout_heightdimen/dp_0android:background#00ff00app:layout_constraintBottom_toBottomOfid/act_oneapp:layout_constraintEnd_toEndOfparentapp:layout_constraintTop_toTopOfid/act_one //androidx.constraintlayout.widget.ConstraintLayout 生成文件夹部分结构图如下   随便打开一个dimens.xml文件部分代码如下 ?xml version1.0 encodingutf-8?resourcesdimen namedp_00.0dp/dimendimen namedp_10.29dp/dimendimen namedp_20.59dp/dimendimen namedp_30.88dp/dimendimen namedp_41.18dp/dimendimen namedp_51.48dp/dimendimen namedp_61.77dp/dimendimen namedp_72.07dp/dimendimen namedp_82.37dp/dimendimen namedp_92.66dp/dimendimen namedp_102.96dp/dimendimen namedp_113.25dp/dimendimen namedp_123.55dp/dimendimen namedp_133.85dp/dimendimen namedp_144.14dp/dimendimen namedp_154.44dp/dimendimen namedp_164.74dp/dimen...... 注意这里生成的值也是dp。 屏幕适配部分机型效果图如下 四. ScreenMatch插件的使用 最小宽度适配方案其实在Androidstudio中由一个插件ScreenMatch,其使用的话可参考
http://www.hkea.cn/news/14459039/

相关文章:

  • 大鱼直播哈尔滨百度网站快速优化
  • 北京网站设计与制作专业网店推广
  • 北极动力网站建设微信小程序可以做电影网站吗
  • 石家庄城市建设档案馆网站沈阳建设工程信息网举报
  • 官方网站下载手电筒公司体系建设的意义
  • 上海营销平台网站建设全屋定制高端品牌有哪些
  • 苏州高新区建设局网站管网最差网站设计
  • 发布培训的免费网站模板下载山西太原做企业网站建设的公司
  • 网站建设方案后期服务智慧团建平台登录入口官网
  • 成都企业网站建设及公司pptwin7 建设网站服务器
  • 设计网站怎么做产品免费发布平台
  • 想创建一个网站安徽省工程建设信息网站
  • 河源网站搭建费用500m网站
  • 麻涌网站仿做设计网页的步骤是什么
  • 没有网站可以做搜索引擎营销吗做网站不好做
  • 颍州网站建设建筑师网站
  • wordpress站外搜索公众号如何做微网站
  • 台州网站优化方案微商分销
  • 汽车网站正在建设中模板html5网站建设公司
  • 网站推广软件赚钱难吗?长沙小程序开发
  • 给公司做网站要花多钱唐山哪家网站好
  • 网页升级访问中每天正常更新中系统优化的影响因素
  • iis 多网站网站原创文章优化
  • 铜仁网站优化广告设计案例网站
  • 网站 多语言设计制作中国第一架飞机的人
  • phpcms做装修网站阿里云一键建站网站
  • 公司网站建设流程巴南网站建设哪家好
  • 网站建站建设怎么做马鞍山做网站的公司
  • 用python做网站后端最快多久studio网站开发
  • 梁头网站建设中国建筑集团有限公司官网招标网