Canvas 类绘图基元的除法独立性

2024-04-13

Android Canvas 类支持一组丰富的绘图基元 - 圆、线等。我有一个应用程序使用这些图元来绘制一些统计数据。

阅读完相关说明后http://developer.android.com/reference/android/graphics/Canvas.html#drawLine%28float,%20float,%20float,%20float,%20android.graphics.Paint%29 http://developer.android.com/reference/android/graphics/Canvas.html#drawLine%28float,%20float,%20float,%20float,%20android.graphics.Paint%29。 。 。我不清楚坐标的单位是什么,或者如何使它们与设备/分辨率无关。

这些单位是什么?绘制适用于许多不同屏幕尺寸和分辨率的直线、圆形和矩形的“最佳实践”是什么?提前致谢。


Android 文档说“位置和尺寸的单位是像素”。经过一段时间的实验,我发现在2.0版本之前,单位是像素。但从2.0开始,单位很可能是dip(与设备无关的像素)。

对于以下代码:

Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(0);
canvas.drawRect(new Rect(1, 1, 319, 319), paint);

我在 Android 2.0+ 的 320x480、480x800 和 240x320 模拟器上得到与屏幕宽度相同大小的正方形。

这个发现让我解决了这个问题:大屏幕上的 1 像素垂直线有时是 2 像素宽。将描边宽度设置为 0 以绘制与屏幕尺寸无关的 1 像素线条。

Edit

在获得更多 Android 经验后,我需要纠正我的结论。实际上,AndroidManifest.xml 的“supports-screens”标签中有一个属性“android:anyDensity”。该属性默认为 true。当为 true 时,度量单位为 dp,否则为像素。

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

