- 博客(15)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 浅析Android动画原理
Android动画的分类主要分为View动画和属性动画两种View动画又可分为两种:补间动画和帧动画补间动画(Tween Animation)定义:补间动画是对View进行一系列图像操作(如缩放,平移,旋转,改变透明度)而形成的的动画特性:a.补间动画支持四种类型:平移(Translate)、旋转(Rotate)、缩放(Scale)、不透明度b. 只是显示的位置变动,View的实际位置未改变,表现...
2018-03-28 23:50:18 312
原创 Activity启动模式的总结
Activity有四种启动模式:分别是standard,singleTop,singleTask和singleInstance。提起启动模式,不得不说下任务栈:任务栈Task,是一种用来放置Activity实例的容器,他是以栈的形式进行盛放,也就是所谓的先进后出,主要有2个基本操作:压栈和出栈,其所存放的Activity是不支持重新排序的,只能根据压栈和出栈操作更改Activity的顺序。启动一个...
2018-03-18 15:54:05 180
转载 Android 设计Bundle而不是直接使用Map的原因
Bundle内部是由ArrayMap实现的,ArrayMap的内部实现是两个数组,一个int数组是存储对象数据对应下标,一个对象数组保存key和value,内部使用二分法对key进行排序,所以在添加、删除、查找数据的时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大的情况下,那么它的性能将退化。而HashMap内部则是数组+链表结构,所以在数据量较少的时候,HashMap的Entr...
2018-03-09 17:33:28 857
原创 仿微信,qq在短时间内接受多条消息只响一声
我们日常生活中,有可能登录一个长时间没登录的qq账号,这时候,会收到很多条消息,但是不会像平时每收到一条消息,响一下。而是总共只响一下。这是腾讯对消息响动机制做了优化,在短时间内频繁收到消息,则显示一声。下面我就说一下思路,我们假设前一条 消息和后一条消息间隔只在0.2s以内,就可以认为是频繁收到消息。这时候后一条消息就不响。先定义两个变量,lastTime代表上次接收消息的时间,curr
2017-07-23 11:45:33 2267 1
原创 smack 4.1.4开发安卓的注册方法
//smack 4.1.4版本的注册public static IQ regist(String accounts,String password) throws SmackException.NotConnectedException { Map attributes = new HashMap(); attributes.put("username", accounts);
2017-03-18 10:41:26 839
原创 使用ViewPager来加载图片和轮播视频
使用ViewPager来加载图片和轮播视频 作为android基础组件之一,大家对viewpager已经很熟悉了,网上也有很多使用viewpager来加载图片的案例。但是像微信那样点击图片,可以轮播显示图片和视频的例子却没找到。正巧项目中有需求,可以就花时间写了下,现在给一下核心代码,希望对有此需求的同学们起一个抛砖引玉的作用。话不多说了,上代码: 以下是initData的代码“` pub
2017-03-12 00:24:53 5921 16
原创 谈下openfire心跳包检测的问题
最近在开发即时通讯客户端遇到了一个问题,就是网络正常的情况下,和openfire服务器正常通讯。如果长时间没接到消息,客户端和服务器的连接就会断开。经过测试,发现openfire每三分钟就会ping一次客户端,客户端会pong回应服务端。但是这样ping-pong几次后,发现客户端就接受不到服务器的ping信息了,而服务器发现客户端没pong,就把客户端的会话关闭了。这是上面那个问题的原因。至于为
2016-12-31 23:23:03 3044
原创 也谈下sqlite的rawQuery方法获取的Cursor流查询数据方法
因为对于cursor流不太熟悉,特别是在数据中查询一部分属性,而在网上也没找到相应的资料,因此我花时间研究了一下。以下是研究成果: public void getChatMsg(String friendName){ Msg msg; String sql = "select a.msg,a.username,a.sendTime,a.inOrOut from(select * fro
2016-10-04 16:49:05 5880
原创 gson将字符串转化为json数组注意事项
首先说说怎样把j对象数组转换为json字符串,用gson两句话搞定。 Gson gson=new Gson(); String friendlistresult=gson.toJson(friendList);接下来,要把json字符串转为对象数组则稍微麻烦一些。Gson gson=new Gson(); List tempList=ne
2016-10-03 12:06:10 3364
原创 也谈谈webview因为重定向而无法goBack的问题
String str="http://www.baidu.com";Log.i("TAG","str="+str);webView.loadUrl(str);如以上的代码,你会发现会一直无法finish掉当前页面,这是为什么呢?经过调试,你会发现weBView.canGoBack一直为true,所以一直无法执行finish()的操作。再仔细一看,http://www.
2016-06-17 15:14:04 6406 1
原创 分享手机兼容性测试一个很好的网站,腾讯优测
除了每天2次免费50款机型测试外,还有一个大杀器,云手机租用,重要的是有些手机租用限时免费,重要的是验证手机,填写资料会送你400元代金券。各位开发朋友们,如果你还为兼容性问题而烦恼,不妨试试。以下是网址,自个看看吧,我就不截图了http://utest.qq.com/
2016-04-24 12:01:28 1516
原创 onSavaInstanceState的用法
这里写代码片package com.example.activitystate;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.view.Vie
2016-03-12 23:46:31 622
原创 StartActivityForResult的用法
Intent intent = new Intent(LoginActivity.this,RegisterActivity.class); startActivityForResult(intent, 201);//请求码 从登录页跳转到注册页 注册页finish之前把数值传回来 Intent intent=new Intent(); intent.putEx
2016-03-09 22:12:36 557 2
原创 安卓项目修改包名需要注意事项
1:Android Annotation框架反射生成的类会报错,因为清单文件没配好,系统找不到相应的类。 2:gen文件夹下的包名也要改,要不找不到相应的R文件,也不会反射生成_类。 3:例如百度sdk,科大讯飞的一些API接口的key要重新申请(key的生成和包名有关) ps:另外安卓系统是通过包名来判断是不是同一程序的,所以就出现了以下一幕:
2016-03-09 12:56:12 784
原创 博客创建初衷
早就想在CSDN上写博客了,但一直比较忙。直到今日我觉得不能再这样下去了。我必须将自己在技术中遇到的一些难点总结起来,形成一个比较完整的体系。我也希望这些总结的经验也能为后来者提供一些方面,同时本人也希望能在博客与各位开发者一同交流,成长。
2016-03-09 12:50:19 527
xmpp长连接,由于心跳包客户端没有收到,所以服务器断开长连接,有什么优化的方法吗?
2017-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人