随笔分类 -  android

android的开发经验
摘要:通过本案例,主要学习以下几点:(1)通过查看api文档,找到实现相应功能所需要的,intent的action属性,其对应的extra字段,以及所需要的相关权限。(2)对于仅在后台运行的服务,如何开启。例如本案例并没有前台界面,仅仅需要在后台开启一个servcie进行实时监听,然而service需要启动时机,因此考虑利用广播来启动。监听系统开机的广播事件,在其receive方法中,开启后台服务。(考虑过如果仅仅监听来电,是否可以在onreceive方法中之间为系统的telephoneService设置对应的监听事件,不过这种方法,总比不上自己重写一个服务更优美《一方面因为onrecive的周期大 阅读全文
posted @ 2013-05-27 20:44 bobo的学习笔记 阅读(434) 评论(0) 推荐(0)
摘要:应用开发中出现这种需求,需要统计链接点击事件的记录,并在每次退出应用时向服务器上传本次使用应用过程中所有的事件记录。首先将事件封装为一个实体类:package com.wotlab.home.moneyplantairs.entity;import java.io.Serializable;import java.text.SimpleDateFormat;import java.util.Date;import android.content.Context;import android.net.sip.SipRegistrationListener;import android.telep 阅读全文
posted @ 2013-05-24 11:11 bobo的学习笔记 阅读(897) 评论(0) 推荐(0)
摘要:在开发中碰到这么一种需求,每次打开应用时候,需要将应用中某个按钮点击的次数进行统计,上传至服务器。这样就需要保存每次打开应用时候的点击信息。背景知识,几种变量的生存周期:(1)类变量,其生存周期和类的生存周期相同,(经历创建->加载->销毁几个阶段);其加载一般发生在第一次创建类的实例或者调用类的方法时候发生。销毁一般在程序运行结束,jvm退出的时候关闭(2)实例的成员变量,其生存周期和实例对象的生存周期相同(经过创建、初始化、销毁等几个阶段)。其创建一般发生在new该对象时,销毁一般有java自动回收机制完成,当不存在对该对象的引用时,垃圾回收器会考虑将对象回收。(3)final 阅读全文
posted @ 2013-05-24 09:59 bobo的学习笔记 阅读(646) 评论(0) 推荐(0)
摘要:在开发过程中碰到了gestureDetector方法不能触发的问题,解决方法是:1,网站上一种方法是设置setLongClickable(true)的属性,但此种方法没有解决自己的问题。2,最终找到的解决办法是:由于令activity实现了OnGestureListener接口,重写activity的onDown方法,令其返回true深入的考虑,这涉及到各种手势的触发条件及顺序,详见下面这篇博客http://blog.csdn.net/xiezhenxiang/article/details/6659506 阅读全文
posted @ 2013-05-21 16:57 bobo的学习笔记 阅读(143) 评论(0) 推荐(0)
摘要:调用系统图库得到所有图片的代码是:Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, REQUEST_PHOTO_OTHER);之后在activity的onAcitivityResult方法中处理得到的数据: if(requestCode == this.REQUEST_PHOTO_OTHER){ ... 阅读全文
posted @ 2013-05-20 16:46 bobo的学习笔记 阅读(1376) 评论(0) 推荐(0)
摘要:本功能实现的是调用相机拍照,并利用img标签显示:思路一:拍照时刻进行保存package com.bobo.mypic;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import com.bobo.util.BitmapUtil;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.app. 阅读全文
posted @ 2013-05-20 16:16 bobo的学习笔记 阅读(647) 评论(1) 推荐(0)
摘要:题外话:1,android中的布局,其实可以优先考虑RelativeLayout,利用 android:layout_below这个属性来实现类似于线性布局的垂直布局,并且相较而言具有更大的灵活性2,关于控件,甚至外围布局的android:layout_width、android:layout_height属性,不必排斥赋予具体的数值,不过为了更好的适配,考虑利用dip,sp为单位3,margin,padding等可以为负值,(这样能产生帧布局类似的重叠效果?)回归正题,android中实现圆角矩形:<?xml version="1.0" encoding=" 阅读全文
posted @ 2013-05-19 19:45 bobo的学习笔记 阅读(2156) 评论(0) 推荐(0)
摘要:利用URLConncetion,HttpURLConnetion,HttpClient都可以发送网络的get,post请求,三者封装的程度由低到高,低级类能够实现的功能,高级类也能够实现例如;发送网络请求下载apk的时候:利用HttpURLConnetion,自己的代码如下public void downLoadApkByConnection(String urlString, ProgressDialog pd) { BufferedInputStream bis = null; FileOutputStream fos = null; Buffer... 阅读全文
posted @ 2013-05-12 11:22 bobo的学习笔记 阅读(254) 评论(0) 推荐(0)
摘要:一、获取raw下的文件流 //android获取各个文件夹下的文件流 InputStream is=this.getResources().openRawResource(R.raw.aaa); 二、获取data/data/包名/files下的文件//从data/data/包名/files写入文件 FileOutputStream fos=openFileOutput("fileName", Activity.MODE_PRIVATE); FileInputStream fis=openFileInput("fileName");三... 阅读全文
posted @ 2013-05-11 13:27 bobo的学习笔记 阅读(729) 评论(0) 推荐(0)
摘要:System.out.println(Environment.getExternalStorageState()); System.out.println(Environment.getDataDirectory().getAbsolutePath()); System.out.println(Environment.getExternalStorageDirectory().getAbsolutePath()); System.out.println(Environment.getRootDirectory().getAbsolutePath());... 阅读全文
posted @ 2013-05-11 11:39 bobo的学习笔记 阅读(679) 评论(0) 推荐(0)
摘要:首先需要建立几个辅助类:一、ConnectUtil类,判断时候具有可用网络,需要借助系统的ConnectivityManagerpublic class ConnectUtil { public static boolean isConnect(Context context){ ConnectivityManager manager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if(manager!=null){ Networ... 阅读全文
posted @ 2013-05-11 11:23 bobo的学习笔记 阅读(439) 评论(0) 推荐(0)
摘要:当需要适配不同的屏幕的时候,可能需要用到以下几点:关于单位的一点说明:1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这 这个,不依赖像素。 dip的换算: dip(value)=(int) (px(value)/1.5 + 0.5) 2. dp: 很简单,和dip是一样的。 3. px: pixels(像素),不同的设备不同的显示屏显示效果是相同的,这是绝对像素,是多少就永远是多少不会改变。 4. sp: scaled pixels(放大像素). 主要.. 阅读全文
posted @ 2013-05-09 21:50 bobo的学习笔记 阅读(480) 评论(0) 推荐(0)
摘要:在百度地图的开发中,出现了这样的问题,在地图坐标的标注中,需要将布局文件转换为bitmap或者drawable对象。从资源文件中获取bitmap对象: BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);从资源文件中获取drawable对象 getResources().getDrawable(R.drawable.ic_launcher)将布局文件转换为view的代码如下:// 将布局文件转换view对象 private View convertLayoutToView(int layout... 阅读全文
posted @ 2013-05-09 17:31 bobo的学习笔记 阅读(551) 评论(0) 推荐(0)
摘要:事件处理中经常使用到回调机制。其使用方法大致如下:(1)新建立一个接口类,标志需要处理哪一类事件package com.bobo.mycallback;//定义一个接口,里面实现一个普通的方法public interface MyEvent { public void doSomething();}... 阅读全文
posted @ 2013-04-24 17:35 bobo的学习笔记 阅读(1151) 评论(0) 推荐(0)
摘要:1,android中凡是牵涉到动画一般需要线程,及在线程中进行一定时间的休眠来实现。(除了系统自带的几种animation)2,在项目中需要每个钟表的色块需要实现从0点至当前时间的顺序添加代表不同时钟的色块,并且需要根据等级选择不同颜色的色块。实现的步骤如下:(1)将不同颜色,代表不同时刻的图片资源id利用二维数组来表示:private int[] levels={1,3,2,1,2,2,3,2,1,3,1};public static int[][] imgs = { { R.drawable.brown1, R.drawable.brown2, R.drawable.... 阅读全文
posted @ 2013-04-22 15:16 bobo的学习笔记 阅读(252) 评论(0) 推荐(0)
摘要:在开发中,发现 1,向网络发送请求,获得json字符串——>2,将请求到的json字符串进行解析(一般可以解析为List>对象)——>3,将解析到的对象通过base64编码后存储到文件中。在自己的项目中是SendRequst,jsonHelper,FileManager三个类的配合使用。其实,也可以采用不同的策略,建立对应的实体对象,在保存的时候,仅仅用sp文件的一个键值对保存整个json字符串,在使用的时候才进行解析。一、首先准备一个ArrayMap类,该类实现序列化接口,便于存储package com.bobo.util;import java.io.Serializab 阅读全文
posted @ 2013-04-19 09:43 bobo的学习笔记 阅读(5047) 评论(0) 推荐(0)
摘要:一,android动画分为两大类:tween动画和frame动画。前者包括四种:Alpha动画,Scale动画,Translate动画,Rotate动画。可以通过代码实现,也可以加载xml文件中的动画。诸如实现刷新按钮的点击事件的时候,可以参照http://blog.csdn.net/lamp_zy/article/details/7898107。以rotate动画为例,其中各个属性的含义如下:android:fromDegrees起始的角度度数android:toDegrees结束的角度度数,负数表示逆时针,正数表示顺时针。如10圈则比android:fromDegrees大3600即可an 阅读全文
posted @ 2013-04-14 21:37 bobo的学习笔记 阅读(173) 评论(0) 推荐(0)
摘要:1,service属于后台服务,无界面,其生命周期是:使用context.startService() 启动Service其生命周期为context.startService() ->onCreate()- >onStart()->Service running-->context.stopService() | ->onDestroy() ->Service stop如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStar 阅读全文
posted @ 2013-04-14 12:58 bobo的学习笔记 阅读(254) 评论(0) 推荐(0)
摘要:1,brocastReceiver没有其他组件那样的生命周期,只有一个onrecive方法。(其生命周期只有10秒钟左右,因此不要再其中进行相关的费时操作,否则会认为程序无响应)。这是一种在不同应用程序之间传输信息的机制,brocastReceiver自身并不实现界面,当它接收到某个brocast之后,brocastReceiver可以启动activity作为响应,或者启动service或notification等。2,brocastReceiver分为三类:普通广播、有序广播和异步广播。3,注册广播具有两种方式:代码注册和在配置文件中进行注册:区别是如果在.xml中进行注册,那么无法在代码中 阅读全文
posted @ 2013-04-13 21:55 bobo的学习笔记 阅读(467) 评论(0) 推荐(0)
摘要:popupwindow,对话框式的activity,dialog都可以实现对话框的效果;前两者还都可以实现出现时候的动画效果。如果想要点击popupwindow之外的区域使之消失,在新建popupwindow之后,需要设置一下属性pop = new PopupWindow(460, 600); // 默认是不能获取焦点 pop.setContentView(contentView); pop.setAnimationStyle(R.anim.fade_in); pop.setFocusable(true); pop.setBackgroun... 阅读全文
posted @ 2013-04-10 15:21 bobo的学习笔记 阅读(605) 评论(0) 推荐(0)