Android 不使用 XML 指定像素单位(如 sp、px、dp)

2023-11-21

是否可以在代码中指定像素单位。 我的意思是,假设我有一个布局,并且我希望大小为 20dp,那么有什么方法可以在不编写布局 xml 的情况下做到这一点


在一个视图中:

DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
float dp = 20f;
float fpixels = metrics.density * dp;
int pixels = (int) (fpixels + 0.5f);

当然,在 Activity 中,您可以省略getContext().

从缩放像素转换(sp)到像素,只需使用metrics.scaledDensity代替metrics.density.

编辑:作为@Santosh 的回答指出,您可以使用实用程序类做同样的事情TypedValue:

DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
float dp = 20f;
float fpixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics);
int pixels = Math.round(fpixels);

For sp, 代替TypedValue.COMPLEX_UNIT_SP for TypedValue.COMPLEX_UNIT_DIP.

在内部,applyDimension()与我上面的代码执行完全相同的计算。使用哪个版本取决于您的编码风格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 不使用 XML 指定像素单位(如 sp、px、dp) 的相关文章

  • 即使成功固定后,ParseQuery 在从本地数据存储查询时也给出 0 个对象

    我正在使用 parse com 的 Android SDK 并且遇到了一个特殊的问题 从片段的 onCreate 中 从服务器获取一个对象 Pin it 从本地数据存储中获取对象 以下是 onCreate 中的代码片段 ParseObjec
  • 更新房间迁移的行

    是否可以编写迁移来更新某个表的所有先前数据 我正在为我的房间数据开发加密 如果我可以在迁移后加密所有行 那就太好了 那么 在定义迁移时 您可以访问支持SQLite数据库 https developer android com referen
  • 如何让精灵对 cocos2d android 中的触摸做出反应?

    我有 1 支枪 当点击屏幕上的任何一点时 子弹都会发射 但根据我的要求 有 3 支枪 精灵 当触摸任何精灵时 子弹必须发射 当谷歌搜索时 我知道这可以是通过使用targetedTouchDelegate或循环所有的精灵并为每个触摸的精灵设置
  • 将倒计时器从 10 秒改为 1 秒

    我有一个倒计时器 它以 1 秒的增量从 10000 毫秒倒计时到 0 毫秒 以使按钮在 10 秒后可单击 尽管计时器是准确的并且按照代码的说明执行操作 但我想更改秒的表示方式 但我不知道如何更改 java void startTimer c
  • FirebaseAuth - 让用户使用任何提供商更改密码 - Android

    我有一个社交媒体应用程序 我正在使用FirebaseUI让用户使用电子邮件 Google 或 Facebook 登录 注册应用程序 如果使用 电子邮件 作为密码 我怎样才能让用户稍后更改他 她的密码 提供商 如果使用 Facebook 或
  • 来自 InputStream 的 Android 通用图像加载器 URI

    我想问一下UIL URI是从InputStream输入的 因为我的图像源来自 ZIP 然后我必须提取它才能显示该图像 因为图像太大 我必须使用UIL库 任何人都知道如何从InputStream插入UIL 我认为你可以这样做类似于从数据库加载
  • 如何让文字发光?

    我们可以将发光效果应用于任何文本 如下所示 Updated Please also tell me what things i need to create something like this 我需要为此使用特殊字体吗 如何使用以下命令
  • eclipse 找不到我的 sdk 文件夹

    我已经在 Windows 7 上的 eclipse helios 上安装了 android sdk 和 adt 插件 但是 当我进入首选项时 我在定位 sdk 位置时遇到了问题 我的 SDK 位置是 C Program Files Andr
  • 使用 android-async-http (loopj) 发布 JSON/XML

    我在用android async http http loopj com android async http 并且真的很喜欢它 我在发布数据时遇到了问题 我必须按照以下格式将数据发布到 API
  • 如何解决Android中的NullPointerException错误?

    下面的代码在 Eclipse 的模拟器中运行顺利 但在 Android 手机和平板电脑上运行时出现问题 public class RingerActivity extends Activity Called when the activit
  • 以编程方式更改小部件布局

    假设我有两个小部件布局 Layout1 和 Layout2 小部件的默认值是 Layout1 但我允许用户选择 他们希望小部件采用哪种布局 所以如果用户更改为 Layout2 如何以编程方式将布局更改为 Layout2 小部件没有像活动那样
  • AWS Cognito-获取带有ID的用户信息

    有没有什么方法可以获取 AWS Cognito 池 在 Android 上 中未登录的用户的信息 并知道他的 ID 我尝试了该代码 AppHelper getPool getUser username getDetailsInBackgro
  • 具有线程安全性的 eventbus 最佳实践

    我的应用程序具有用户交互活动和后台服务 这是修改数据模型的唯一地方 后台服务监听用户所做的操作以及来自网络的传入消息 因此 可能会出现并发问题 我尝试使用处理程序来防止这些问题 对于事件层 我使用 greenrobots Eventbus
  • 跨平台 IAP

    我已在 iOS 和 Android 中集成了应用内购买 自动续订订阅 两者都工作正常 我对使用跨平台验证 IAP 有一定的疑问 例如 当多个用户登录一个应用程序时 某一特定应用程序的订阅如何运作 例如 如果用户 A 有标准套餐并且从应用程序
  • 如何使用 Android Volley API?

    我正在考虑在我的下一个项目中实现 Android Volley 库 关于 Volley 的 Google IO 演示 http www youtube com watch v yhv8l9F44qo 但是 我还没有找到该库的任何重要的 AP
  • 是否可以自定义首选项标题布局?

    我发现了类似的问题 但找不到最新的具体答案 我在用着
  • 从最近打开的应用程序中打开 Android 中的旧活动?

    我有 4 个活动 Launcher MainActivity SingleTask NotificationActivity ExampleActivity 当用户点击通知时 通知活动然后打开示例活动并完成通知活动 当我按下回键时主要活动打
  • Android 应用程序中通过 VideoView 将正在播放的视频静音

    我想在我的 Android 应用程序中将 VideoView 正在播放的视频静音 我在 VideoView 类中找不到任何方法来执行此操作 知道如何做到这一点吗 我在 MediaPlayer 类中找到了一个方法 setVolume 但我无法
  • 尝试在 android 中更新 sqlite 数据库时出错

    我的数据库正在运行 但我插入的所有记录都是为了检查目的 现在我想删除所有表并创建新表 所以我尝试通过更改版本来更新数据库 我没有对创建表查询进行任何更改 但外键约束失败 代码 787 这是我的DBHelper class private s
  • Android 依赖项 com.google.firebase:firebase-core 编译 (12.0.1) 和运行时 (11.4.2) 的版本不同

    这是我的项目 Gradle 依赖项 classpath com android tools build gradle 3 1 0 classpath com google gms google services 3 0 0 classpat

