Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1077990
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-04-18 21:03:31

这些天在写android应用,遇到了一件很诡异的事情:

某个图片资源作为背景被设置到layout上,在eclipse的layout设计界面内能显示,但是启动模拟器后图片完全无法显示;我将应用打包到真机上测试,发现图片能显示!

但事实远未那么简单。。后来我将应用打包给我的几个朋友测试,发现图片又是无法显示。

其中,我的应用支持的版本是2.1,模拟器版本是2.1,我的机器版本是4.0,两个朋友的机器分别是2.1和2.3。于是我猜想该图片在2.1和2.3上不兼容,于是单独建立一个工程,对该图进行测试,结果发现都能显示。

为什么这个图在我的应用上无法显示,在测试应用上可以显示,而且还是和版本相关。。。

经过一番折腾和各种假设以及实验找到了解决方法:

该图的名字是a打头,所以排在第一个,android自动产生R类资源索引,该图的索引值是0x7f040000,后面都是0有木有!我发现只要是 索引是0x7f040000的图片资源,在我的应用中都是无法显示,所以我就再扔进去一张没用的图片取名叫aaa.png让它排在第一个占用掉 0x7f040000这个索引,然后,一切都正常了。

疑问:虽然问题解决了,但是为什么在测试工程中同样图片资源索引是0x7f040000也是可以显示呢?我猜想可能是我的应用中使用到了别的一些 xml定义的drawable资源产生的冲突吧,也许是android的bug,但具体这个问题是如何产生的,还是没搞清楚。。。

阅读(874) | 评论(0) | 转发(0) |
0

上一篇:其它控件

下一篇:windows phone (13) 样式继承

给主人留下些什么吧!~~