首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android:动态更改选项菜单的位置

Android:动态更改选项菜单的位置
EN

Stack Overflow用户
提问于 2011-02-17 20:45:40
回答 1查看 1K关注 0票数 1

我有一个绘图活动,创建一个自定义的“画布”视图,该视图占据整个屏幕,允许用户在其上进行绘图。我有一个要求锁定活动的肖像方向,因为绘图应用程序是一个草图垫替代,用户将有需要旋转‘垫’来绘制,而没有垫翻转在他们周围。当然,这意味着选项菜单也锁定到该方向,并且取决于用户,菜单可能从顶部、底部或侧面弹出。我希望选项菜单总是位于相对于用户的底部.我正在考虑一些方案,如果有任何建议或信息,我将不胜感激:

  1. 允许方向更改,因此菜单根据需要移动,然后使用SensorManager侦听方向,并手动将画布视图旋转回“正确”的方向(纵向)。这很难看,因为画布的旋转可能会出现延迟,并且由于X/Y是swapped.
  2. Restrict方向的变化,它引入了一些潜在的复杂计算,然后使用SensorManager侦听方向,然后手动将选项菜单转回底部。不知道这是否可能。
  3. 锁定方向,并创建一个自定义视图,该视图拦截菜单按钮并显示我需要管理的“假”选项菜单,等等。真的不想替换内置的OS功能,这可能是未来操作系统不同版本的噩梦,等等。

有人对如何处理这件事有什么想法吗?如果第二种可能的话,我会很高兴的,但是找不到任何与此相关的东西。

谢谢,

保罗

编辑:

已经证实了#2是不可能的,所以我想我的选择是#1,#3,除非其他人有任何想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-28 18:08:06

我的解决办法如下:

  • 允许在Android中更改活动的正常方向。在自定义的“画布”视图构造函数中的
  • 会触发一个跟踪字段mDisplay,该字段通过:

