自定义适配器实现Grid View和Gallery碰到到问题

  次阅读 作者:智能小宝 来源:互联网 2015-10-03 10:52 我要评论(0)

问题:

1.运行起来之后,APP会异常结束;

2.copy数据到模拟终端到sdcard中;

问题1.运行起应用程序之后,

点击两种模式,都会出现应用程序异常退出到问题。debug发现:

File file=new File(path);

通过path new出来到file是访问是空指针,也就回出现空指针异常。

通过咨询原作者说明,那是访问图片在Sdcard中图片到位置。

参考当前到情况,我并没有在模拟器并没有sdcard卡,所以sdcard也没有任何东西。所以会出现上面到问题。

下面新到问题就出现了:

1-1)如果增加sdcard卡到模拟器;

1-2)如何copy 图片等信息到模拟到模拟器;

不论是听MP3音乐或是浏览图片,Android手机的保存媒介就是常用的Micro SD存储卡。若想在Android仿真器播放音乐或者看数位相片,就必须先仿真出SD存储卡,并让Android仿真器能够访问仿真出来的SD存储卡。 Android SDK组件的tools目录里,除了emulator这个运行文件外,另外放置mksdcard这个程序,它可以仿真出您所需要的SD存储卡空间,例如使 用mksdcard指令仿真出1 GB的存储卡,指令如下:

mksdcard 1024M sdcard.img

经过一小段的硬盘读取时间后,就会在Android SDK tools/ 目录下生成一个文件大小为1GB的sdcard.img文件,也可以依照自己的需要更改1 024 MB为其他数字,制造出自己所需的存储卡大小,例如4 096 MB (4 GB) 或8 192 MB (8 GB)。然后我们以emulator指令启动Android仿真器时,必须添加-sdcard参数指定该sdcard.img存储卡文件,就可以让 Android仿真器拥有插入SD存储卡到T-Mobile G1手机的仿真效果。

emulator -sdcard sdcard.img

3.2.1adb+push上载文件到SD存储卡

使用Android仿真器加上-sdcard指令装入SD存 储卡后,似乎一切都没有发生。其实不然,Android是Linux操作系统的一种,它将SD存储卡挂接(mount)在系统的/sdcard目录中,我 们要访问SD存储卡,是无法直接在Android emulator的手机中来完成的,Android的仿真器并没有资源管理器可以做一般操作系统上的复制删除文件动作,一切必须靠adb (Android Debug Bridge) 指令来完成。现在必须开启另外一个终端机窗口,然后运行Android SDK tools目录底下的adb指令加上push参数,将计算机中的文件复制到刚刚制作好的SD存储卡图像档中,指令如下:

adb push 001.jpg /sdcard(复制001.jpg文件到 /sdcard 目录下)

adb push pictures /sdcard(复制pictures照片目录到 /sdcard 目录下)

adb push mp3 /sdcard(复制mp3音乐目录到 /sdcard 目录下)

复制好文件后,您必须运行adb shell指令进入Android系统,然后使用Linux系统的ls与cd指令浏览/sdcard存储卡文件。

adb shell(Android仿真器启动命令列模式)

# cd /sdcard(进入 /sdcard目录)

# ls(查看SD存储卡中的文件)

如果成功的话,则已经将计算机中的文件复制到Android系统的SD存储卡了。现在使用Android仿真器启动手机里的Gallery图片浏览 程序是不是已经看到刚刚已经加载的图片了,或是使用Music音乐播放程序,也可以直接看到加载的MP3音乐了,如图3-14所示,而不会再显示 no SD card了。如果还是显示no SD card或是抓不到信息的话,请关掉仿真器,重新运行emulator -sdcard sdcard.img,就可以正确抓到SD存储卡内的文件了。

按照上面描述的方法,就可以把这个APP所需要到图片都copy到sdcard目录下面。

所以也就先修改程序中一处: path="/sdcard/"; 把地址写死了,先验证功能之后,再说了。

修改之后,重新运行,仍然回出现异常。从eclipse的打印到log中知道,访问到仍然有空指针的问题。不过问题出在:

Bitmap bm=BitmapFactory.decodeFile(f.getPath(), opt);(bm为空指针!)

imageMaps.put(i, bm);

还好总算是进步了,发现访问到其中一个不是图片的文件的f.getpath(),decode之后bm是NULL。

这里应该是属于代码健壮性到问题。

所以,证据了过滤条件:

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...