随机推荐

  • 复制完成后,CloudBlockBlob.StartCopyAsync 是否返回?

    有多种方法可以复制 Azure Blob 存储块 有同步和异步版本StartCopy 还有一个BeginStartCopy其中还有完成回调 The BeginStartCopy方法明确指出复制完成时执行回调 The StartCopy两种方
  • 在 JavaFX 中保存为 jpg 的图像是粉红色的

    我想将 ImageView 中的图像保存到具有不同分辨率的文件中 将其作为 png 结果如预期 至于 jpg 我将所有文件设为粉红色 诀窍在哪里 这是代码 Object imagesFromFotoListView ta myFotoLis
  • 如何编写一个只接受一个枚举变量作为输入的函数?

    我有一个枚举 enum Group OfTwo first usize second usize OfThree one usize two usize three usize 我想编写一个仅以参数作为参数的函数Group OfTwo变体
  • CSS3 对 HTA 的支持

    HTA 支持 HTML5 和 CSS3 吗 如果我计划仅在 Windows 操作系统上使用我的应用程序 这是一个执行一些基本文件处理的简单应用程序 HTA 是一个可行的选择吗 如果我使用简单的平面文件 文本文件 来存储 HTA 的数据 是否
  • 如何在Angular中实现多级路由?

    我正在做一个小项目 以便更多地了解 Angular 但我真的不知道如何实现多级路由 我读过文档关于路由器组件的新版本以及 Stack Overflow 上的一些其他主题 first second third 但我找不到解决我的问题的方法 让
  • 透明、无边框的 ProgressDialog

    我有一个ProgressDialog我已将其放置在屏幕底部 以免与徽标重叠 我想做的是为ProgressDialog删除背景和边框 我在这里没有任何运气 有谁知道如何应用这种风格 您是否尝试过将背景设置为透明颜色 这个答案给出了详细的代码示
  • 如何为 HttpClient 请求设置 Content-Type 标头?

    我正在尝试设置Content Type的标头HttpClient我调用的 API 所需的对象 我尝试设置Content Type像下面这样 using var httpClient new HttpClient httpClient Bas
  • 如何处理android中弹出窗口内按钮的onclick事件

    在我的应用程序中 我最初在屏幕上有一个按钮 然后在onclick按钮时 应该会打开一个弹出窗口 在弹出窗口中 我有一个图像按钮 并且onclick通过这个按钮 我想开始一个活动 弹出窗口打开 但我不明白如何处理onclick弹出窗口内的图像
  • 如何将科学记数法转换为小数形式?

    虽然很基本 但我在任何地方都找不到答案 如何禁用小标题中的科学记数法 并让小标题显示小数 My data 我有一个简单的小题 结果是lm gt broom tidy library tidyverse I used dput to get
  • 每侧有 2 个 y 轴且比例不同的 ggplot

    我需要在一个图表中绘制一个显示计数的条形图和一个显示比率的折线图 我可以单独完成这两个图表 但是当我将它们放在一起时 我会缩放第一层 即geom bar 与第二层重叠 即geom line 我可以移动轴吗geom line向右 Answer
  • 屏蔽 CALayer - iPhone

    我正在为 iPhone 创建一个自定义开 关切换开 关 类似于标准开关 并且我正在设置滑块的蒙版 但调用 myView layer setMask maskLayer 设置遮罩层相对于其遮罩层的位置 而不是相对于遮罩层的容器层的位置 对于这
  • 如何让 raw_input 重复直到我想退出?

    说我想用raw input像这样 code raw input Please enter your three letter code or a blank line to quit under if name main 如何让它在每次运行
  • 如何从头开始构建具有人类可读角度的旋转矩阵?

    一直阻碍我进行 3D 编程的一件事是无法理解数学是如何运作的 我可以使用方法和函数在编程流程中很好地遵循数学 那么对我来说一切都清晰且合乎逻辑 但在数学符号中 我只是无法从中得到正面或反面 我一直在阅读网站 观看一些机构的视频试图解释这一点
  • 正则表达式删除多行注释

    我正在尝试使用这个正则表达式 JS g 取代 sdandsads 什么也没有 但它不起作用 为什么 o O 点捕获除换行符之外的所有内容 如果 dotall 为 false 所以要么使用 dotall 正如其他答案 评论中提到的 这在 ja
  • Android:折叠线性布局而不是折叠工具栏

    我正在尝试在单个片段中创建主 详细信息事务 我考虑使用 LinearLayout 作为标题的编辑文本的容器 然后是 RecyclerView 了解详细信息 如何实现类似于 CollapsingToolbar 效果的 LinearLayout
  • Kibana 报告字段存在冲突,我该如何解决?

    在 Kibana 中 我注意到在刷新索引模式后 我的一个字段显示为conflicted Example 所以我知道这是因为 Elastic Search 在该字段中发现了不同类型的值 我如何确定这一点 它导致我的视 觉效果破坏 因为它们无法
  • C# 两组排序数字最快的交集

    我正在应用程序的时间关键部分计算两组排序数字的交集 这个计算是整个应用程序的最大瓶颈 所以我需要加快它的速度 我已经尝试了很多简单的选项 目前正在使用这个 foreach var index in firstSet if secondSet
  • 如何理解 Yahoo! 的原始 HTML使用Python检索数据时的财务?

    我一直在尝试从 Yahoo 检索股票价格 金融 比如苹果公司 我的代码是这样的 使用Python 2 import requests from bs4 import BeautifulSoup as bs html http finance
  • 获取不带 Content-Disposition 的文件名

    我几天来一直在寻找这个问题的解决方案 但找不到任何解决方案 我想使用网络客户端从网络服务器下载文件 下载工作正常 但我无法获得真实的文件名 这对我来说非常重要 我在很多主页上看到 文件名应该保存在 Content Disposition H
  • Android 不使用 XML 指定像素单位(如 sp、px、dp)

    是否可以在代码中指定像素单位 我的意思是 假设我有一个布局 并且我希望大小为 20dp 那么有什么方法可以在不编写布局 xml 的情况下做到这一点 在一个视图中 DisplayMetrics metrics getContext getRe