Canvas 类绘图基元的除法独立性 的相关文章

  • 如何设置长PreferenceScreen的滚动位置

    Android 应用程序有一些很长的首选项屏幕 它们始终在首选项菜单的顶部打开 我知道用户想要在首选项菜单中的位置 如何强制打开首选项屏幕并滚动到特定的首选项项目 我知道这是一个旧问题 所以这个答案仅供参考 要自动选择给定屏幕 您所要做的就
  • 是否仍然建议使用 AsyncTask 在后台加载 listView 项目?

    背景 我听说有一些在后台加载数据的新解决方案比 AsyncTask 更值得推荐 例如loaders http developer android com reference android content Loader html 问题 As
  • 无法禁用 Firestore 中的离线数据

    从我的数据中删除数据后Firestore Database 这需要我的Android app一段时间后才意识到数据已被删除 我认为这是由于自动数据缓存而发生的 我的应用程序与离线使用无关 我想禁用此功能 我已将其添加到我的自定义中Appli
  • android新手需要了解“?android:attr/actionBarSize”

    我正在经历拉尔斯 沃格尔的教程 http www vogella com articles AndroidFragments article html在使用 Fragments 时 我遇到了以下代码 android layout margi
  • Android 服务 START_STICKY START_NOT_STICKY

    我需要让我的服务始终在后台运行 并使用 startService 函数启动我的服务 无论应用程序的状态如何 我都不想重新启动服务 这是我的观察 START STICKY gt 如果应用程序启动 则服务正在重新启动 当应用程序关闭时 服务也会
  • 意图过滤器到底是什么?

    我读过很多关于意图过滤器的文章 但我真的无法理解它们到底是做什么的 那么 如果有人可以用一个清晰 的例子向我解释意图过滤器的作用到底是什么 thanks 我认为这是有据可查的here http developer android com g
  • 带有内容提供商的小部件;无法使用ReadPermission?

    所以我刚刚为我的应用程序实现了一个小部件 它通过我的数据库从数据库获取数据ContentProvider 我在清单中定义了自己的读 写权限 声明我使用它们 似乎没有什么区别 并在内容提供程序中要求它们
  • 如何修复运行 Android 模拟器时出现 GPU Driver Issue 错误

    我的 Android 模拟器几周前运行良好 但现在出现错误 当我运行代码时 GPU 驱动程序问题错误对话框与模拟器一起弹出 当我单击 确定 时 Android 模拟器不会按预期运行应用程序 错误如下 Your GPU driver info
  • 在应用程序之间共享自定义帐户验证器

    我有一个为使用自定义 AccountAuthenticator 的客户端构建的应用程序 它工作得非常好 并且满足了客户的需求 但是 这只是将使用相同身份验证管理器的应用程序集合中的第一个应用程序 这就是我不确定如何继续的地方 我无法知道任何
  • 具有多个字符串的列表视图

    我正在尝试创建一个包含多个字符串的列表视图 现在我有一个可以实现的功能 while i lt 10 GETS DATA FROM WEBPAGE ETC a DATAFROMWEBPAGE1 b DATAFROMWEBPAGE2 c DAT
  • Android Studio 停留在构建 gradle 项目信息上

    我正在使用 Android Studio 2 3 每当我尝试创建一个新项目或打开某个项目时 它都会卡在此时 正在构建 Gradle 项目信息 请建议我一些解决方案 它可能正在下载 Gradle zip 文件 e g Users user g
  • 无法在 Android 中使用自定义数组适配器进行搜索?

    我无法从以下位置搜索listview 我尝试了各种方法 但它对我不起作用 没有错误 我有其他方式进行搜索 但我想让这种方式成为可能 这是代码 public class MainActivity extends Activity implem
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 如何从Android webview下载文件?

    我下面的代码可以很好地加载 url 页面 并且在搜索歌曲后 当我单击下载链接时 它崩溃了 关于如何让下载管理器与网络视图一起工作的教程并不多 我究竟做错了什么 import java io File import android app A
  • Android Studio错误的含义:未注释的参数覆盖@NonNull参数

    我正在尝试 Android Studio 创建新项目并添加默认值后onSaveInstanceState方法创建 MyActivity 类 当我尝试将代码提交到 Git 时 我收到一个我不明白的奇怪错误 代码是这样的 我得到的错误是这样的
  • 如何在没有 OpenCv Manager 的情况下运行 OpenCV 代码

    我正在使用 OpenCV4Android 版本 2 4 10 并在 Samsung Galayx GT I9300 上测试我的代码 我遇到的问题是 我必须从 Play 商店下载 Opencv Manager 以便我的 opencv 代码运行
  • 尝试重新打开已关闭的对象:sqlitequery

    所以本质上我查询数据库两次 我不明白这个错误真正来自哪里 因为我没有在任何地方关闭数据库 返回错误的代码是这样运行的 我查了一下 刚刚看到一个像我这样的案例 BeaconHandler pullAllDB new BeaconHandler
  • 如何在 Android 中不使用 Intent 裁剪图像

    我正在尝试裁剪图像我使用了下面的代码 意图 i new Intent Intent ACTION PICK android provider MediaStore Images Media EXTERNAL CONTENT URI i pu
  • Android 布局仅使一个视图将自己绘制为横向,但其他所有视图都使用纵向

    我的活动布局中的主要视图元素是 VideoView 我的视频被渲染为设备的横向分辨率 但视频中的所有内容都是横向的 因此仍然需要在设备处于纵向位置时观看 即使我必须将活动设置为android screenOrientation landsc
  • 如何在 Android 的应用程序中使用 LDAP 身份验证?

    我想在我们的应用程序中添加 LDAP 身份验证 我在 Github 上搜索并找到了两个应用程序 但它们无法连接到服务器 通过ldap连接服务器的必要条件是什么 查看 UnboundID SDK 他们有一个适用于 Android 的套件 该应

