新手请教:采用viewflipper实现多图片展示,如何解决OOM的问题? 各位大侠,帮我看看吧,我的头都大了。使用viewflipper,在XML中直接配置了30个view,用来显示图片,实现了滑动翻片。在虚拟机上测试,已进入就报出 outofmemory的错误。我对内存管理没什么了解,在XML中配置30个view,是不是在一上来就都加载到内存里了?怎么释放内存,还不影响画面效果? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 采用java中的软引用来解决bitmap oom的问题比较科学。 如果显示的格式是固定的,不要全部都写到xml中,因为图片很占内存。你可以用gallery widget,临时渲染。这样就不会有问题了。 我选择的解决方案是,不把所有的child View 配置在XML中,改在代码中动态添加,通过删除、添加view的操作,保证viewflipper中始终存在三个 View,用来展示下一个、前一个,使当前展示的View的Index始终为1。 但是在处理享有滑动的时候,出现了问题,怎么也没弄清楚,请大侠帮忙!代码大体如下:this.flipper.showPrevious(); imageIndext--; //删除后后一个 flipper.removeViewAt(2);//创建一个子Viewint resId = (int)imageAdapter.getItemId(imageIndext - 1);//View itemLayoutPre = inflater.inflate(R.layout.itemlayout, null);itemLayoutPre.setBackgroundResource(resId);//添加到viewflipper的最前面flipper.addView(itemLayoutPre,0); 运行后,结果为:子视图个数一直为3,向右滑动后不能正常显示添加的这个View,而是找到了后一个。请大家帮我看看,这种方法错在哪里? 没有你的完整代码,不好下结论。只是有一点要注意: viewFlipper集成自framelayout.重载了removeViewAt(), addView().在执行这些操作的时候,同时会设置下一个要display的view.你应该是在这里出了问题 对,你说的对,我也就这样觉得。只是查了好多帖子,也没弄清楚该怎么addview。你能详细的说说removeViewAt(), addView(),diaplay的机制吗?我这代码输出出来,竟然有两个view的index都是0,一头雾水 最好看看viewflipper的源代码,我大体的看了一下,这个针对你的具体问题,你还是自己看看吧,呵呵 谢谢大家的帮助,我发现问题是display的位置问题。 Android新手开发几个问题? 短信数据库可以增加一个属性吗? 有关android中使用第三方jar 请教如何在加载一组图片时使用变量循环加载? WIFI Mac 地址 android类似这样的表格如何布局 通过命令行启动模拟器报如下Warning,这是怎么了? 请问animation执行之后,如何保持执行后的效果? 关于Listview菜鸟问题 listview的item长按事件失效 高人-------请问,如何实现android查看另一台android的屏幕或远程控制啊? Android4.0触摸屏驱动report点正常,单指点击无效果
但是在处理享有滑动的时候,出现了问题,怎么也没弄清楚,请大侠帮忙!
代码大体如下:
this.flipper.showPrevious();
imageIndext--;
//删除后后一个
flipper.removeViewAt(2);//创建一个子View
int resId = (int)imageAdapter.getItemId(imageIndext - 1);//
View itemLayoutPre = inflater.inflate(R.layout.itemlayout, null);
itemLayoutPre.setBackgroundResource(resId);//添加到viewflipper的最前面
flipper.addView(itemLayoutPre,0); 运行后,结果为:子视图个数一直为3,向右滑动后不能正常显示添加的这个View,而是找到了后一个。
请大家帮我看看,这种方法错在哪里?
只是有一点要注意: viewFlipper集成自framelayout.重载了removeViewAt(), addView().
在执行这些操作的时候,同时会设置下一个要display的view.你应该是在这里出了问题
你能详细的说说removeViewAt(), addView(),diaplay的机制吗?我这代码输出出来,竟然有两个view的index都是0,一头雾水