Android 程序员必须知道的 53 个知识点 1. android 单实例运行方法 我们都知道 Android 平台没有任务管理器,而内部 App 维护者一个 Activity history stack 来实 现 窗 口 显 示 和 销 毁 , 对 于 常 规 从 快 捷 方 式 运 行 来 看 都 是 startActivity 可 能 会 使 用 FLAG_ACTIVITY_NEW_TASK 标记来打开一个新窗口,比如 Launcher,所以考虑单任务的实现方法比较简单,首先 Android123 纠正下大家一种错误的方法就是直接在 androidmanifest.xml 的 application 节点中加入 android:launchMode="singleInstance"这句,其实这样将不会起到任何作用 , Apps 内 部 维 护 的 历 史 栈 作 用 于 Activity, 我 们 必 须 在 activity 节 点 中 加 入 android:launchMode="singleInstance" 这句才能保证单实例,当然一般均加在主程序启动窗口的 Activity。 2. px 像素如何转为 dip 设备独立像素::: 最近有网友问如何将 px 像素转为 dip 独立设备像素,由于 Android 的设备分辨率众多, 目前主流的为 wvga,而很多老的设备为 hvga 甚至低端的 qvga,对于兼容性来说使用 dip 无非是比较方便的,由于他和 分辨率无关和屏幕的密度大小有关,所以推荐使用。 px= (int) (dip*density+0.5f) //这里 android 开发网提示大家很多网友获取 density(密度)的方法存在问题, 从资源中获取的是静态定义的,一般为 1.0 对于 HVGA 是正好的,而对于 wvga 这样的应该从 WindowsManager 中获取, WVGA 为 1.5 这里可以再补充一下 dip,sip 的知识 3. Android 中动态改变 ImageView 大小大小 很多网友可能发现在 layout.xml 文件中定义了 ImageView 的绝对大小后,无法动态修改以后的大小显示,其实 Android 平台在设计 UI 控件时考虑到这个问题,为了适应不同的 Drawable 可以通过在 xml 的相关 ImageView 中加入 android:scaleType="fitXY" 这行即可,但因为使用了缩放可能会造成当前 UI 有所变形。 使用的前提是限制 ImageView 所在的层,可以使用一个内嵌的方法限制显示。 4. 如何判断 Android 手机当前是否联网? 如果拟开发一个网络应用的程序,首先考虑是否接入网络,在 Android 手机中判断是否联网可以通过 ConnectivityManager 类的 isAvailable()方法判断, 首先获取网络通讯类的实...