30fps的要求 只能将数据事先缓存到内存里 否则读取速度跟不上
然而移动设备是没有你所要求的那么大的内存
然而移动设备是没有你所要求的那么大的内存
解决方案 »
- SDK2.1里的button怎么仿4.0右下有三角形风格
- 修改update.zip后果问题
- execSQL和insert,用哪个好点?
- 求助!!!
- 如何监听Android GPS设备的搜索卫星状态和稳定接收卫星数据状态?
- 求号http://www.eoeandroid.com的帐号
- android 滑动标题栏的实现(80分)
- radiobutton自定义排版问题
- android发送短信问题
- VideoView 和 MediaController 播放视频提示 cannot play vide
- 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,如解决问题,
两个帖子一起结算。谢谢各位的帮助。