Path.offset() 不适用于所有设备

2024-01-10

我的 android.graphics.path 有一些问题。
我正在开发一个游戏。我有一些路径。它们不会改变尺寸、形状。我把它们画到画布上。我在每个游戏的框架中移动它们。所以我设置了一个偏移量:dx

它在许多设备上运行良好:

  • 诺基亚 X Dual Sim(Android 4.4.4 Cyanogen 模式)(API 级别 19)
  • 三星 Galaxy Duos (GT-S7562)(Android 4.0.4)(API 级别 15)
  • 索尼 X8(Android 2.3.7 Cyanogenmode)(API 级别 10)
  • 以及其他一些

但它在其他一些设备上效果不佳:

  • 三星 Galaxy Ace II (Android 4.1.2)(API 级别 16)
  • Nokia X Dual Sim(Nokia X 平台 1.2)(Android Studio 显示:API 级别 16)
  • 以及其他一些 我在绘制方法中设置了偏移量:

    路径.offset(dX, 0);

不工作意味着:它不移动。系统将其拉至原始位置。
但当它起作用时,它会下降(移动,而且速度很快)

我也尝试过矩阵:

translateMatrix = new Matrix();
translateMatrix.setTranslate(dX, 0);
path.transform(translateMatrix);

同样的事情也发生了。

我在 Android 开发者网站上看到一些内容:http://developer.android.com/reference/android/graphics/Path.html http://developer.android.com/reference/android/graphics/Path.html
无效偏移量(浮点dx,浮点dy)
将路径偏移 (dx,dy),成功时返回 true。
???它一定已经改变了,这就是为什么这里有一个错误

它可能与硬件加速模式有关:
https://groups.google.com/forum/#!topic/android-developers/HgGVSbSghpk https://groups.google.com/forum/#!topic/android-developers/HgGVSbSghpk

我从 Api 级别 9 开始支持,但我转向了硬件加速模式。 (适用于 API 级别 14)
当我关闭它时,问题也会出现。
我不明白为什么它有时可以在 API 级别 14 上工作,有时却不能?

上面说,硬件加速模式支持Path:
http://android-developers.blogspot.de/2011/03/android-30-hardware-acceleration.html http://android-developers.blogspot.de/2011/03/android-30-hardware-acceleration.html

你知道这有什么问题吗?我应该怎么办?

更混合的东西:这适用于所有设备(但运行速度较慢 - 它滞后):

Canvas temp = new Canvas(bitmap);
path.draw(temp);
originalCanvas.drawBitmap(bitmap, 0, 0, myPaint);

So

  1. 我做了一个临时画布
  2. 我把它设置在位图上
  3. 我在画布上绘制(它将位于位图上)
  4. 我将位图绘制到原始画布上

为什么它在这里起作用?

请帮助我应该如何让它发挥作用。


我让它工作了,但没有偏移

我制作了自己的偏移函数:

  1. 它保存最后的位置,并用以下值计算新的位置: 抵消。
  2. 然后它创建一个新的路径而不使用operator new

    计算新点();
    wallpath.rewind();
    wallpath.move To(new PostT, newPosT);
    .
    .
    .
    墙路径.close();

它表现良好:)

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

