1.ListView嵌套在ScrollView中,判断ListView是否滑动到底、顶,用如下方法:
public boolean canChildScrollDown(){
if(android.os.Build.VERSION.SDK_INT < 14){
if(mModelListView instanceof AbsListView){
final AbsListView absListView = (AbsListView)mModelListView;
return absListView.getChildCount()>0&&
(absListView.getFirstVisiblePosition()>0||
absListView.getChildAt(0).getTop()<absListView.getPaddingTop());
}else{
return ViewCompat.canScrollVertically(mModelListView,-1) || mModelListView.getScrollY()>0;
}
}else{
return ViewCompat.canScrollVertically(mModelListView,-1);
}
}
2. android 资源适配:
sw<N>dp,如layout-sw600dp, values-sw600dp-------》最小宽度大于此宽度时在该资源路径下找,但不随屏幕转向而改变;
w<N>dp 如layout-w600dp, values-w600dp------------》最小宽度大于此宽度时在该资源路径下找,随屏幕转向而改变;
h<N>dp 如layout-h600dp, values-h600dp------------》最小高度大于此高度时在该资源路径下找,随屏幕转向而改变;
3. Eclipse下载sdk使用国内代理服务器:mirrors.neusoft.edu.cn 80
4. sp与dp基本类似,但在系统设置中设置字体时,单位为sp的会进行缩小或放大;
5.获取屏幕宽与高,getWidth/getHeight过时了,用下面的代码:
WindowManager wm = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay();//.getWidth(); Point size = new Point(); display.getSize(size); return size.x;
6.android manifest.xml中有多个main配置时,看具体的category配置决定程序启动。
参考:http://blog.sina.com.cn/s/blog_8cfbb992010125yn.html
7.如果你不希望sendBroadcast()时,所有的Receiver都被Launch而动作的话,可以利用
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
这样就只有动态注册的Receiver会有反应,AndroidManifest.xml所定义的是不会有反应的。
8.AtomicFile首先不是用来代替File的,而是作为File的辅助类从在, AtomicFile的作用是实现事务性原子操作,即文件读写必须完整,适合多线程中的文件读写操作。用来实现多线程中的文件读写的安全操作
9.adb shell dumpsys SurfaceFlinger | findstr Laye 查看对应界面所在的包
adb shell dumpsys activity top 可以看到当前top activity 类名
10.mmm单模块编译,res中有错误也可编过,说明没编译到,需要删除out目录下两个地方,以Gallery为例:
out/target/product/esky6580_we_c_m/obj/APPS/Gallery2_intermediates/
注:开发中小技巧,小知识点暂写在这里,多了再进行整理归类;