随笔分类 - android
android的开发经验
摘要:在项目中有这么一种需求需要后台开启服务,时刻记录用户和软件的交互行为,一旦交互发生,就向服务器测发送一条消息解决方案:一、创建一个service服务类在service中开启一个线程,service类具有一个记录消息队列的成员变量,在service的oncreate方法中开启一个循环,检测此队列,如果队列中存在消息即发送,并在发送之后删除此消息,代码如下:package com.test.remotecontroller.services;import java.util.LinkedList;import java.util.Queue;import android.app.Service;i
阅读全文
摘要:将这个功能封装成了一个类,这样今后方便调用package com.bobo.myyaoyiyaotest;import android.R.bool;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;public class ShakeListener implements SensorE
阅读全文
摘要:1,activiy生命周期http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/结合ativity的状态转换来看才能理解的透彻http://blog.csdn.net/lizhiguo0532/article/details/7480993activity处于何种状态是程序员控制不了的,可以参考这篇博客,讲解的是finish,ondestroy,system.exit(0)之间的区别http://hi.baidu.com/1533197566/item/246c0a7801d7617b0d0a07d6http:/
阅读全文
摘要:今天碰到很诡异的问题,viewpager中放置至少三张图片的时候能够正常实现循环滑动,只放置一张或者两张的时候就不行。后来发现问题症结:viewpager需要保证既可以向左滑动,又可以向右滑动,因此当前显示view的左侧和右侧都是存在的,只有超过这三个范围之外的才对其调用destory方法。循环实现的代码如下:package com.wot.cloudsensing.carrotfarm.adapter;import java.util.ArrayList;import com.wot.cloudsensing.carrotfarm.R;import android.content.Conte
阅读全文
摘要:1,ationbar的基本讲解http://www.apkbus.com/forum.php?mod=viewthread&tid=125536仅仅需要根据需求写出一个menu资源文件2,actionbar实现tab选项卡http://www.apkbus.com/forum.php?mod=viewthread&tid=125536其中tab的添加:创建每个ActionBar.Tab对象并把它添加到ActionBar对象中,另外,你必须调用setNavigationMode(NAVIGATION_MODE_TABS)方法来让选项标签可见其中的tab事件的相应:实现下面这个类:
阅读全文
摘要:一,使用TabActivity来实现底部导航http://www.apkbus.com/forum.php?mod=viewthread&tid=125521这种方法在最新版本的sdk中是被抛弃的,但是使用相对依然还挺广泛,可以参照。这里面提供了两种方法,一种是利用系统的tabwidget,另一种是将tabwidget隐藏,而借助于radiogroup来实现。二、由于tabactivity已经在4.0以上的系统中被抛弃,因此之后主要使用fragment来实现。http://www.apkbus.com/android-125525-1-1.html?from=threadlink这篇博
阅读全文
摘要:1,介绍如何寻找目录下所有的图片路径、图片的裁剪和保存http://www.cnblogs.com/cschen/archive/2013/04/14/3020276.html2,介绍如何处理listview中每一个item对应的点击事件http://www.cnblogs.com/erueat/p/3202517.html(妙极了,对自己很有用。)3,介绍如何如何实现listview的异步图片加载http://www.cnblogs.com/tianshidechibang234/archive/2013/07/18/3198647.html3,使用底部导航的实现方法(1)利用传统的tabA
阅读全文
摘要:该工具类利用递归原理,能够将任意结构的json字符串进行解析。当然,如果需要解析为对应的实体对象时,就不能用了package com.wot.cloudsensing.carrotfarm.util;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObj
阅读全文
摘要:关于存储路径问题,如果是想要存储在应用本身的路径下,如果该应用卸载的时候,对应文件随之卸载,如果使用的是android level 8以上的版本,采用的是: getExternalFilesDir();该函数需要向其传递一个参数:Environment.DIRECTORY_MUSIC,或者诸如此类。得到的路径为:/storage/sdcard0/Android/data//files/Music如果使用的较低的版本: 采用getExternalStorageDirectory()获得跟目录,下一级集目录需要自己创建如果想要存储在和路径相对独立的目录下,在应用卸载的时候,对应的文件依旧保留。In
阅读全文
摘要:左右滑动切换是几乎所有应用中都会用到的功能。在这里将相关资源进行总结(1)viewflipper结合手势检测进行左右滑动。http://www.cnblogs.com/hanyonglu/archive/2012/02/13/2349827.html这种方法很简单,但是大概效果不是很理想(不过自己感觉还行)。具体的改进网上资源有很多,可以在用到的时候再搜索(2)viewflipper渐显按钮实现图片切换。http://www.cnblogs.com/hanyonglu/archive/2012/02/13/2350171.html这个示例中实现了,当按下屏幕时候,出现向左向右两个按钮,点击对应
阅读全文
摘要:之前碰到过这样的问题,sp文件只能够append,或者清空。其实一个键值,通过,分割,或者替代可以实现多条信息的存储。下面是一个举例:package com.ctbri.weather.utils;import android.content.SharedPreferences;public class StringUtil { public static String addIndex(SharedPreferences sp,String oldIndexs,String insertIndex) { if(oldIndexs.contains(insertIndex)...
阅读全文
摘要:经验一,将几个页面公用的数据,和方法进行封装,形成一个baseActivity的类:package com.ctbri.weather.control;import java.util.ArrayList;import java.util.HashMap;import com.ctbri.weather.domain.AirInfo;import com.ctbri.weather.domain.AlertInfos;import com.ctbri.weather.domain.LifeIndex;import com.ctbri.weather.domain.MainData;import
阅读全文
摘要:intent是几大组件之间进行通信的组件。可以包含以下几个部分:component:指明了处理该intent的对象。Action类似于一个函数名,规定了其他部分的对应用法:The action largely determines how the rest of the intent is structured — particularly the data and extras fields — much as a method name determines a set of arguments and a return value.Data就是一个Uri:In many cases, t
阅读全文
摘要:一,bitmap工具封装了以下方法:1,获取activity屏幕截图,保存为图片文件2,从文件中获取截图,返回bitmap对象package com.ctbri.weather.utils;import java.io.File;import java.io.FileOutputStream;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapFactory.Options;import and
阅读全文
摘要:其中牵涉到的关键知识点1,回调机制,不过回调接口的实现方式有多种多样,可以是一个类继承该接口,也可以是作为一个方法参数;可以参照自己的这篇博客:http://www.cnblogs.com/bobodeboke/archive/2013/04/24/3040662.html2,hashmap联通softReference实现缓存机制。3,注意这种回调的处理,首先图片是用的默认图片(这里是应用图标进行占位),当回调接口调用时候,替换为网络获得的图片。详见代码:package com.bobo.myimageloader.util;import java.io.File;import java.i
阅读全文
摘要:相对直接调用系统的camera,这种方法使用得相对还少一些。根据api文档,步骤如下:定义一个预览类可以参照《android高薪之路》这本书上面,有这种方法的一种完整实现而对应的activity如下:package com.bobo.mycamara;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.text.SimpleDateFormat;import java.util.Date;import android.app.Activity;i
阅读全文
摘要:利用android的camera通常有两种方式:利用intent调用系统的camera,或者结合surfaceview实现自己定制的camera。先分别对这两种方法说明如下:一、使用系统自配的camera,这种方法不需要在配置文件中声明任何权限package com.bobo.mycamara;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import android.net.Uri;import android.os.Bundle;import android.os.Environmen
阅读全文
摘要:这几个类都是用于和服务器端的连接,有些功能都能够实现,关系是:一、URLURL标识着网络上的一个资源:该类包含一些URL自身的方法,如获取URL对应的主机名称,端口号,协议,查询字符串外,还有些方法:openConnection()Returns a new connection to the resource referred to by this URL.finalInputStreamopenStream()Equivalent toopenConnection().getInputStream(types).finalObjectgetContent(Class[]types)Equi
阅读全文
摘要://获取设备品牌;打印出Huawei System.out.println("BRAND:"+android.os.Build.BRAND); //获取设备信息;打印出hwc8813 System.out.println("Device:"+android.os.Build.DEVICE); //获取厂商信息;打印出HUAWEI System.out.println("MANUFACTURER:"+android.os.Build.MANUFACTURER); //获取型号信息:打印出:HUAWEI C8813...
阅读全文
摘要:具体的可以参见这篇博客,将原理讲解得很详细:http://blog.csdn.net/mylzc/article/details/6772129由于android只能够在主线程中实现UI的更新,因此使用的方法通常是:1,handler+thread机制2,异步处理工作类:Async Task。里面五个回调分别对应着五个状态,详情可见上面的博客,这里重点说一下几个参数的含义。AsyncTask<params,progress,result>;其中,params是传递给后台的参数类型。result是后台返回的参数类型。result doInBackground(Params...)。这
阅读全文