展开

关键词

浅谈 Android

为简便起见,Android 将所有密度分组为六种通用密度 像素密度 ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi 描述 低密度 中等密度 高密度 超高密度 支持每种密度的 位图可绘制对象的相对大小 方案 密度独立性 应用显示在密度不同的上时,如果它保持用户界面元素的物理尺寸(从 用户的视角),便可实现“密度独立性” 。 Android 系统可帮助您的应用以两种方式实现密度独立性: 系统根据当前密度扩展 dp 单位数 系统在必要时可根据当前密度将可绘制对象资源扩展到当的大小 nodpi:它可用于您不希望缩放以匹设备密度的位图资源 图标的 在进行开发的时候,我们需要把合大小的图片放在合的文件夹里面。 虽然 Android 也支持低像素密度 (LDPI) 的,但无需为此费神,系统会自动将 HDPI 尺寸的图标缩小到 1/2 进行匹

8210

Android框架(一)

displayWidth; private static int displayHeight; // 后面要减去状态栏的高度 //状态栏高度 private int statusBarHeight; //信息 displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics); 而实际大小要减去状态栏高度 (int) UIUtils.getInstance().getHeight(bottomPadding)); } } 可以使用上面工具类中的方法对单个控件进行 再进行封装得出下面的类: /** * 逐层处理viewgroup */ public class ViewsParseUtil { /** * 对activity中的所有控件进行 run() { catchViewGroup(context); } }); } /** * 对组件进行