随机推荐

  • Zend 框架 website.com/username

    我正在使用 Zend Framework 开发的应用程序之一要求通过 website com username 访问用户的个人资料页面 而其他页面应通过 website com controller name action name 访问
  • 当从 DataTemplateSelector 显式返回 DataTemplate 时,为什么 DataTemplate 无法绑定到接口?

    我创建了一个 DataTemplateSelector 它是使用一组已知接口进行初始化的 如果传递到选择器的项目实现了这些接口之一 则返回关联的数据模板 首先 这是有问题的 ICategory 接口 public interface ICa
  • 使用 T-SQL Merge 语句时如何避免插入重复记录

    我尝试使用 T SQL 的 MERGE 语句插入许多记录 但当源表中存在重复记录时 我的查询无法 INSERT 失败的原因是 目标表有一个基于两列的主键 源表可能包含违反目标表主键约束的重复记录 抛出 违反主键约束 我正在寻找一种方法来更改
  • 如何在 UML 类图中表示“事件”?

    这是我的代码片段 public class Notation INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged private N
  • Perl:查找并替换多个文本文件中的特定字符串

    我需要获取给定目录中的所有 config 文件 并且在每个文件中我需要搜索特定字符串并根据该文件替换为另一个字符串 例如 如果给定目录中有 3 个文件 for my foo config string to search fooCommon
  • Express 3错误中间件未被调用

    我正在尝试为我的 Express 应用程序设置错误处理并遇到以下问题 我定义了一个错误中间件并将其添加为最后一个中间件 error handler app use function err req res next console log
  • Angular 2 - 在下拉列表中设置所选值

    我在 Angular 2 的下拉列表中预选择值时遇到了问题 我在组件中设置了一个颜色数组 并将其成功绑定到下拉列表 我遇到的问题是在页面初始化上预先选择一个值 线路 selected car color id x id 应该选择已在车型上设
  • 元件之间的聚合物通讯

    我想通过聚合物元素实现子父级之间的通信 这是我的index html
  • T-SQL:带有标识列的 CTE

    我正在构建一棵树 物料清单样式 并转换一些数据 考虑下表 材料清单 BomId ParentId 现在我使用 CTE 来填充它 with BOM as select identity as BomId null as ParentId
  • Windows XP 中的 Internet Explorer 8

    我亲眼目睹了 Internet Explorer 8 IE8 在 Windows XP 中的表现以及在 Windows Vista 7 中的表现 非常奇怪的是 对于 CSS 和 JavaScript 的某些方面 也许对于其他元素也是如此 I
  • android studio 2.2.1 无法解析符号 *

    我过去使用android studio 2 1 1 昨天我下载了android studio 2 2 1 但发现无法解析符号错误 现在我使用android studio 2 1 1 一切正常 我已经尝试过 1 File gt Invalid
  • WordPress 使用 GD 图像引擎以编程方式将图像转换为 WebP 格式

    有许多 PHP 解决方案和 WP 插件 它们都带有我不想要 不需要的附加选项 即如何提供转换后的文件 存储它们的位置等 我不需要所有这些 并且正在寻找使用 GD 的纯简单代码 我不想使用插件 谢谢 编码应该什么时候发生 任何时候你知道这是钩
  • 实体框架“意外的连接状态”异常

    经过三个小时的调试和搜索 我希望这里有人能找到答案 如果我连续快速调用以下函数 例如间隔 System InvalidOperationException 意外的连接状态 使用包装提供程序时 请确保在包装的 DbConnection 上实现
  • 错误:错误域=NSURLErrorDomain代码=-1001“请求超时。”

    我正在 Xcode 6 1 iOS 8 1 中开发一个应用程序 该应用程序直到 2 天前都工作得很好 但今天当我执行它时 我在网络服务中遇到了错误 错误打印在下面 错误 错误域 NSURLErrorDomain代码 1001 请求计时 出
  • 如何使用 Java 8 可选,在三个都存在的情况下执行操作?

    我有一些使用 Java 可选的 简化的 代码 Optional
  • SSRS 计算行组和列组的计数

    我正在构建案例结果报告 其中对行组和单列分组进行父子分组 Parent Row Group Location 子行组 结果 列组 月份 报告中贯穿的是一年中的月份 报告中贯穿的是位置以及给定月份中该位置的不同结果细分 看起来像这样 Jan
  • Twitter API:获取关注者 +99

    使用 twitter API 和 OAuth 如果我要调用用户关注者 状态 关注者 我将仅返回 99 个结果 有没有办法让我返回 99 然后从关注者 100 开始再次调用 然后循环这种调用方式 直到返回关注者总数 或者只是返回所有关注者 您
  • Android 日历视图 - 将滚动方向更改为垂直

    我在导航抽屉内的应用程序中使用日历视图来选择不同的日期 除了在日历视图上向左滑动以到达下个月 向右滑动正确更改上个月 之外 一切正常 因为这是关闭抽屉的滑动手势 是否可以将日历的滚动方向更改为垂直而不是水平 我想实现这一点 这样用户就不必严
  • JavaFX - 以编程方式设置目标路径以直接将节点打印到 pdf 文件

    我想使用 Microsoft Print to PDF 打印机将节点打印到 pdf 文件 假设 Printer 对象已经被提取 我有下一个功能 该功能运行良好 public static void printToPDF Printer pr
  • Canvas 类绘图基元的除法独立性

    Android Canvas 类支持一组丰富的绘图基元 圆 线等 我有一个应用程序使用这些图元来绘制一些统计数据 阅读完相关说明后http developer android com reference android graphics C