- 博客(44)
- 收藏
- 关注
转载 Android 5.0以上操作外置sdcard(一)
google在android4.4封闭了操作外置sd卡的功能,业界一片吐槽,so,在android5.0提供了全新的方式去操作外置sdcard。 1.首先获得外置sdcard的路径: extSdcardPath = System.getenv("SECONDARY_STORAGE"); 2.获取uri,防止重复进入documentui界面 if (!...
2018-05-25 10:02:54 1840
原创 Android中 将一个布局文件添加到listView的头部
Android中将一个布局添加到listView的头部:1.编写此布局2.初始化:listViewHeader=getLayoutInflater().inflate(R.layout.listview_header_layout,lv, false);3.添加:lv.addHeaderView(listViewHeader);与ScollerView对比:在进行数据操作时,此方法比较简单,Sco...
2018-05-25 09:57:23 850
原创 Android中的倒计时器设计实现 00:00:00格式
功能:倒计时类:MainActivity(主类) MyCount(实现倒计时功能的类) AdvancedCountdownTimer(消息机制的抽象类)代码如下: package com.example.daojishiqi;import android.os.Bundle;import android.os.Handler;import android.os....
2018-05-25 09:54:24 1975
原创 Android 倒计时器 00:00:00格式
功能:倒计时类:MainActivity(主类) MyCount(实现倒计时功能的类) AdvancedCountdownTimer(消息机制的抽象类)代码如下: package com.example.daojishiqi;import android.os.Bundle;import android.os.Ha
2017-01-12 11:17:39 2005
转载 TCP与UDP区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,
2016-10-21 16:41:46 347
原创 Android 中Java 和C/C++的相互调用方法
在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用。 Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在 Java 虚拟机 (VM)内部运行的 Java代码能够与用其它编程语言(如C、C++和汇编语言)编写
2016-09-01 10:43:16 1132
原创 Service隐式显示启动
1、显式启动Service端:需要声明android:exported="true",这样别的APP才能访问。 android:exported= "true">客户端:需要知道Sercvice的名字以及其Application所在的包名。public static final String NAME_G
2016-08-26 10:52:58 642
原创 Android中的视频传输
Android支持播放网络上的视频。在播放网络上的视频时,牵涉到视频流的传输,往往有两种协议,一种是HTTP,一种是RTSP。这两种协议最大的不同是,HTTP协议,不支持实时流媒体的播放,而RTSP协议就支持。 Android中自带的播放器,以及VideoView等都支持上述两种协议,因此,可以直接播放网络上的视频,唯一不同的就是URI。 代码如下:
2016-08-25 10:28:15 1164
原创 Linphone快速挂断后程序的崩溃问题
第一种情况:第一步:主叫拨通电话后快速挂断,此时尚未收到服务器对 INVITE 的临时响应消息,因此主叫在调用 eXosip_call_terminate 函数时并不发送 cancel 消息,则通话过程实际并没有结束。第二步:主叫在挂断后状态进入 LinphoneCallEnd,并在 linphone_call_set_terminated 函数中将 lc->current_call 赋值
2016-08-23 17:52:33 1102
原创 Android CountDownTimer(倒计时器)和Chronometr(定时器)
CountDownTimer(倒计时器):在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往都自己写。现在发现了这个类,大家共享一下:在一个TextView不断显示剩下的时间,代码如下:[java] view plain copy private TextView vertifyV
2016-08-23 17:47:56 789
原创 @SuppressLint("NewApi")和@TargetApi()的区别
在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。那他们之间有什么区别呢,很简单,@SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android
2016-08-22 09:28:40 1307
原创 Android之API详解
API(Application Programming Interface)(应用程序编程接口):作为一个编程初学者来说,API函数也许是一个时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇API入门教程的目的,就是要把API函数的来龙去脉告诉大家,破除对API函数的畏惧,使它成为我们编程的好助手。 大家可
2016-08-22 09:14:43 1497
原创 VeiwPager、Gallery、ViewFlipper区别
ViewFlipper继承ViewAnimator,切换view的时候是有动画效果的,适合做ppt,多界面的程序欢迎引导界面,算是个轻量级的组件,适合展示静态数据,少量数据。 ViewPager继承ViewGroup。看官网描述,这货和Fragment是好搭档,Fragment有自己的生命周期。也就是说ViewPager更适用复杂的视图切换,而且Viewpager有自己的adapt
2016-08-20 15:20:26 736
原创 Activity四种启动模式
模式一: Standard:每次激活Activity时都会重新创建一个Activity对象代码部分: 在Manifest文件中注册:activity android:name=".MainActivity" android:launchMode="standard" />private TextVie
2016-08-05 17:25:49 462
原创 VeiwPager中滑动事件冲突解决方案
滑动事件冲突:1.ViewPager与ListView之间的冲突:解决方法一: 在ViewPager的OnPageChanged事件中添加两句话即可: private void viewPagerListener() {// TODO Auto-generated method stubviewPager.setOnPageChangeLis
2016-07-24 15:56:19 579
原创 Fragment生命周期
场景演示 : 切换到该Fragment11-29 14:26:35.095: D/AppListFragment(7649): onAttach11-29 14:26:35.095: D/AppListFragment(7649): onCreate11-29 14:26:35.095: D/AppListFragment(7649): onCreateView11-29 14:2
2016-07-22 17:07:47 395
原创 Android 数据库ORMLite用法
步骤:1.配置首先去ORMLite官网下载jar包,对于Android为:ormlite-android-4.48.jar 和 ormlite-core-4.48.jar ;2.创建Bean类有了jar,我们直接新建一个项目为:zhy_ormlite,然后把jar拷贝到libs下。然后新建一个包:com.zhy.zhy_ormlite.bean专门用于存放项目中的Bea
2016-07-21 14:20:12 815
原创 Android中短信发送与接受
短信的发送 两种发送方式: 一、利用系统的短信发送程序 1.Intent 发送一个隐式意图 Intent intent=new Intent(Intent.ACTI
2016-07-21 12:42:04 596
原创 Android应用如何匹配不同手机分辨率
布局适配: (1)不要使用AbsoluteLayout布局,尽量使用RelativeLayout和LinearLayout; (2)在使用布局的时候尽量使用权重,可以有效减少死数据的使用,降低适配的工作量。屏幕适配:在AndroidManifest.xml里面添加下面一段,没有这一段自适应就不能实现:
2016-07-21 09:03:23 585
原创 Android中获取当前的Activity
ActivityManager里面可以获取到当前运行的所有任务,所有进程和所有服务,这是任务管理器的核心。 仔细看getRunningTasks的文档,里面说获取的是系统中"running"的所有task,"running"状态包括已经被系统冻结的task。而且返回的这个列表是按照顺序排列的,也就是说第一个肯定比第二个后运行。 getRunningTasks有个
2016-07-21 08:53:45 986
原创 Android中获取控件的位置
getLocationOnScree:计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标getLocationInWindow :计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =、)getLeft , getTop,getBottom,getRigh
2016-07-20 16:12:36 2669
原创 Intent 传递的类型总结
一.Intent传递数据:方法1: 传递:通过intent.putExtra(Key,value)放入数据 接收:通过intent.getExtras取出Bundle,然后用Bandles.getLong,getInt.getBoolean,getString等函数来取出数据方法2: 通过data传递,而data传输的是
2016-07-20 10:34:06 991
原创 注册收件箱监听器时,经常会警告:Exported receiver does not require permission
如下代码: > 修改后的代码: >
2016-07-17 14:51:19 497
原创 经纬度距离计算
方法一:1.创建一个工具类:public class Distance {private static final double EARTH_RADIUS = 6378.137*1000;//地球半径(米)private static double rad(double d){ return d * Math.PI / 180.0;}public stat
2016-07-09 09:30:05 327
原创 Activity、FragmentActivity
Activity生命周期:OnCreat()----OnStart() ----Onresume() ----OnPause() ----OnStop()---------OnRestart()-------OnStart()--- ----OnDestroy()Fragment生命周期:O
2016-07-03 22:20:14 345
原创 将一个布局添加到ListView的头部
将一个布局添加到listView的头部:1.编写此布局2.初始化:listViewHeader=getLayoutInflater().inflate(R.layout.listview_header_layout,lv, false);3.添加:lv.addHeaderView(listViewHeader);与ScollerView对比:在进行数据操作时,此方法
2016-06-30 19:16:10 6057
原创 解析与架构
解析:1.Gson解析一个大括号对应一个内部类一个方括号对应一个集合2.Volley解析步骤:2.1)创建一个请求 1.StringRequest 字符串请求 2.ImageRequest 图片请求 3.ImageLoder 带缓存的图片访问 4.自定义Request 重写请求 2.2)创建一个队
2016-06-30 19:14:55 357
原创 Android开发之“友录”
编写内容:1.通讯录管理1)通讯录查看a.ContactContacts.Contactsb.ContactContacts.RowContactc.ContactContacts.Data2)联系人的添加(调用系统的联系人添加)3)联系人的编辑(调用系统的联系人添加)4)FAQ:删除联系人的信息2.通话记录的管理Calllog.Cal3.拨打电
2016-06-08 21:13:47 340
原创 AIDL通讯
why?广播:实现多线程之间的通信(单向的)Message:实现多线程之间的通信(双向的)ContentProvider:通过URI将数据暴露给访问者(单向的)以上二种实现了多线程通信(Message实现单线程通信),但不属于进程之间的通信,而在Android中定义了进程之间的通信AIDL;AIDL:当多个客户端并发一起访问时,并且需要处理多个线程的问题时,就必须用到AID
2016-06-08 20:52:21 446
原创 Android开发之友录项目层次结构
遵循原则:MVCM: model 模型层V: View 视图层C: Control控制器编写逻辑:1.通讯录页面a.联系人查看(调用Contacts表中的数据)b.联系人添加(调用系统进行添加)c联系人编写(调用系统进行编写)d.FAQ:联系人的删除2.通话记录的管理页面利用Calllog.Calls在数据库中进行查询3.拨打电话页面4.短
2016-06-08 20:39:26 398
原创 Android中的异步任务
异步任务对象:(AsyncTask)抽象类此对象属于工具类;目的:简化消息模型编写方法:一部分在主线程运行,一部分在工作线程运行用法:构建一个子类对象,继承AsyncTask,重写父类方法线程池:父类接口:Executor子接口:ExecutorService、ScheduledExecutorService(不常用)实现类:ThreadPoolExecutor
2016-05-19 23:18:19 343
原创 Android中的线程
线程同步:构建线程时会用到两个构造方法:Thread和Runnable线程同步:多个线程在共享数据集上互斥与协作1.线程互斥排队执行(需要加锁)2.线程协作在互斥基础上进行通知与等待线程中的三大消息模型:1.工作线程给主线程发消息步骤:a.用消息对象发送消息b.Message,此对象在工作线程中创建c.对消息进行迭代,然后再处理消息(
2016-05-19 23:07:50 289
原创 Android中的数据存储
1.外置SD卡存储:I/O存储(添加访问权限)2.内置SD卡的存储:I/O存储(添加访问权限)3.缓存存储注:缓存存储时,优先选择外置SD卡为存储的位置,存储空间为SD卡空间的1/8或1/16;4.数据存储(SQL)步骤:1)创建或打开数据库2)操作数据库2.1)创建表2.2)数据添加2.3)数据查询2.4)数据修改2.5)数据删除3)关
2016-05-15 17:06:20 270
原创 Android中的动画分类
动画分类:1.补间动画(事件不随位移的改变而改变)1)淡入淡出2)旋转3)平移4)缩放2.帧动画图片的叠加3.属性动画是补间动画所存在漏洞的补充(事件随位移的改变而改变)绘制方式:1.Java代码方式2.xml文件方式
2016-05-15 16:59:36 453
原创 Android中的自定义View与Notification
四中自定义View的场合:1.自定义Toset2.自定义ActionBar3.绘制图形(onDrawn继承View)4.ViewPager与Grideview一起滑动时(onMesure继承View)Notification步骤:1.创建Notification对象2.定义对象的属性3.创建要传递的对象4.创建服务访问系统进行传递
2016-05-15 16:53:09 499
原创 Android中的UI
MENU选项:1.点击菜单(OptionMenu)2.上下文菜单(ContextMenu)3.弹出菜单4.子菜单使用ActionBar(步骤):1.getActionBar2.setActionbar对话框:选项对话框、日历对话框
2016-05-15 16:39:54 313
原创 Java基础、面向对象总结
编程基础1)变量(局部变量,参数变量,实例变量,类变量)2)运算符(算术,关系,逻辑,赋值,条件,位运算)3)语句(顺序语句,分支语句,循环语句)4)函数(概念,定义,场合,调用,重载)5)数组(一维,多维)面向对象1)两大对象(类对象,类的对象(new))2)三大特性(封装,继承,多态)3)两大修饰符(static,final)4)两大抽象(接
2016-05-01 13:50:21 389
原创 Java-Android
Android基础三步走:多看、多思考、多练学习过程的思考套路:(1)What?(是什么?)(2)why?(为什么要用?)(3)when?(在那种场合使用?)(4)how?(怎么去用?)
2016-05-01 13:49:12 340
原创 Java-Android
1.Android 中的核心UI1)Layouts(Common Layout,Adapter Layout)2)InputControls(Buttons,TextFields,Bars)3)InputEvents(onClick,onKey,onTouch,onChecked,...)4)UI Compoments(Menu,ActionBar,Dialog,Notif
2016-05-01 13:37:55 334
原创 Java 中的反射
反射的根源:Class对象获得一个Class对象的三种方法:Class clz=类名.class;Class clz=Class.forName("类的完全限定名");Student s=new Student();Class clz=s.getClass;反射类的属性:getFilds();返回超类以及本类中定义的公有的属性构成的对象数组;getFild
2016-04-26 22:40:07 312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人