Android开发过程中遇到的一些小问题

做Android开发有一段时间了,其实在开发过程中,遇到大的问题可能每个人不一样,网上也能搜到一些大体思路,再根据自己项目的实际情况来解决,但是一些小问题,虽然不难,但是遇到了却感觉烦躁,而且这些小问题一般以界面问题巨多。。。。。

下面说说我遇到的一些问题和解决方法吧。


1、自定义seekbar中滑块被遮住的问题。

      网上解答一般是设置  thumboffset=0或者设置paddingleft/paddingright

但是在xml文件中设置thumboffset,对有些系统有用,有些没用,比如我在4.0机子上测试,设置这个值就可以,在2.1上就不行。设置padding更不用说了,会让进度条短一截,更难看。

     解决方法就是不用设置padding,在代码中设置thumboffset。

如下:  seekbar sk=(seekbar)findviewbyid(...);

             sk.setthumboffset(0);


这个我试过的机子都可以。


2、ListView的item中有类似checkbox的布尔值的选项。

     这种比如点击一项要选中,然后滑动一会儿,会发现选中的item错乱了。这个是ListView的重绘渲染机制决定的。一堆人说用viewholder,其实viewholder是没什么用的。我解决的方法就是用一个 ArrayList<boolean>——称之为flaglist ,数组大小和你保存数据用的集合大小相同,比如在第一次赋值时都设置为false,在适配器的getview中,每个checkbox做一个判断,如果flaglist的当前项为false,就不选中,如果为true,就选中。然后在checkbox的点击事件中,相应地改变flaglist中的值。这样每次滑动,ListView进行重绘,调用getview时,就会依赖flaglist来判断当前项是不是选中。其实用个其他什么集合的保存一下都可以,如hashmap,这样对系统资源消耗其实很小,而且比较方便。


3、当你的应用里有一些文件,如apk、视频、音频文件,这时要抛给系统去打开。典型的就是视频文件打开,一般的播放器都是横屏的,但是有时候从播放器返回到自己应用界面时,自己的应用界面也会变成坑爹的横屏,这种情况无论是再怎么设置强制竖屏都没用,解决方法是 抛给系统打开的intent,加一个new task的flag,OK。


3、加载图片的回收

     内存的OOM一直是Java的硬伤。在Android中,Activity被finish掉后,占用的内存不会立即回收,可以用MAT工具分析一下便知。我们只能尽最大力回收我们可以回收的。其中图片是占用内存很大的,在ondestroy中可以这样

     if(bitmap!=null && !bitmap.isrecycled()){
     bitmap.recycle();
     bitmap=null;
    }
System.gc();

 

当然,内存回收涉及到很多方面,这里只先简单提一下。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值