Path.offset() 不适用于所有设备 的相关文章

  • 如何在 Android 中保存相机的临时照片?

    在尝试从相机拍照并将其保存到应用程序的缓存文件夹中时 我没有得到任何可见的结果 应用程序不会崩溃 但在 LogCat 上 当我尝试将 ImageView src 字段设置为刚刚获取的文件的 URI 时 我收到此消息 09 17 14 03
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • CollapsingToolBarLayout - 状态栏稀松布颜色不改变

    几天前我更新了我的 android studio 并开始使用 CoordinatorLayout 和 CollapsingToolbarLayout 只是尝试一些东西 工具栏稀松布颜色似乎覆盖了状态栏初始颜色和状态栏稀松布颜色 从 xml
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • 在办公室 LAN 上设置 xampp 服务器

    我希望在小型办公室内使用 xampp 设置服务器 我当然会保护 xampp 但为了使我的 web 应用程序可供网络上的其他 4 台电脑使用 我是否只创建一个虚拟主机 有没有办法确保只能在局域网上访问Web应用程序 当前设置包括 4 台计算机
  • OpenGL 旋转

    我正在尝试在 OpenGL 中进行简单的旋转 但一定没有抓住重点 我并不是在寻找具体的修复方法 而是在寻找快速解释或更普遍地解释 OpenGL 旋转的链接 目前我有这样的代码 glPushMatrix glRotatef 90 0 0 0
  • 使用 Hadoop MapRed 排序

    Well 我想知道如何在reduce 任务之后更改简单WordCount 程序的排序顺序 我已经制作了另一个按值排序而不是按键排序的映射 但它仍然按升序排序 有没有一种简单的方法可以做到这一点 更改排序顺序 谢谢 韦洛佐 如果您使用的是旧版
  • Android Work Manager - Work Manager 是否能 100% 确保后台执行完成?

    根据我从文档中读到的内容https developer android com topic libraries architecture workmanager https developer android com topic libra
  • 如何限制pyqt中QLineEdit中的用户输入

    我有一个QLineEdit我想限制QLineEdit仅接受整数 它应该像输入掩码一样工作 但我不想用inputmask 因为如果用户点击QLineEdit光标将位于鼠标单击的位置 用户需要导航到 0 位置并输入他想要的内容 有没有什么替代方
  • 如何在 SQL Server 2012 中设置每周自动备份?

    请建议我如何在 SQL Server 2012 中设置自动数据库备份 我需要对 SQL Server 中的所有数据库 目前仅包含 3 个 进行每周自动备份 该备份在每周五 0100 点 凌晨 1 点 运行 这些备份文件 bak 应放置在 E
  • Swift NSScriptCommand 执行默认实现

    我在 Objective C 中使用了这段代码 implementation KDOrderInfo id performDefaultImplementation NSString theRequest self directParame
  • 使用 MailKit 和 Gmail OAuth 发送邮件

    我正在尝试创建一个应用程序 在客户购买时向他们发送电子邮件 我们有自己的 GMail 帐户 我将用它来发送电子邮件 我已经设置了我的应用程序并在 Google API 控制台中创建了凭据 我发现这个问题 https github com j
  • 如何调用API(Oauth 1.0)?

    我试图调用这个API Oauth1 0标准 https appcenter intuit com api v1 Connection Reconnect https appcenter intuit com api v1 Connectio
  • C/C++宏嵌套替换逻辑

    我正在尝试实现 C C 兼容的宏处理 我可以正确处理许多极端情况 包括此处讨论的情况 了解宏间接扩展自身时 C 预处理器的行为 https stackoverflow com questions 66593868 understanding
  • UITableView 单元格重叠

    我正在实现一个带有部分索引的 tableView 每当任何特定部分中的行超过一行时 我的 tableViewCell 就会重叠 这是我的代码 NSInteger numberOfSectionsInTableView UITableView
  • Asp.net MVC 编辑器出现“类型‘System.Object’是在未引用的程序集中定义的”错误

    using Html BeginForm Index Employees FormMethod Post new encType multipart form data name EmployeeForm table class table
  • 在 glass 应用程序中创建“ok glass”样式菜单

    我刚刚开始为 Google Glass 进行开发 并且我知道 GDK 相当新 所以这可能还不可能 但我正在尝试 与 okay glass 屏幕上的 拨打电话 提示或 发送消息至 提示一样 我希望我的应用程序在您使用语音选择时具有更多语音选择
  • 如何使用 ASP.NET MVC、WebAPI 和 MEF 正确确定每个请求的组合范围

    我最近使用各种资源 包括此 SO 答案 将 MEF 添加到 MVC WebAPI 应用程序如何将 MEF 与 ASP NET MVC 4 和 ASP NET Web API 集成 https stackoverflow com questi
  • 自动将 vs2005 调试器附加到子进程

    我有一个在 Visual Studio 2005 中构建的主要 C 应用程序 名为 A exe 它生成一个子进程 B exe 我通过按 F5 在调试器中运行进程 A 我知道在进程 B 中命中断点的唯一方法是等待 A 启动它 然后运行 调试
  • Android 找不到类“android.app.job.JobScheduler”

    我在使用选项构建 apk 文件时不断收到此错误minifyEnabled true 应用程序构建过程和安装已成功 但无法启动并出现此错误 我已经厌倦了寻找班级图书馆 我对Android应用程序开发不太熟悉 请帮助我 错误堆栈跟踪 05 11
  • Spark Streaming:输入速率和文件流 [0] 始终具有“平均:0.00 个事件/秒”

    我正在使用 Spark 1 5 2 运行 代码如下 它定期正确打印计数 但在 Spark Streaming UI 中 输入速率和文件流 0 始终具有 平均 0 00 个事件 秒 注意 每个文件包含一行 其中包含 json 字符串 我也尝试
  • Python defaultdict 和 lambda

    在别人的代码中我读到了以下两行 x defaultdict lambda 0 y defaultdict lambda defaultdict lambda 0 由于defaultdict的参数是默认工厂 我认为第一行意味着当我为不存在的键
  • 重新启动 apache 时出现“make_sock:无法绑定到地址 [::]:443”(安装 trac 和 mod_wsgi)

    我正在尝试通过 SSL 安装 trac 和 mod wsgi 我尝试手动安装它 但效果不太好 所以我开始遵循以下步骤 ubuntu 上的 trac http robertbasic com blog trac on ubuntu 我跳过了
  • Path.offset() 不适用于所有设备

    我的 android graphics path 有一些问题 我正在开发一个游戏 我有一些路径 它们不会改变尺寸 形状 我把它们画到画布上 我在每个游戏的框架中移动它们 所以我设置了一个偏移量 dx 它在许多设备上运行良好 诺基亚 X Du