当前位置: 首页 > 面试题库 >

onOffsetsChanged:移动位图

元嘉木
2023-03-14
问题内容

我希望我的位图具有屏幕的高度,并且具有比屏幕大的宽度,如果用户更改桌面,则可以向右或向左或向左移动一点,以便他可以看到整个图像。

这是我的代码,仅部分起作用:

        int x = -1*(int)((xOffset*bmp.getWidth()));
        canvas.drawBitmap(bmp, x, 0, null);

谢谢!


问题答案:

您可以通过onOffsetsChanged()中的变量xPixels和yPixels获得准确的像素值。在这里查看我的答案:android动态壁纸缩放

例如,在onOffsetsChanged()中,您可以设置一个私有类变量

mPixels = xPixels;

然后,在您的绘图程序中

holder = getSurfaceHolder();
c = holder.lockCanvas();
c.translate(mPixels, 0f);
// c.drawBitmap ... goes here :-)

通常,您需要的位图是屏幕宽度的两倍,并且图稿位于中间。例如:320像素宽度的屏幕->
640像素宽度的位图,其“中心”从160到480。mPixels在最左侧的启动器屏幕(共5个)中为0,在中心为-160,在最右侧的屏幕为-320。 。



 类似资料:
  • 在我的国际象棋引擎中,它使用比特板来表示棋盘的状态,一次生成一大块伪合法的棋步,结果就是一个比特板。例如: 典当: 稍后有点比特板魔术: 末尾的位板只是一大块可能的移动。引擎通常如何使用这个位板并从中生成单独的移动?我是否必须遍历每一位来检查它是否设置好?不过,在位板上迭代似乎违背了使用位板的目的,这就是为什么我有点怀疑。 有更好的办法吗?

  • 在Kafka消费者中,自动偏移重置:最新和启用自动提交:false的主要目的是什么。 在Kafka consumer中,我是否可以在KafkaListner期间检查是否能够接收重复记录或处理以前的记录 在spring boot中创建消费者端时,需要记住的所有必要事项以及日志记录的所有重要事项是什么,以便日志记录具有一定的意义

  • 我正在尝试建立一个简单的“飞鸟”游戏,我需要鸟的图像倾斜,上升时指向上方,反之亦然。然而,当旋转我的图像时,它会在稍微下降或轻触屏幕后部分或完全从屏幕上消失。谁能告诉我怎么解决这个问题吗?

  • 问题内容: 我正在尝试从屏幕的底部到中间在图像视图上进行翻译动画。动画完成后,我希望图像视图停留在那里。我不要setFillAfter(true),因为我想更新imageview的实际位置。 目前,我通过具有2个图像视图(在动画开始时一个,在结束时一个)来做到这一点,并且我使用setVisibility来实现此目的。这是做事的正确方法吗?这是我使用的代码: 问题答案: 然后,必须为要设置动画的Vi

  • 我目前正在学习位操作,我的任务是做一个左旋转的4位整数。 我的4位左旋转代码是 我想做一个4位循环移位,以保持作为一个4位后旋转,但似乎不能理解它是如何工作的。 例如:10(1010)左旋转1位后给出5(0101),但它给出的值是21,比我的4位多。 任何能让我理解这个问题的帮助都将不胜感激!

  • 我试图了解国际象棋编程中的位板表示是如何工作的,但我找不到关于一个细节的有用信息(或者只是无法正确翻译它^^)。我的问题是,如何自动生成掩码,以便在每个位置上移动每一个棋子。我假设它是一个矩阵,其中每个棋子类型都定义了他可以从该位置移动的每个字段(wP、bP、K、R、N、B的数组[5][64])。例如,对于下面的Rook on位置,只允许位置是: 我假设我必须为每一块类型和每一块瓷砖创建类似的东西