转自:http://blog.csdn.net/qianqianyihao/article/details/52787664
Resources.getSystem().getDisplayMetrics().density 可以不用 Context 也能获取屏幕密度。
在布局文件中,如果只是为了占位,可以用 Space 来取代 View。 最棒的一点是Space可以跳过 Draw 这个过程。
applyDimension(int unit, float value, DisplayMetrics metrics) 方便dp, px, sp 之间的转换。
Formatter.formatFileSize() 这个方法会格式化数据的大小,根据输入的字节大小,返回 B KB MB GB 等等(最大支持到 PB)。当然要注意的是输入的最大值是 Long.MAX_VALUE.
遍历HashMap的最佳方法
public static void printMap(Map mp) {
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey() + " = " + pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
}
使用Java在一个区间内产生随机整数数
public static int randInt(int min, int max) { Random rand; int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum; }
view的isShown方法,只有当view本身以及它的所有祖先们都是visible时,isShown()才返回TRUE。而平常我们调用if(view.getVisibility() == View.VISIBLE)只是对view本身而不对祖先的可见性进行判断。
ActivityLifecycleCallbacks接口,用于在Application类中监听各Activity的状态变化 ![阅读地址]{http://mp.weixin.qq.com/s?__biz=MzA3ODkzNzM3NQ==&mid=401277907&idx=1&sn=0b2246f5178292596fc3a8295283359c#rd}
ActivityOptions ——方便的定义两个Activity切换的动画。 使用ActivityOptionsCompat 可以很好解决旧版本的兼容问题。
Executors. newSingleThreadExecutor();这个是Java的,之前不知道它,自己花很大功夫去研究了单线程顺序执行的任务队列
WeakHashMap,直接使用HashMap有时候会带来内存溢出的风险,使用WaekHashMap实例化Map。当使用者不再有对象引用的时候,WeakHashMap将自动被移除对应Key值的对象。
android:clipToPadding 设置父view是否允许其子view在它的padding(这里指的是父View的padding)中绘制。是不是有点绕?举个实际场景吧:假如有个ListView,我们想要在初始位置时,第一项Item离顶部有10dp的距离,就可以在ListView的布局中加入android:clipToPadding="false" android:paddingTop="10dp"即可。是不是很方便呢?