获取显示信息。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mDisplay = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

  • In onDraw(),检查显示旋转是否是0以外的东西,并将画布旋转回0旋转值:

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (mDisplay.getRotation() > 0) {
    canvas.save(Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
    canvas.rotate(-mDisplay.getRotation(), px, py);
    ...
    do stuff
    ...
    canvas.restore();
}

不确定这是否是最好的解决方案,但它似乎奏效了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5037724

复制
相关文章
Node.js 连接 MongoDB--插入数据
本章节我们将为大家介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作。
陈不成i
2021/07/13
2K0
使用insert () 在MongoDB中插入数组
“insert”命令也可以一次将多个文档插入到集合中。下面我们操作如何一次插入多个文档。
MongoDB中文社区
2020/02/19
7.7K0
使用insert () 在MongoDB中插入数组
mongoDB 文档插入
db.collection.insertOne(obj, ) 插入单个文档到一个集合(3.2版本有效),可选参数为w, wtimeout db.collection.insertMany( [objects], ) 插入多个文档到一个集合(3.2版本有效),可选参数为w, wtimeout db.collection.insert(obj) 传统的插入方式
Leshami
2018/08/13
9820
MongoDB 插入文档
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
用户4988376
2021/08/13
1.2K0
房上的猫:数组插入算法等难点专开
一:查找算法 public class Aini { public static void main(String[] args) { // 数组查找算法 // 查找学生是否存在 // 导入扫描仪 Scanner bdqn = new Scanner(System.in); System.out.println("请输入你要查找的学生:"); String name = bdqn.next();
房上的猫
2018/03/14
7140
Node.js中的MongoDB
show dbs: 显示当前所有的数据库 use 数据库名 ":进入到指定数据库中 db :显示当前所在的数据库 show collections:显示数据库中的所有集合
不愿意做鱼的小鲸鱼
2022/08/24
5.3K0
Node.js中的MongoDB
MongoDB(7)- 文档插入操作
插入方法 db.collection.insertOne() 插入单条文档到集合中 db.collection.insertMany() 插入多条文档到集合中 db.collection.insert() 插入单条或多条文档到集合中 insertOne() 语法格式 db.collection.insertOne( <document>, { writeConcern: <document> } ) 只能传一个文档,不能是数组 insertMany() 语法格式 db.col
小菠萝测试笔记
2021/06/09
9980
nodejs连接MongoDB插入数据
昨天介绍了一下MongoDB在shell下的正删改查,今天来讲一下在nodejs中如何连接数据库以及数据的插入!
十月梦想
2018/08/29
1.7K0
node.js + mongodb 原
想写博客很长时间了,因为一直身患懒癌,所以一直拖到了现在。markdown的语法也是刚刚学,试验一下效果 好了不说了,直接上干货了。 ------------------------------------------------------------------------------------------------
笔阁
2018/09/04
2K0
node.js + mongodb 
                                                                            原
MongoDB 存储过程
MongoDB支持存储过程的使用,它的存储过程是用javascript实现的,被存在于system.js表中,可以接收和输出参数,返回执行存储过程的状态值,也可以嵌套调用。
郭顺发
2022/05/26
1.2K0
MongoDB 存储过程
MongoDB 数组在mongodb 中存在的意义
在MOGNODB 的文档设计和存储中,存在两个部分 1 嵌套 2 数组,所以如果想设计好一个MONGODB 在理解业务,读写比例,查询方式后,就需要介入到更深层次的理解嵌套的查询方式,嵌套多层后的性能问题, 数组其实比嵌套带来更多的问题,所以今天我们的从数组开始。
AustinDatabases
2022/04/05
4.3K0
MongoDB  数组在mongodb 中存在的意义
数组插入排序
插入排序是一个相对复杂一点的排序算法,但是效率要比我们以前接触过的排序算法快一些,他的思想是将数组分为两组数据(第一次分的时候就是数组第一个元素为一组,后面的所有元素为一组),然后从后面一组数据中抽取第一个元素与前面一组数据依次做对比,按需求将大的或者小的值插入到前面的一组数据中,最终后面一组数据全部插入完毕后,前面一组数据就是有序状态了。
我与梦想有个约会
2023/10/20
1250
数组插入排序
js 数组插入删除[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/14
6.8K0
MongoDB 数组查询
MongoDB shell version: 2.0.0 connecting to: test
阳光岛主
2019/02/19
2.4K0
MongoDB 数组查询
三、小结 a、数组查询有精确和模糊之分,精确匹配需要指定数据元素的全部值 b、数组查询可以通过下标的方式进行查询 c、数组内嵌套文档可以通过.成员的方式进行查询 d、数组至少一个元素满足所有指定的匹配条件可以使用$elemMatch e、数组查询中返回元素的子集可以通过$slice以及占位符来实现f、占位符来实现 f、all满足所有指定的匹配条件,不考虑多出的元素以及元素顺序问题
Leshami
2018/08/13
6.8K0
MongoDB数据的插入、查询、更新和删除
在MongoDB中,我们可以使用CRUD(Create、Read、Update、Delete)操作来插入、查询、更新和删除数据。这些操作都是通过MongoDB shell或编程语言驱动程序(如Python、Java、Node.js等)来执行的。
玖叁叁
2023/04/13
2.5K0
mongodb 相关的查找,插入删除等操作
http://blog.csdn.net/mcpang/article/details/7833805
bear_fish
2018/09/20
1.4K0
图解B+树的插入过程
B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助!
业余草
2019/07/11
7.3K0
图解B+树的插入过程
MongoDB(11)- 查询数组
如果希望找到的是包含 red、blank 两个元素的数组,可以使用 $all 操作符
小菠萝测试笔记
2021/06/09
2.4K0
Python操作MongoDB数组
1. Python操作字符串数组插入元素。 # pip install pymongo==3.12.3 # 数组示例 strArr = ['a','b','c'] from pymongo import MongoClient mongoClient = MongoClient(DB_IP, username='mongo', password='password',
编程随想曲
2022/12/01
4430

相似问题

scanr是如何工作的?Haskell

23

haskell代码是如何工作的?

12

Haskell异常处理是如何工作的?

32

Haskell尾部递归是如何工作的?

52

F#是如何实现让rec的?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文