【问题标题】:Updating an Eclipse Android project via Git - image resource not updating通过 Git 更新 Eclipse Android 项目 - 图像资源未更新
【发布时间】:2011-05-06 22:04:29
【问题描述】:

我正在与一个团队合作开发一款 Android 游戏。有一个图形 spritesheet 资源,其初始平铺宽度为 96 像素,后来减少到 64 像素。在作者的计算机上,项目在新尺寸下正确运行,但在我的机器上,即使图像已更新为新分辨率,当我进入调试并在 BMP 资源上调用 getHeight() 时,它返回 96 和动画显示不正确(被剪辑)。

我尝试过: 刷新eclipse文件系统 重新克隆项目并在eclipse中创建一个干净的项目 使用 -clean 启动 Eclipse 清理构建

问题仍然存在,我已经没有想法了。请问,我如何让 eclipse 取消缓存它保存在某处的任何 crud 并使用明显位于 /res/ 文件夹中的新图像??

我正在模拟器上测试项目。运行 android api 2.1,级别 7。

Bitmap bmp;
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.blah);

【问题讨论】:

  • 只是为了确定一下,您是否尝试过在 Eclipse 包资源管理器中双击图像文件(至少在 Mac 上打开一个图像查看器),并验证它是您所期望的图像?跨度>
  • 是的。 Eclipse 知道它的存在,并且 Windows 资源管理器同意文件系统方面。我刚刚意识到我可以编辑图像并且尺寸仍然存在相同的问题......我只是用红色涂鸦了整个图块表,它在运行时显示出来,但尺寸仍然存在问题。我目前的怀疑是,这与我运行的分辨率模拟器与原作者不同。我需要明天测试一下。

标签: android eclipse git android-emulator


【解决方案1】:

如果要强制使用原始大小,则需要在加载位图时设置“inScaled”标志。当我的Open GL textures weren't showing up on larger screen devices 时,我很难发现这一点。

应该这样做:

BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
Bitmap bmp = BitmapFactory.decodeResource(getResources(),
                R.drawable.my_image, opts);

【讨论】:

    【解决方案2】:

    Android 会根据设备的屏幕分辨率自动缩放资源文件夹中的图像。因此,即使源图像的高度为 64 像素,也不能保证 .getHeight() 会返回 64。

    故事的寓意:不要硬编码图像大小的值 - 使用访问器方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-30
      • 2012-02-24
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多