java - Android studio 不同屏幕尺寸像素
问题描述
我为我的安卓手机(1440x2960)做了一个小游戏,我用像素来绘制(没有任何布局):
canvas.drawBitmap(image, x, y, null);
该代码在 1440x1960 屏幕上运行良好,但没有注意不同的屏幕尺寸(在 720p 下,您甚至看不到一半的游戏)。我怎样才能很好地解决这个问题?我知道,我可以为图像制作不同的尺寸,但真正的问题是 x 和 y 坐标。我想也许我可以得到屏幕的实际像素,做一个比率,并将坐标乘以它,但它比看起来更难(需要很多改变),应该是一个更好的解决方案。
解决方案
要获得手机的分辨率,请使用
DisplayMetrics metrics = new DisplayMetrics();
当与本文档中的功能一起使用时,此对象将包含您需要相应调整图像的数据。
此外,请查看将 dp 转换为像素,反之亦然,以便在同时引用 Java 和 XML 中的大小时进行适当的缩放。
推荐阅读
- kubernetes - kubectl 允许用户只复制文件进出 pod
- c# - 查找字符串中最常见的 5 个单词
- javascript - AnchorEL组件在第一次调用方法后失效
- r - data.table 性能问题:get vs [[]],就地计算
- python-3.x - 如何从列表中随机选择项目随机时间
- python - 类型错误:add_widget() 缺少 1 个必需的位置参数:'widget'
- python - 在 python 中从 NUMPY 数组中获取位置数组的一个衬垫
- wso2 - WSO2 身份服务器自定义错误消息
- vba - 循环浏览包含特定字符串的 Outlook 中的特定子文件夹
- pandas - 根据其他列的 NaN 状态对多列求和