android
文章平均质量分 84
十案圈圈
这个作者很懒,什么都没留下…
展开
-
实现PHP服务器+Android客户端(Retrofit+RxJava)第六天推送的实现
废话不多说,今天来说说近几天的成果。如何实现推送android客户端nio的使用为啥要使用长连接长连接的建立php服务器如何实现长连接后期需要优化的部分如何实现推送推送的原理其实也很简单,服务器和客户端实现长连接,实现了长连接之后就想干嘛干嘛了。android客户端nio的使用如果对nio不了解,大家可以自己再去了解,我这里简单说下:你就是非阻塞的io,相对于我们一般使用的bio来说使原创 2016-08-07 20:28:06 · 1944 阅读 · 0 评论 -
Volley源码分析二
在前两天我发布的文章:Volley源码分析一 中我较为详细的分析了Volley,今天继续,这篇文章会讲一些上一篇没有提到的比较细节的点,以及对于Volley源码中一些可以优化的实现的一些思考ByteArrayPool的分析byte[] 的回收池,用于 byte[] 的回收再利用,减少了内存的分配和回收。主要通过一个元素长度从小到大排序的ArrayList作为 byte[] 的缓存,另有一个按使用时间原创 2016-05-05 17:50:27 · 2860 阅读 · 2 评论 -
android的一些比较有用的方法
一:判断某个activity是否在最上层显示boolean isFront(Activity context){try{ActivityManager act = (ActivityManager ) context.getSystemService(Context.ACTIVITY_SERVICE);List taskInfo = act.getRunningTask(1);原创 2016-03-23 17:06:01 · 518 阅读 · 0 评论 -
Android打包与混淆相关的一些小知识
打包混淆打包打包项目的话相信大家都会知道,eclipse的话就是右键export,选择Android目录下的Export Android Application,然后。。。你知道的。我就不仔细说了,如果是Android Studio的话就是Build下面的Generate signed APK(生成签名apk)。上面就是打包的过程,而打包完之后我们的软件并不是很安全,网上有很多的软件可以反编译出原创 2016-04-18 18:00:30 · 592 阅读 · 0 评论 -
RxJava学习第一天
原文请看:http://gank.io/post/560e15be2dca930e00da1083RxJava 是一个响应式编程框架,采用观察者设计模式 RxJava 是一个开源项目,地址:https://github.com/ReactiveX/RxJava为什么使用RxJava一个词简洁,不是代码量上的简洁,主要是逻辑的简洁,无论多么复杂的逻辑,一条链式调用就解决了,会很长,但是逻辑很清晰。观转载 2016-04-06 17:56:19 · 412 阅读 · 2 评论 -
android 换肤功能的实现
参考:http://www.open-open.com/lib/view/open1443511421408.html以及:http://blog.csdn.net/singwhatiwanna/article/details/23387079 此文的作者还在其他文章中做了很多解析可以好好看看。在网上看到很多做法就是直接在代码中做判断然后动态设置转载 2016-03-11 09:29:44 · 288 阅读 · 0 评论 -
android之Futuretask、Timer、AsyncTask的使用及原理解析
之前用写过这么一篇文章,但是写的很简单(那时候想的只是给自己做个笔记),但是后来想想还是有必要写的详细些,所以就把这前那篇删了,重写整理除了这篇文章。 还是先给出参考的博文地址: Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等 Java并发编程:Callable、Future和FutureTask Java 并发专题 : Timer的缺陷原创 2016-03-28 11:34:37 · 2752 阅读 · 0 评论 -
android GridLayout。。。
仅作为记录。。。在使用GridLayout使用时需要注意首先要指定行数和列数,需要注意的是加入你指定了GridLayout的宽度和高度,然后你指定这个GridLayout为4行4列,这个GridLayout不会被平分为等大的16块,API level 21 时使用指定weight可以解决android:layout_columnWeight="1"android:layout_rowW原创 2016-03-14 17:17:00 · 596 阅读 · 0 评论 -
Android RecyclerView的使用
RecyclerView是在android5.0加入的,android有提供向下兼容的包,而这个包在对于用eclipse(而且没有更新最新的sdk)开发的人来说的确是比较麻烦的事,如果有朋友属于我上面说的情况-------用eclipse,而且还不是最新的sdk,那就需要导入两个包:一个是android.support.v7.widget.RecyclerView,还有一个就是对应版本的andro原创 2016-03-23 09:14:27 · 435 阅读 · 0 评论 -
Volley源码分析一
我有一篇文章很不负责的,没有头绪的分析了一些Volley的源码。我自己回头去看了一下,于是就把他删掉了,于是就有了今天的这篇文章。Volley的使用步骤创建一个RequestQueue对象。创建一个Request对象。将Request对象添加到RequestQueue里面。我们可以看到使用非常的简单,顺着这个逻辑我们在来看一遍源码1.创建RequestQueue对象RequestQueue原创 2016-05-03 16:41:46 · 3172 阅读 · 0 评论 -
好看的照片墙效果实现(RecyclerView+Cardview+Palette)
不废话直接看效果 本图来源:Android5.x 新控件之RecyclerView,CardView,Palette的使用 大家跟着上面链接中的内容就能实现上图的效果了,只需要把其中RecyclerView设置LayoutManager为瀑布流或者网格就行。提一提Palette的作用Palette从图像中提取突出的颜色,这样可以把色值赋给ActionBar、或者其他,可以让界面整个色调统一。转载 2016-05-06 17:29:37 · 2786 阅读 · 0 评论 -
半透明的actionbar的实现
转自android:clipToPadding和android:clipChildren效果假设我们要做一个效果,界面最顶部是一个ActionBar并且是半透明的,ActionBar下面是一个ListView,在初始状态下,ListView是top是在ActionBar的bottom位置的,但当ListView滚动的时候可以透过ActionBar看到下面的ListView的内容。如下面两张图所示:转载 2016-05-20 11:06:37 · 640 阅读 · 0 评论 -
使用ffmepg实现手机直播功能(Android)
客户端的话最主要就是使用ffmpeg。 接下来要讲的就是从ffmpeg的编译开始,到编码,以及推流,到解码等过程。ffmpeg的编译懂英文看这里就行:ubuntu下的编译指南 ffmpeg的编译需要linux环境,我这里使用的是虚拟机(vmware+ubuntu),软件的话大家自己网上下载就行,这里需要注意的就是vmTools的安装,可参考戳这里,如果你不安装vmtools的话就不能直接拖动文件原创 2016-08-30 16:21:17 · 1879 阅读 · 0 评论 -
WebP初探-----android
WebP格式是什么在这里就不再赘述,大家自行百度。 我就直接说怎么在android中将jpg、png转换成webp格式。4.0之后直接上代码:public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { int h = options.out原创 2016-08-17 16:37:48 · 487 阅读 · 0 评论 -
关于Android动画的一些整理
动画有属性动画、逐帧动画、补间动画,在低版本(3.0之前)中没有属性动画,需要借助一个开源库,名字好像是叫nineoldandroids,大家自己去查查看,下面就来逐一介绍着几种动画 可参考:android 动画分类逐帧动画具体的用法这里不做介绍,上面的参考文章中有,这里还要在讲的是文中提到的使用Frame Animation要注意的问题,我这里做了测试之后发现好像,在oncreate中start原创 2016-08-24 17:04:36 · 338 阅读 · 0 评论 -
给RecyclerView添加头部和尾部最简单的实现方式
其实RecyclerView的下拉刷新和上拉加载更多我之前实现过的,代码我已经开源在github上,地址PulltoRefresh,这个库我在这里就讲一下基本思路:下拉刷新是用的自带的SwipeRefreshLayout,整个是包在一个线性布局中的,上拉加载是动态显示和隐藏底部视图(监听滑动事件),其中的一些细节就大家自己去看下代码,我这里要说的是用另一种方式实现下拉刷新和上拉加载。添加头部和原创 2016-08-24 14:05:34 · 2899 阅读 · 0 评论 -
实现PHP服务器+Android客户端(Retrofit+RxJava)第五天学一学ndk开发吧
前两天发现一本相当可以的书Java 性能权威指南,粗略的看了两天,对于我这种还在去中级的路上的人,看着的确是挺累的,所以也就歇了几天没有写博客了。看了那么高深的东西还是要继续回来巩固一下实战水平,所以今天继续来讲我的这个应用的实现过程,在上篇文章实现PHP服务器+Android客户端(Retrofit+RxJava)第四天客户端与服务器通信的实现之后相信大家对简单的数据通信已经不在话下了,今天我要说原创 2016-06-22 14:58:37 · 493 阅读 · 0 评论 -
实现PHP服务器+Android客户端(Retrofit+RxJava)第三天Retrofit的配置以及缓存的实现
上一篇讲了界面,这篇文章就要讲客户端网络请求部分的内容了,主要用到的就是Retrofit+RxJava,其实准确来说是Retrofit+RxJava+OkHttp, 最新的Retrofit是2.0.2版本,源码地址:retrofit 学习retrofit:用 Retrofit 2 简化 HTTP 请求 大家不要觉得使用那么多的框架好像不太好,对于个人开发者来说,一个人懂的东西还是有限的,要自己原创 2016-06-13 17:20:29 · 1148 阅读 · 0 评论 -
实现PHP服务器+Android客户端(Retrofit+RxJava)第四天客户端与服务器通信的实现
我的上一篇文章已经介绍了retrofit+rxjava的配置(包括缓存),从这一篇开始就开始讲我要实现的这个app网络请求部分的构思,也就是要请求那些数据,数据的类型等等。我要实现的客户端看图: 看了界面基本应该能知道要实现的效果了。我这里就分块说好了 “发现”有以下几块 1. 头条 2. 文字 3. 图片 4. 视频 “更多”我暂时还没想好要实现什么效果 首先不原创 2016-06-16 15:01:43 · 1448 阅读 · 0 评论 -
实现PHP服务器+Android客户端(Retrofit+RxJava)第二天客户端界面的大致实现
本篇文章讲的是客户端的部分,也会抛出一些服务器端实现的想法。 上一篇文章:PHP服务器+Android客户端(Retrofit+RxJava)实践第一天 连通了PHP服务器和Android客户端,客户端请求,服务器响应之后在客户端打印了hello world,Android客户端的网络请求部分使用的是Retrofit+RxJava,其实还有Okhttp(因为名字太长了就没加在标题里)。既然已经能搭原创 2016-06-10 21:43:41 · 966 阅读 · 0 评论 -
实现PHP服务器+Android客户端(Retrofit+RxJava)第一天基础搭建
前段不知道怎么的android写着写着有些写不动了,于是开始捣鼓php,想要自己写个网站什么的装装逼,于是最近android就有些荒废了,说要解析fresco的也放了很久,之前在github上提问,昨天突然收到了facebook工程师的回信,又记起来这件事情,本来还想回复感谢大神在百忙之中还替我这个菜逼解答,结果翻了墙还是发不出去邮件,突然离大神的距离只有一堵墙。 不管怎么说,一直学一件事情还原创 2016-05-26 16:22:12 · 1847 阅读 · 0 评论 -
android官网图像与动画章节demo的分析
android官网翻译文章地址 http://hukai.me/android-training-course-in-chinese/graphics/displaying-bitmaps/display-bitmap.html图像与动画章节的demo还是要从官网去下载 http://developer.android.com/intl/zh-cn/training/displaying-b原创 2016-02-27 15:55:21 · 362 阅读 · 0 评论 -
下拉刷新Phoenix分析
Phoenix还不知道是什么样的效果的朋友可以先去看我的另一篇文章 比pullTorefresh更好看的下拉刷新 ,在本文将要讲解其实现。。。。拖了好久思路整理首先我们可以先不去看源码,看下它的使用方法<com.hankkin.AnimationPullToRefreshDemo.PullToRefreshView android:id="@+id/pull_to_refresh原创 2016-04-05 17:43:39 · 724 阅读 · 0 评论 -
ViewPager+Fragment实现滑动标签页
一开始学习ViewPager的时候看网上很多例子配合的适配器都是直接new 一个PagerAdapter然后重写其中的一些方法而且不是配合Fragment使用的,使用的时候比较麻烦。官方推荐适配器是FragmentPagerAdapter,继承FragmentPagerAdapter重写其中的两三个方法就行,使用比较的简单。接下来看代码:FragmentPagerAdapterpublic clas原创 2016-04-01 16:40:50 · 548 阅读 · 0 评论 -
Popupwindow边缘半透明的实现及一些其他解析
首先Popupwindow和alertDialog是经常拿来比较的,其区别在于Popupwindow是阻塞的,alertDialog是不阻塞的,看情况适时的选用。首先说怎么实现Popupwindow弹出时和alertDialog一样的边缘背景半透明的效果,实现方法如下:在Popupwindow要显示之前设置窗体透明度WindowManager.LayoutParams lp = get原创 2016-03-08 15:41:14 · 1696 阅读 · 0 评论 -
android官网demo之缩放view
转载自:点击打开链接本文只对代码中可能不是太熟悉的函数做一个分析(主要是为了增加自己的影响)首先是 thumbView.getGlobalVisibleRect(startBounds);getGlobalVisibleRect(Rect)的作用是得到view的显示区域的矩形,已显示屏的左上角为原点,也就是说就算view的width是match_parent,只要有act转载 2016-02-19 16:53:59 · 957 阅读 · 0 评论 -
关于listview重写onintercepttouchevent不响应move和up事件
view事件分发机制一般步骤如下:首先执行diapatchtouch,在diapatchtouch中调用onintercepttouchevent,在其中判断有没有拦截,如果拦截了就不调用子view的diapatchtouch,调用自身的touch事件,如果不拦截就调用子view 的diapatchtouch,重复上面的步骤。而对于listview,测试中重写onintercepttouc原创 2016-03-07 16:29:05 · 3594 阅读 · 0 评论 -
android Bitmap的内存管理
我们在显示图片的时候总是会用到Bitmap,但是Bitmap如果没有恰当的使用的话效率会很低也很容易会出现oom错误。下面是一段摘自官网的话:在Android 2.2 (API level 8)以及之前,当垃圾回收发生时,应用的线程是会被暂停的,这会导致一个延迟滞后,并降低系统效率。 从Android 2.3开始,添加了并发垃圾回收的机制, 这意味着在一个Bitmap不再被引用之后,它原创 2016-03-18 14:49:42 · 553 阅读 · 0 评论 -
Android时间选择器和日期选择器的使用注意
本文就时间和日期选择器做一个简单的使用时间选择器一般设置时间我们都会选择TimePicker或者TimePickerDialog,因为TimePickerDialog直接就是对话框使用方便,所以很多初学的就会更多选择TimePickerDialog,不说他会有什么不想要的效果,先看看它的使用方法new TimePickerDialog(MainActivity.this, n原创 2016-03-30 10:05:08 · 1992 阅读 · 0 评论 -
android圆角矩形图片的实现进而讨论view自定义的要点
实现圆角的图片一般会有两种方法,一种是使用Xfermode,一种是Shader原创 2016-03-17 11:51:09 · 424 阅读 · 0 评论 -
android 自定义Alertdialog对话框用于耗时加载
http://blog.csdn.net/duanyanrui/article/details/8494767android的AlertDialog对话框是非阻塞的,如果要使用阻塞的对话框需要popupwindow,原创 2016-03-01 14:27:15 · 2107 阅读 · 0 评论 -
对话框从下往上弹出---模仿微信退出
本文是基于AlertDialog实现的效果,主要的实现代码就是dialog.getWindow(),然后在得到的Window中setWindowAnimations.在这里就可以设置dialog的显示动画,具体实现代码如下AlertDialog d =new AlertDialog.Builder(this).create();d.show();Window window = d.getW原创 2016-03-09 09:12:51 · 1861 阅读 · 0 评论 -
android 手势解锁的实现
基本思路,继承一个view,重写其ondraw方法,在其中9个圆(也可以自己自定义属性,让使用者控制圆的个数,但是过多或者过少都会影响美观而且太复杂的话用户不容易记住自己设置的手势,所以基本可以不用考虑自定义这个属性),每个圆都有一个相当于下标的属性,用于唯一确定一个圆,最后手势的比较也是通过这个坐标点,也就是说你画的手势它只记录了下标值(比如你的手势是一个z,它记录下来的是下标的位置顺序(012转载 2016-03-09 14:40:00 · 919 阅读 · 0 评论 -
高仿ios SwitchButton----(自认为仿的还不错)
这篇文章来介绍这两天的成果,android自带的switchbutton太难看了,于是照着ios的switchbutton做了一个高仿的自定义switchbutton,目前还不是很完美,代码也还比较乱,但还是分享出来,望大家指教!原创 2016-02-18 16:35:27 · 1804 阅读 · 0 评论 -
android定时回到主页面
在项目中遇到的一个要求:一段时间没有对屏幕进行操作就回到主页面(其实可以是任意页面)。我的做法是首先在app一进来的时候就启动一个服务,在服务中计数,根据这和计数值判断是否跳转回主页面其次需要写一个baseActivity配合这个服务,所有需要定时跳回到主页面的都继承这个baseActivity,在baseActivity中重写onTouchEvent事件,在其中改变服务中的计数值。原创 2016-03-11 15:49:37 · 1441 阅读 · 8 评论 -
动态加载apk
原文出处:http://blog.csdn.net/singwhatiwanna/article/details/22597587动态加载apk,也就是已经安装的apk去加载未安装的apk中的资源以及activty,去执行其中的逻辑。这样可以给我们的应用瘦身以及去动态更新应用(其实还有很多其他的用处,我还没有理解到位所以就只列了自己理解了的用处)。实现的方式就是在已经安装的apk中的某个a转载 2016-03-12 10:46:15 · 317 阅读 · 0 评论 -
android手势解锁-------后台恢复到前台就启动手势解锁
我们在用使用支付宝的时候会发现,每次我们按下返回键键或者home键回到桌面之后,再次打开此app时就会要求我们输入手势,正确输入后会回到我们退出app时的activity原创 2016-03-10 11:58:25 · 3908 阅读 · 1 评论 -
自定义控件之------仿ios下拉回弹效果
网上有很多类似的文章,大多数还是继承listview来实现(主要是listview.addHeaderView()和listview.addFooterView在listview的首尾添加view,也可以用上面的两个listview自带函数实现下拉刷新的功能,在这里不准备介绍,有兴趣的朋友可以去自己试试)。在本文主要是给android的线性布局(相对布局、帧布局)加上下拉或者上拉回弹得效果。在原创 2016-02-01 13:52:20 · 2266 阅读 · 0 评论 -
Viewbadger消息提醒的实现
Viewbadger项目的下载地址https://github.com/jgilfelt/android-viewbadger首先是使用方法BadgeView badgeView = new BadgeView(this, iv1); new一个 BadgeView对象,参数的第一个为context对象,第二个参数是要挂钩的view对象(就是要显示消息提示的那个view),创建了Bad原创 2016-03-02 10:45:44 · 434 阅读 · 0 评论 -
Android任务和返回栈
任务是一个Activity的集合,它使用栈的方式来管理其中的Activity,这个栈又被称为返回栈(back stack),栈中Activity的顺序就是按照它们被打开的顺序依次存放的。当你点击一个应用的图标的时候,这个应用的任务会被带到前台,假如这个应用没有在后台的则创建一个任务,并将主activity的加入到返回栈中,返回栈是先进后出的数据结构。比如主activity A启动了activi转载 2016-03-22 09:09:12 · 735 阅读 · 0 评论