5月 302017
 

  这个精度的损失给本人造成了精神损失! :cry: 

  整数相除,然后用ceil向上取整,本以为多简单个事,但是搞了半天,整数直接相除得到的结果必定是个整数,即使你把这个结果赋值给一个符点型的变量。

  后来才想起来需要强制转换其中一个为符点数然后再相除才可以。看下面的例子:

  输出结果:

  这个例子很简单,我就不解释啦!

  关键是有什么办法可以避免这个问题再发生?不能只凭记忆吧?!

 

 

 Posted by on 2017-05-30
4月 032017
 

需要对Android中的sdcard目录进行扫描,获取文件列表,而且要对文件进行排序

本文使用了非递归的方式进行扫描,用一个栈保存需要扫描的文件夹,用while循环所有目录和文件

排序分为在内部排序和整体排序:

  • 内部排序即每扫描到一个文件夹就对这个文件夹内的文件进行排序,然后再扫描他的子文件夹(某些场景会用到这种要求)
  • 外部排序即扫描完所有的文件后再进行排序。

根据最后的测试,外部排序速度明显优于内部排序,内部排序的时间约是外部排序的1.3倍。

基于此优化使用排序,如果场景不允许可以先内部排序满足某些条件后再改为外部排序。

下面为文件扫描类的代码FileScanner.java

github项目地址:https://github.com/wintergoes/AndroidFunctionTestApplication

 Posted by on 2017-04-03
1月 252017
 

  本文和上一篇文章类似,只是增大了圆角半径的值,所以左右两边看着像椭圆形状,我们先来看看完成后的效果图:

  首先,在res/drawable目录下新建一个shape形状,文件名为round_rect_oval_btn_normal.xml,代表按钮正常情况下的样子,代码为:

  第二步,为按钮按下状态新建一个文件,在res/drawable目录下新建文件名为round_rect_oval_btn_pressed.xml,文件内容为;

  接下来,把两个样式组合起来,使用selector资源,在res/drawable目录下新建文件round_rect_oval_btn_selector.xml,并输入文件的内容:

  好了,如果你现在想看一下按钮的效果,可以在activity上放一个TextView或者按钮,并设置它的background为@drawable/round_rect_oval_btn_selector。

  当然,为了保持代码的简洁和以后方便扩展,我们还是为这类按钮新建一个样式,在res/values/style.xml中新建一个名为round_rect_oval_btn_bkg的样式,并设置如下:

  现在再回到acitivy中为你的TextView或者按钮设置style属性为style=”@style/round_rect_oval_btn_bkg”就可以了。

 Posted by on 2017-01-25
1月 132016
 

  在Activity的finish中调用setResult时一定要注意顺序,setResult要在super.finish之前调用,否则返回的结果不正确!如下:

   如果不按这个顺序调用,在Activity中的onActivityResult中得到的resultCode是0!Android的坑真TM多啊!

 Posted by on 2016-01-13