任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

手势识别兼容Android 1.x和2.x的代码 Android开发技术

   由于Android 2.x开始很多API变动比较大新增了一些比如多点触控的支持,对于屏幕触控手势识别中我们需要考虑更多的实现方法,下面是一段兼容Android 1.x和2.x的代码,可以让我们的程序兼容几乎99%的Android手机。   一、首先新建一个抽象类判断SDK版本问题  public abstract class VersionedGestureDetector {    private static final String TAG = "VersionedGestureDetector";     OnGestureListener mListener;     public static VersionedGestureDetector newInstance(Context context,            OnGestureListener listener) {  //设计实例化构造方法,这里Android123提示大家目前有3种API的实现方法,我们需要逐一考虑最优的解决方法,以满足高平台更多的功能实现。         final int sdkVersion = Integer.parseInt(Build.VERSION.SDK); //使用android.os.Build判断API Level,但需要将字符串转换为整形        VersionedGestureDetector detector = null;        if (sdkVersion < Build.VERSION_CODES.ECLAIR) { //如果版本小于2.0则使用1.5版本的API,可以兼容1.5和1.6            detector = new CupcakeDetector();        } else […]

StrictMode限制模式API加速你的应用 Android开发技术

   从Android 2.3开始提供了一个新的类名为StrictMode可以帮助开发者改进你的Android应用,StrictMode通常可以捕捉到发生在磁盘或网络访问的应用主线程中,可以让主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免ANR窗口的发生。   一段示例代码可以很好的说明Android 2.3新特性StrictMode限制模式的工作方式,我们在Activity的onCreate中加入    public void onCreate() {     if (DEVELOPER_MODE) { //Android开发网提醒大家,这个标记自己设置一个全局的宏,当然Java中我们用一个Boolean类型设置debug模式好了         StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()                 .detectDiskReads()                  .detectDiskWrites()                 .detectNetwork()   // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O                 .penaltyLog()  //打印logcat                 .build());         StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()                  .detectLeakedSqlLiteObjects() //探测SQLite数据库操作                 .penaltyLog() //打印logcat                 .penaltyDeath()                 .build());     }     super.onCreate(); }   有关Android 2.3的限制模式使用和具体的测试,Android123将在明天详细说明,有兴趣的网友可以查看下SDK文档的android.os.StrictMode,具体的效果和开发改进意见需要进行实际评估。

Android加速感应器开发平衡球代码解析 Android开发技术

   如何使用Android的加速感应器开发一个控制铁球滚动的游戏: public class AccelerometerPlayActivity extends Activity {     private SimulationView mSimulationView; //游戏主显示View    private SensorManager mSensorManager; //感应器管理类    private PowerManager mPowerManager; //电源控制,比如防锁屏    private WindowManager mWindowManager;     private Display mDisplay;     private WakeLock mWakeLock;      @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);          mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); // 实例化感应器管理类         mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);         mWindowManager = (WindowManager) […]

扫描和获取OBB文件信息 Android开发技术

  今天一起来研究下如何扫描和获取Opaque Binary Blob (OBB)文件信息,有关OBB文件可以在 OBB文件和StorageManager类使用介绍 一文中找到,作为Android 2.3的新特性OBB文件放在SD卡上我们需要通过一种方式识别处理这种文件类型,在android.content.res.ObbScanner类中提供了一个静态的方法来获取一个OBB文件的信息,直接执行ObbScanner.getOBBInfo方法返回一个ObbInfo对象,该方法原型声明为static ObbInfo  getObbInfo(String filePath) ,而有关的ObbInfo类是android.os.Parcelable的子类,构造方法比较特殊,如果我们过去写过Android的AIDL服务对这个Parcelable应该不陌生。   ObbInfo类的字段定义如下    public String filename obb文件名     public int flags OBB文件的相关标识,目前只有OBB_OVERLAY则表示补丁覆盖过定义为1     public String packageName 这个obb文件属于哪个packageName的     public int version obb文件版本     ObbInfo的构造方法参考Android123以前提到的Parcelable类相关内容即可     public static final Creator<ObbInfo> CREATOR         提供了三个基础方法 int  describeContents() String  toString() void  writeToParcel(Parcel dest, int parcelableFlags)

Android 2.4改进主要针对平板电脑 Android开发技术

  按照目前曝光的消息来看Android 2.4蜂巢可能主要改进用于平板电脑,最终可能在2011年2月份左右发布,届时很多实用NVIDIA Tegra2的平板将会大量采用。   1. NVIDIA Tegra2目前主要使用的厂商有Motorola,目前网上已经曝光了这款MotoPad的原型机图片,最终的设计应该会有变动,不过Tegar2作为一款实用A9架构的双核处理器可能比目前主流的Snapdragon QSD8250这种1GHz的A8架构处理器更有竞争力在多媒体方面。   2. 目前平板电脑中iPad凭借出色的硬件制造工艺已经赢得了不少市场,而手机制造商Motorola、HTC在这种设备制造上可能不如传统的PC制造商如Acer、Asus他们经验丰富。Android 2.4最终将对WSVGA等高分辨率的兼容可以让开发者不考虑过多的UI设计。   3. Android 2.3的升级和改进可以看得出增加了硬件的支持,前置摄像头视频通话、NFC以及更多的感应器可以看出Google目前已经领先其他移动操作系统。  如果你现在考虑购买平板,可能512MB的RAM和Tegra2的CPU是一个明智的选择,不过遗憾的是目前知名品牌中还没有推出相应的解决方案,一切要看2011年了。

电子邮件解析android.net.MailTo类 Android开发技术

   如果遇到一个Email的Url如何解析出相关内容呢? android.net.MailTo类可以很好的处理类似 mailto:android123@163.com 这样的电子邮件Url。 String  getBody() //从一个Url获取邮件的正文内容 String  getCc()  //获取抄送地址 Map<String, String>  getHeaders()  //获取邮件头,比如编码类型,发送时间、IP等等 String  getSubject()  //获取主题 String  getTo()  //获取收信人 static boolean  isMailTo(String url)  //判断一个Url是否包含Email的链接 static MailTo  parse(String url)  //将一个Url解析成MailTo类   

Android流量统计TrafficStats类的使用 Android开发技术

  对于Android流量统计来说在2.2版中加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析。android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计。    static long  getMobileRxBytes()  //获取通过Mobile连接收到的字节总数,这里Android123提示大家不包含WiFi   static long  getMobileRxPackets()  //获取Mobile连接收到的数据包总数   static long  getMobileTxBytes()  //Mobile发送的总字节数   static long  getMobileTxPackets()  //Mobile发送的总数据包数   static long  getTotalRxBytes()  //获取总的接受字节数,包含Mobile和WiFi等   static long  getTotalRxPackets()  //总的接受数据包数,包含Mobile和WiFi等   static long  getTotalTxBytes()  //总的发送字节数,包含Mobile和WiFi等   static long  getTotalTxPackets()  //发送的总数据包数,包含Mobile和WiFi等  static long  getUidRxBytes(int uid)  //获取某个网络UID的接受字节数 static long  getUidTxBytes(int uid) //获取某个网络UID的发送字节数   最后Android开发网再次提醒开发者,TrafficStats类工作在Android 2.2 API Level为8的固件上。

Android获取摄像头详细信息 Android开发技术

  如何获取Android设备上的详细的摄像头信息呢? 目前Samsung的Galaxy Tab和Nexus S均有前置摄像头,获取Android摄像头的详细信息,在Android 2.3 SDK中得到了增强:   在android.hardware.Camera类中,API Level 9的SDK中加入了两个比较重要的方法,使用getNumberOfCameras这个static类型方法可以获取当前Android设备上的摄像头数量,比如Nexus S有两个,方法原型如下   public static int getNumberOfCameras ()      而对于具体的每个摄像头的信息,可以通过Camera类的getCameraInfo()这个静态方法获取,该方法有两个参数,参数一的ID,我们通过getNumberOfCameras获取的值减1即可,类似数组索引从0开始一样,用循环遍历每个摄像头信息,参数二是android.hardware.Camera.CameraInfo类,有关getCameraInfo方法的原型如下:   public static void getCameraInfo (int cameraId, Camera.CameraInfo cameraInfo)   对于Camera.CameraInfo类而言,比较简单,包含两个字段   public int facing   代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置  public int orientation  下面是拍照的旋转方向,一般自然些有0度、90度、180度和270度,这样可以获取我们正确的手握设备是横着还是竖着,有关拍照时的方向设置,可以参考下面的代码设置   public static void setCameraDisplayOrientation(Activity activity,         int cameraId, android.hardware.Camera camera) {  […]

Android 2.2新增的DeviceAdminInfo类 Android开发技术

   在Android 2.2中新增了一个android.app.admin.DeviceAdminInfo类,可以帮助我们以管理员权限获取一个Package信息,DeviceAdminInfo类有一个构造方法为DeviceAdminInfo(Context context, ResolveInfo receiver) 来实例化该类,参数一为目标PackageManager的Context。   ActivityInfo  getActivityInfo()  获取该Context的Activity信息,返回一个ActivityInfo对象  ComponentName  getComponent()  //获取这个Package的Component名称  String  getPackageName()  //获取这个apk包的package名称  String  getReceiverName()  //返回所有的receiver名称  String  getTagForPolicy(int policyIdent)  //返回一些定义的tag根据定义,这里定义的有 USES_POLICY_FORCE_LOCK 、 USES_POLICY_LIMIT_PASSWORD 、USES_POLICY_RESET_PASSWORD 、  USES_POLICY_WATCH_LOGIN和USES_POLICY_WIPE_DATA  CharSequence  loadDescription(PackageManager pm)  //载入一个package的描述 Drawable  loadIcon(PackageManager pm)  //这里android123提示对于apk文件在2.2中推荐的获取icon方法 CharSequence  loadLabel(PackageManager pm) //获取软件名称 boolean  usesPolicy(int policyIdent)  //参数定义参考上面的getTagForPolicy

UiModeManager设置夜间模式和行车模式 Android开发技术

  Android在2.2时新增了一个实用的类UiModeManager可以方便的管理当前Android设备的夜间模式和行车模式,位于android.app.UiModeManager这个包中。UiModeManager类使用Context.getSystemService(Context.UI_MODE_SERVICE) 来实例化,主要提供了以下几种方法 void  disableCarMode(int flags) // 禁止行车模式,这里参数一般为UiModeManager.DISABLE_CAR_MODE_GO_HOMEvoid  enableCarMode(int flags) // 启用行车模式,这里参数一般为UiModeManager.ENABLE_CAR_MODE_GO_CAR_HOME 这里Android123提示大家,在Android 2.2开始引入了另一种主题为Car Home,进入后手机的图标会更大,适合开车的人使用手机播放音乐,控制导航什么的。 int  getCurrentModeType()  //返回当前的模式,返回值有三种情况,夜间模式自动 MODE_NIGHT_AUTO ,夜间模式关闭 MODE_NIGHT_NO 和夜间模式开启 MODE_NIGHT_YES  夜间模式主要是设置Car Home主题的背景颜色,可以帮助我们在夜间或白天看清楚,就像很多GPS导航软件夜间模式和后地图背景为纯黑,看起来不是那么刺眼。  int  getNightMode()  //获取夜间模式状态 void  setNightMode(int mode)  //设置夜间模式。   同时UiModeManager类还提供了四个action定义,比如进入行车模式 ACTION_ENTER_CAR_MODE,进入桌面模式ACTION_ENTER_DESK_MODE,退出行车模式 ACTION_EXIT_CAR_MODE 和退出桌面模式ACTION_EXIT_DESK_MODE。 

Android开发图书推荐 Android开发技术

  很多入门Android开发者网友还是喜欢看书学习,对于SDK文档和ApiDemo等还无法快速了解,Android123在元旦给大家推荐两本入门级别的图书,作为图灵教育的书籍在质量等方面还有有保证的。   第一本为 《Android开发入门教程》 是原书 Beginning Android 2 的翻译版本 ,定价59.00元一般在44元左右可以买到。   第二本为 《精通Android 2》是原书 Pro Android 2  的翻译版本,定价89.00元,一般66元左右可以买到。   这两本书整体内容比较简单,对于Android开发的常见问题都已经提到,经Android123试读国外原版描述问题等方面都很到位准确,相对于国内的书籍来说更适合入门级Android开发者快速掌握,没有任何啰嗦或语义不清晰等问题。一般Android开发网很少推荐图书,毕竟中高级的技术开发者很少有空出书,所以大家学习掌握技术时还是要靠自己多研究源码。  

100% Secure Checkout

PayPal / MasterCard / Visa