33030
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android框架(二)

    由于上一篇框架需要控件重新渲染一次,对于大型项目性能方面运行不够快,针对该问题进行优化 核心思想:自定义组件,在组件的onMeasure中就改变控件的长宽等属性 实现方法:自定义百分比组件,使用该组件自动该组件下所有子 float heightPercent = ((IGetPercent) layoutParams).getHeightPercent(); //不同 com.aruba.screenlibrary.layout.PercentLinearLayout xmlns:android="http://schemas.android.com/apk/res/android width_percent="0.5" /> </com.aruba.screenlibrary.layout.PercentLinearLayout> 结论:在测量方法onMeasure中就完成对控件的

    19810

    Android方案分析

    为什么要 Android开发过程中我们常用的尺寸单位有px、dp,还有一种sp一般是用于字体的大小。但是由于px是像素单位,比如我们通常说的手机分辨例如1920*1080都是px的单位。 现在Android分辨率碎片化720x1280、1080x1920、2280x1080,这就造成例如187px会在各个分辨率的机型上都是显示一样大小的,那肯定不是我们想要的效果,所以用px单位我们是难以达到效果的 可以看出单位为dp的时候三个设备之间的差距就不是很大了,但是这样肯定还是不能满足我们对的要求的。下面来看看Android常见的三种比较成熟的方案,并分析这几种方案的优劣。 参考文章 骚年你的方式该升级了! -SmallestWidth 限定符方案 Android 终结者 Android 目前最稳定和高效的UI方案 广而告之 本文发布于薄荷前端周刊,欢迎Watch & Star ★,转载请注明出处

    6510

    实用Android 方案分享

    真正可用,并且简单易行,可以在多个大小和密度上有良好表现的Android 方案,已用在一款成熟互联网应用中,效果还不错。 ? 我在面试的时候,很多人连drawable-hdpi 和drawable-mdpi  里面放的图片是不同密度,还是分辨率都会弄错,所谓的多机型,无外乎照本宣科。 身边有的同事,工作几年了,还是只会自己的手机,连密度是什么都不知道。只知道每次都会把UI给的效果图/1.5。。。。。 对于不同的给出的方案是dp,那么dp与百分比的差距到底在哪里? 3、百分比的引入 1、引入 其实我们的解决方案,就是在项目中针对你所需要的手机的分辨率各自简历一个文件夹。 如下图: ?

    598100

    实用Android 方案分享

    实用Android 方案分享 真正可用,并且简单易行,可以在多个大小和密度上有良好表现的Android 方案,已用在一款成熟互联网应用中,效果还不错。 ? 我在面试的时候,很多人连drawable-hdpi 和drawable-mdpi  里面放的图片是不同密度,还是分辨率都会弄错,所谓的多机型,无外乎照本宣科。 身边有的同事,工作几年了,还是只会自己的手机,连密度是什么都不知道。只知道每次都会把UI给的效果图/1.5。。。。。 那么本例同样可以解决Android工程师和UI妹妹间的矛盾~UI给出一个固定尺寸的设计稿,然后你在编写布局的时候不用思考,无脑照抄上面标识的像素值,就能达到完美,理想丰满~~ 然而,Android对于不同的给出的方案是 3、百分比的引入 1、引入 其实我们的解决方案,就是在项目中针对你所需要的手机的分辨率各自简历一个文件夹。 如下图: ?

    92370

    提示Android方案分析

    为什么要 Android开发过程中我们常用的尺寸单位有px、dp,还有一种sp一般是用于字体的大小。但是由于px是像素单位,比如我们通常说的手机分辨例如1920*1080都是px的单位。 现在Android分辨率碎片化720x1280、1080x1920、2280x1080,这就造成例如187px会在各个分辨率的机型上都是显示一样大小的,那肯定不是我们想要的效果,所以用px单位我们是难以达到效果的 可以看出单位为dp的时候三个设备之间的差距就不是很大了,但是这样肯定还是不能满足我们对的要求的。下面来看看Android常见的三种比较成熟的方案,并分析这几种方案的优劣。 可以把 smallestWidth 限定符方案 当成这种方案的升级版,smallestWidth 限定符方案 只是把 dimens.xml 文件中的值从 px 换成了 dp,原理和使用方式都是没变的 这样可以很巧妙的实现,而且侵入性极低,甚至可以忽略不计。

    60140

    Android 从未如此简单

    作者:blankj https://juejin.im/post/5b6250bee51d451918537021 前言 一个月前看了今日头条新的方案,对此不禁拍案叫绝,为此我想把这种方案融入到我工具类中直接一行代码即可 ,相关 API 如下所示: adaptScreen4VerticalSlide : 垂直滑动的 adaptScreen4HorizontalSlide: 水平滑动的 cancelAdaptScreen : 取消 效果 UtilApk 中的 ScreenAdaptActivity 以 360dp 来做,代码如下所示: public class ScreenAdaptActivity 如上就是竖以 360dp 为宽度和宽以 360dp 为高度的效果。 传入第二个参数就是设计图转换为 dp 尺寸的大小,比如要做水平固定,可垂直滑动的,设计图宽度为 1080px,你的资源是放在 drawable-xhdpi 中,那么它换算为 dp 就是 1080

    35120

    简单谈谈我的Android之路

    这样的气,那么学完这篇文章,你就可以回他“我已经了,你没看粗来吗?” 我们先来了解两个概念:尺寸和的分辨率: 尺寸: 就是的对角线的长度,度量单位是英寸,1英寸等于2.54厘米. 6 6s – 1334×750 6+ 6s+ – 1920×1080 但不管iphone的还是各种Android手机,的比例都是16:9(不信你算算),所以视频的比例几乎都是16:9。 5.在项目中针对你所需要的手机的分辨率自对应dp-px换算比 这是是用鸿洋大神的尺寸生成类: public class CreatedimenUtil { private int baseW 540,960;600,1024;720,1184;720,1196;720,1280;768, 1024;800,1280;1080,1812;1080,1920;1440,2560;"; 这里选择性生成需要分辨率 下次再遇到老板的左移一个像素,你要有底气地回答:“这个我已经了,你没看粗来吗?”

    77820

    一种非常简单的Android方案

    前言 作为一个Android开发人员,你还在为了各种尺寸的而苦恼吗?你还在为了出现一个新的机型而修改着数不尽的dimens和layout吗? image.png 不知道大家有没有看过前一段时间今日头条技术团队发表的一篇关于Android的文章:一种极低成本的Android方式。 我是无意中点开的这篇文章,但是看过之后眼前一亮——-Android要是真的这么简单,那些辛辛苦苦没日没夜做的前辈们是不是死得太惨了。。。。。。。 不比比太多,开搞! 我们UI给出的设计图尺寸为1334*720,如果我按照宽度作为标准的话,按照设计图720px的宽度,的宽度应为360dp,也就是这样: final float targetDensity = appDisplayMetrics.widthPixels 使用此方法,只需要一个dimens文件,一个layout文件就足矣,在xml布局中直接只用dp就可以了(Android P的刘海需要单独layout) 结语 由于是自己写的demo,还没有大面积测试

    35540

    完结篇一 - 超快速的Android方式

    由于Android碎片化严重,分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,成本越来越高。 虽然Android官方提供了dp单位来,但其在各种奇怪分辨率下表现却不尽如人意,因此下面探索一种简单且低侵入的方式。 dp并不能做到 假设我们UI设计图是按宽度为360dp来设计的,如果宽度为1080/(440/160)=392.7dp,也就是是比设计图要宽的。 但是通常情况下,设计师并不会对不同提供不同的设计图,他们的需求仅仅是不同下控件对的相对大小一致,直接使用dp并不能满足这一点,而对各种一遍又显得略为繁琐,并且修改也较为麻烦。 参考 Android多分辨率框架(1)— 核心基础 - CSDN博客 一种极低成本的Android方式 一种粗暴快速的Android方案 - 简书

    6120

    Android很难嘛?其实也就那么回事

    前言 作为一个Android开发人员,你还在为了各种尺寸的而苦恼吗?你还在为了出现一个新的机型而修改着数不尽的dimens和layout吗? 不知道大家有没有看过前一段时间今日头条技术团队发表的一篇关于Android的文章:一种极低成本的Android方式。没有看过的朋友可以先看看了解一下再回来,可以更好的理解。 我是无意中点开的这篇文章,但是看过之后眼前一亮-------Android要是真的这么简单,那些辛辛苦苦没日没夜做的前辈们是不是死得太惨了。 我们UI给出的设计图尺寸为1334*720,如果我按照宽度作为标准的话,按照设计图720px的宽度,的宽度应为360dp,也就是这样: final float targetDensity = appDisplayMetrics.widthPixels 用此方法写,只需要一个dimens文件,一个layout文件就足矣,在xml布局中直接只用dp就可以了(Android P的刘海需要单独layout,全面手机可以隐藏的虚拟按键似乎也需要单独

    16620

    Android开发:最全面、最易懂的Android解决方案

    前言 Android一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威文档 郭霖: Android官方提供的支持不同大小的全部方法 Stormzhang :Android 鸿洋:Android 方案 凯子: Android全攻略(最权威的官方指导) 自身的思考&实践 给你带来一种全新、全面而逻辑清晰的Android思路 ,只要你认真阅读,保证你能解决Android问题! ---- 问题的本质 使得“布局”、“布局组件”、“图片资源”、“用户界面流程”匹不同的尺寸 使得布局、布局组件自尺寸; 根据置来加载相应的UI布局、用户界面流程 那么该如何解决控件的尺寸和密度的问题呢?

    1.3K70

    Android工具类 Android自动生成不同分辨率的值

    本文实例为大家分享了Android工具类的具体代码,供大家参考,具体内容如下 DimenTool github地址 Android 方案,自动生成不同分辨率的值 android中官方建议的方式 然后根据不同的尺寸在dimens.xml文件夹中分别计算置不同的dp或者sp单位。开发中发现,android需要用到很多的尺寸,每个尺寸都建立dimens.xml问价。 * 快速生成工具类 ,直接运行不成功需手动放入目录文件中 */ public class DimenTool { public static void gen() { //以此文件夹下的dimens.xml = tempString.substring(tempString.lastIndexOf("<") - 2); //截取<dimen </dimen 标签内的内容,从 右括号开始,到左括号减2,取得置的数字

    50550

    谈谈Android的那些事,我们到底该怎么去选择

    前言 每个Android程序员都会遇见一个棘手的问题,那就是手机。因为现在出现了许多分辨率的手机,所以我们必须得考虑到各种分辨率的手机,这对于程序员来说是一个必须要解决的麻烦。 Android方案 1.官方方案 dp。dp是Android开发中特有的一个单位。与px不同,dp是基于像素密度的一种单位。 2.玩家方案 广大玩家的目的很明确,目的就是要确保控件在不同的相对大小一致,看起来一毛一样的。以一位大神玩家的两种方案为例: 扩展性较差。 Android详解 一、关于布局建议 1、不要使用绝对布局 2、尽量使用match_parent 而不是fill_parent 。 这是一份解决方案大纲,希望对小伙伴们有一定的帮助。

    26130

    Android 官方之ScreenMatch

    关于的方案有两种,一种是使用ScreenMatch,一种是使用[AndroidAutoSize]。 当Android studio重新打开时,你会看见,多了很多values文件,这就是在不同宽度计算后的结果。 如果项目只需要手机的话,的设备最小宽度保留 384,392,400,410,411,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365 即可, 其中match_dp则表示需要的最小宽度值(如果是小数,则保留4位小数。 **ignore_dp=**忽略不需要的最小宽度值,即忽略掉插件默认生成的 dimens.xml 文件, 例如忽略掉480,533的 即:ignore_dp=480,533 如何使用 例如我们需要

    11720

    一种粗暴快速的Android方案

    碎片化严重,一直是开发中较为头疼的问题。 面对市面上五花八门的大小与分辨率,Android基于dp与res目录名称来的方案已无法满足一次编写全的需求,为了达到最优的视觉效果,开发过程中总是需要花费较多资源进行。 首先来分析一下一些常见的解决方案的现状: 1、官方方案 (1)、dp:dp是Android开发中特有的一个单位。与px不同,dp是基于像素密度的一种单位。 2、玩家方案 广大玩家的目的很明确,目的就是要确保控件在不同的相对大小一致,看起来一毛一样的。 那么Android计算长度的收口在哪里,能不能在Android计算长度时进行换算呢?如果能在Android计算长度时进行换算,那么就不需要一系列多余的计算以及,一切问题就都迎刃而解了。

    44630

    Android技能树 — 小结

    小结 数据结构基础知识 Android技能树 — 数组,链表,散列表基础小结 Android技能树 — 树基础知识小结(一) 算法基础知识 Android技能树 — 排序算法基础小结 Rx 关于,几乎每隔一段时间就会看见有人发出来说XXX方案,实现超级简单的方式等等。 Android 方案 我们可以看下面的图: ? 我们可以看到列举了所有可能的分辨率的values,然后手动按照倍数,进行相应的赋值。 ---- 2.5 动态更改density 一种极低成本的Android方式 Android很麻烦吗?不!太简单了。 Android 从未如斯简单 假如设计图是按1920px * 1080px来设计,以density为3来标注,也就是其实是640dp * 360dp。

    37930

    android分辨率

    android开发,开源嘛,满市场都是凌乱的机型,总少不了这样或那样的型号。在这里分享一下自己在开发中用到的方法。 就是代表着分辨率 320X480、1280X800、480X800三款图片资源包。其实也很多。我大致说一种就行,其他大家慢慢琢磨,或上网周转。 ? 说明一下这个图的意思,就是我要说的置方法,就是一套图片资源(资源文件要看美工的设计了。最好能是XXX.9.png)一套布局文件及多套数值文件。 ? 布局文件: <? > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/<em>android</em>" android:layout_width="fill_parent

    660100

    相关产品

    • 标准兼容测试

      标准兼容测试

      标准兼容测试(Standard Compatibility Testing)致力于为移动开发者提供完善的适配兼容测试服务,发现和定位产品在移动终端出现的适配问题,提供完整的问题信息,帮助开发者解决问题,提升产品的质量。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券