如何高速显示高清图片 30fps的要求 只能将数据事先缓存到内存里 否则读取速度跟不上 然而移动设备是没有你所要求的那么大的内存 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1280X768分辨率的照片30张才不到100M的内存啊,现在不是都是上G的内存么?内存应该不是问题的关键。 你也太天真了,加载1张2M的图片代码写不好都有可能内存溢出。不是说整个手机有1G内存,你一个应用就能用到1G内存的,系统是有限制的,android系统跑起来内存耗掉一大半了 拿了个1G内存的平板测试了一下,加载到15张以上图片就OOM了。加载15张图片的时候,查看系统空闲内存还有近300M。dalvik.vm 设置如下:dalvik.vm.heapstartsize=8mdalvik.vm.heapgrowthlimit=64mdalvik.vm.heapsize=384m这个是加载代码:private void initBitmap() throws IOException { if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File sdCardDir = Environment.getExternalStorageDirectory(); String path = null; for(int i=0;i<MAX_PIC_NUM;i++){ path = (sdCardDir.getCanonicalPath()+DIR_PATH + Integer.toString(i)+".bmp"); bmpList[i] = (getDiskBitmap(path)); } } } 读取SD卡上的bmp图片:private Bitmap getDiskBitmap(String pathString) { Bitmap bitmap = null; try { File file = new File(pathString); if(file.exists()) { bitmap = BitmapFactory.decodeFile(pathString); } } catch (Exception e) { // TODO: handle exception } return bitmap; } 内存问题先放一边了。刷新率问题又来了,网上查了下用 AnimationDrawable 做最简单。测试了一下,addFrame()函数设置帧停留时间小于66ms(fps 15)时,肉眼感觉平板屏幕已经有跳帧了。(相同的图片循环,在windows上30fps肉眼也可以区分,所以排除图片的问题)我想问的是,“感觉跳帧”这个问题,是AnimationDrawable()的问题,还是平板屏幕问题,或是平板显卡问题,又或者是我眼睛问题呢。 用Eclipse的Heap测试,貌似一个程序不加largeHeap的话,超过4M就很容易OOM,不过即使加了largeHeap估计也顶不住你这么用! 现在千元级别的平板1G内存已经是低配了,不要停留在过去好吧。我的测试的程序没经过任何设置,占用内存46M多,运行很好,现在能流畅显示15fps,1280x768的图片循环。 感谢niekangshibendan提示,设置了largeHeap,程序可以申请了足够的内存(>100M)。不设置largeHeap的话,程序最大只能申请到(dalvik.vm.heapgrowthlimit=64m)64m内存。dalvik.vm 设置如下:dalvik.vm.heapstartsize=8mdalvik.vm.heapgrowthlimit=64mdalvik.vm.heapsize=384m 大部分问题已经解决,程序在30fps运行了1个多小时,没发现内存泄露。还有个小问题就是,程序框架无法向下自动扩展到已隐藏的系统工具条那块区域,没有真正全屏运行。我已另起帖子http://bbs.csdn.net/topics/390695627,如解决问题,两个帖子一起结算。谢谢各位的帮助。 很妖的事,关于android内edittext 求高手指点 android google地图得到 此手机的x y坐标,在线等 Android 逐帧动画 Android NDK调用第三方的库,对库有限制吗? somebody help me Android 消息机制 新开版,处女问 手机QQ如何保证聊天信息发送到用户 用安卓手机实现移动打印,求帮助 求助:有没有谁做过android的上拉出现图片的功能 webview如何与iptv中间件交互? Bitmap.createBitmap的options属性inSampleSize的值只能是2的幂吗???
1280X768分辨率的照片30张才不到100M的内存啊,现在不是都是上G的内存么?
内存应该不是问题的关键。
不是说整个手机有1G内存,你一个应用就能用到1G内存的,系统是有限制的,android系统跑起来内存耗掉一大半了
加载15张图片的时候,查看系统空闲内存还有近300M。
dalvik.vm 设置如下:
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=384m这个是加载代码:
private void initBitmap() throws IOException
{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File sdCardDir = Environment.getExternalStorageDirectory();
String path = null;
for(int i=0;i<MAX_PIC_NUM;i++){
path = (sdCardDir.getCanonicalPath()+DIR_PATH + Integer.toString(i)+".bmp");
bmpList[i] = (getDiskBitmap(path));
}
}
}
private Bitmap getDiskBitmap(String pathString)
{
Bitmap bitmap = null;
try
{
File file = new File(pathString);
if(file.exists())
{
bitmap = BitmapFactory.decodeFile(pathString);
}
} catch (Exception e)
{
// TODO: handle exception
}
return bitmap;
}
刷新率问题又来了,网上查了下用 AnimationDrawable 做最简单。
测试了一下,addFrame()函数设置帧停留时间小于66ms(fps 15)时,肉眼感觉平板屏幕已经有跳帧了。
(相同的图片循环,在windows上30fps肉眼也可以区分,所以排除图片的问题)
我想问的是,“感觉跳帧”这个问题,是AnimationDrawable()的问题,还是平板屏幕问题,或是平板显卡问题,又或者是我眼睛问题呢。
现在千元级别的平板1G内存已经是低配了,不要停留在过去好吧。
我的测试的程序没经过任何设置,占用内存46M多,运行很好,现在能流畅显示15fps,1280x768的图片循环。
不设置largeHeap的话,程序最大只能申请到(dalvik.vm.heapgrowthlimit=64m)64m内存。dalvik.vm 设置如下:
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=384m
还有个小问题就是,程序框架无法向下自动扩展到已隐藏的系统工具条那块区域,
没有真正全屏运行。我已另起帖子http://bbs.csdn.net/topics/390695627,如解决问题,
两个帖子一起结算。谢谢各位的帮助。