热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android–为什么dpToPixel不应该用于设置布局尺寸?

为什么在javadocs中为dpToPixel(声明为here)声明它不应该用于设置布局尺寸?解决方法:我们不使用像素来定义布局尺寸.使用与密度无关的像素可确保各种设备的正确布局尺

为什么在javadocs中为dpToPixel(声明为here)声明它不应该用于设置布局尺寸?

解决方法:

我们不使用像素来定义布局尺寸.使用与密度无关的像素可确保各种设备的正确布局尺寸.意思是所说的布局在4英寸手机和7英寸平板电脑上具有大致相同的视觉尺寸. (这与手头的问题完全无关:))

也就是说,实际的布局大小(例如LayoutParams类)实际上使用整个像素来定义结果大小.以这种方式使用dpToPixels方法是可行的:

float px = dpToPixels(16, getResources()); // 16 dp to pixels precise
int pxOffset = (int) px; // 16dp rounded down to whole pixels
int pxSize = (int) (0.5f + px); // 16dp rounded up to whole pixels

现在您可以在布局中使用这些值,pxOffset用于填充,边距等(可以为零)和pxSize用于宽度和高度(确保至少1px大小,除非为零).当使用适合与布局和浮动Resources.getDimension(int)一起使用的资源时,在Resource.getDimensionPixelOffset(int)和int Resources.getDimensionPixelSize(int)中使用适合精确绘制的方法时,进行相同的计算.

编辑

Elevation使用浮点值,因此使用精确尺寸是完全正确的.

TranslationX,translationY或translationZ是使用浮点值定义的.这些和更多视图属性用于动画,因此使用平滑值是有意义的.如果手动设置,则使用整数来表示可预测的行为.


推荐阅读
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 使用System.getProperty()获取系统属性
    本文详细介绍了如何使用System.getProperty()方法获取Java运行时环境中的各种系统属性,包括Java版本、操作系统信息等。 ... [详细]
  • 作为一名Android应用开发新手,我在尝试将MediaPlayer处理逻辑从MainActivity分离到另一个类时遇到了问题。尽管搜索了很长时间,但仍未找到满意的解决方案。 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 【问题】在Android开发中,当为EditText添加TextWatcher并实现onTextChanged方法时,会遇到一个问题:即使只对EditText进行一次修改(例如使用删除键删除一个字符),该方法也会被频繁触发。这不仅影响性能,还可能导致逻辑错误。本文将探讨这一问题的原因,并提供有效的解决方案,包括使用Handler或计时器来限制方法的调用频率,以及通过自定义TextWatcher来优化事件处理,从而提高应用的稳定性和用户体验。 ... [详细]
  • PHP函数的工作原理与性能分析
    在编程语言中,函数是最基本的组成单元。本文将探讨PHP函数的特点、调用机制以及性能表现,并通过实际测试给出优化建议。 ... [详细]
  • 用示例链接 Java 中的 hashset ... [详细]
author-avatar
-路人甲___
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有