Android
文章平均质量分 70
江东橘子
这个作者很懒,什么都没留下…
展开
-
Android总结之链式调用(方法链)
前言: 最近在学习总结Android属性动画的时候,发现Android的属性动画设计采用了链式调用的方式,然后又回顾了一下了以前接触的开源框架Glide也是采用链式调用的方式,还有最近火的一塌糊涂的RxJava也是采用链式调用,为何如此之多的开源项目采用这种设计方式,今天来对比学习一下。什么是链式调用? 链式调用其实只不过是一种语法招数。它能让你通过重用一个初始操作来达...原创 2020-01-13 11:01:05 · 620 阅读 · 0 评论 -
一個简单的okhttp访问网络的例子
private void phoneLogin() { OkHttpClient okHttpClient = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .r...原创 2020-01-06 13:58:24 · 201 阅读 · 0 评论 -
在android布局中使用include和merge标签
在我们开发Android布局时,经常会有很多的布局是相同的,这个时候我们可以通过和标签实现将复杂的布局包含在需要的布局中,减少重复代码的编写。 1. 创建一个可以重复使用的布局:如下代码描述在应用中每个acitivity都出现的顶栏titlebar.xml[java] view plain copy "http://schemas.android.com原创 2016-06-24 13:39:02 · 275 阅读 · 0 评论 -
android Merger 代替 FrameLayout:布局优化
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager原创 2016-06-24 22:12:31 · 1098 阅读 · 0 评论 -
FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
FragmentPagerAdapter是android-support-v4支持包里面出现的一个新的适配器,继承自PagerAdapter,是专门用来给支持包中出现的ViewPager进行数据适配的。PagerAdapter在之前的文章中进行过简单的介绍,不记得怎么使用的可以先去看一下。 FragmentPagerAdapter,见名知意,这个适配器就是用来实现Fragment在Vi原创 2016-06-25 10:27:41 · 297 阅读 · 0 评论 -
Android中Fragment+ViewPager的配合使用
原本在上一篇博客中要讲解一个Fragment的综合应用,但是中间又想到了滑屏方式,所以就分类在总结了一下,(http://smallwoniu.blog.51cto.com/3911954/1308959)今天我将继续总结,关于Fragment+ViewPager的使用!官方文档:http://developer.android.com/reference/android/suppor转载 2016-06-25 10:41:12 · 386 阅读 · 0 评论 -
Android TabLayout(选项卡布局)简单用法实例分析
本文实例讲述了Android TabLayout(选项卡布局)简单用法。分享给大家供大家参考,具体如下:我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合。达到很漂亮的效果。但是TabPageIndicator是第三方的,而且比较老了,当然了现在很多大神都已经开始自己写TabPageIndicator来满足自己的需求,在2015年的google大会上,go原创 2016-06-26 15:11:47 · 2910 阅读 · 0 评论 -
Android:控件WebView显示网页
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。webview有两个方法:setWebChromeClient 和 setWebClientsetWebClient:主要处理解析,渲染网页等浏览器做的事情setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebViewClient原创 2016-06-28 10:18:03 · 498 阅读 · 0 评论 -
android中的ellipsize
android中的ellipsize最近为了解决某个bug,textview中内容过长的话自动换行,但是调用measureText函数时发现返回值很不准确,单位也不确定,是pixel还是dip,都不准。后来想起textview中有个内容过长加省略号的属性,即ellipsize,可以较偷懒地解决这个问题,哈哈~用法如下:在xml中android:ellipsize = "end"原创 2016-06-28 21:00:35 · 191 阅读 · 0 评论 -
Android 探究 LayoutInflater setFactory
1、概述对于LayoutInflater setFactory,平时我们很少用到这个API,但是这个API我觉得还是有学习的必要的,能够很多意象不到的问题,准备围绕这方面编写一系列的文章。本篇包含:setFactory 相关API介绍可能存在的问题具体的解决方案及一些实际的用途ps: 最近维护公众号,部分文章仅在公众号发布主要原因是,公众号上推送的文章和博客中对文章的要求可能不转载 2016-06-28 21:02:02 · 529 阅读 · 0 评论 -
Android WebView缓存策略详解
WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache)。一、网页缓存1、缓存构成/data/data/package_name/cache//data/data/package_name/database/webview.db/data/data/package_name/database/webviewCache.db转载 2016-06-30 13:41:06 · 465 阅读 · 0 评论 -
Webview--如何让加载进来的页面自适应手机屏幕分辨率居中显示
让Webview加载的页面居中显示有我知道的俩种方法第一种:[java] WebSettings settings = webView.getSettings(); settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); LayoutAlgorithm是一个枚举用来控制页面的布局,有三个类型:1.NARROW_原创 2016-06-30 13:45:51 · 1181 阅读 · 0 评论 -
Android属性 android:focusableInTouchMode
这个属性的意思很明显,就是可以通过touch来获得focus。在手机上开发用的不多,因为大多手机都是触摸式的。最近一个TV上的应用需要用到。 一个界面上有一个自定义个button,我需要进入这个界面就高亮这个button。但是用遥控选择这个程序进入能正常显示,用鼠标点击进入就没有高亮的效果。最后添加上这个属性,效果出来了。 可见,click事件和touch事件在焦点处理上是原创 2016-07-12 11:05:45 · 263 阅读 · 0 评论 -
android 屏幕录像
第一种方法: 也是本人目前在用的。需要root权限,安装在genymotion上。 下载轮 : http://download.csdn.net/detail/michael1112/9551201第二种方法: 使用前提:android 4.4以上,切有root选项第1步:输入cd adb 路径,切换到ADB工具文件夹。输入a原创 2016-06-16 11:49:12 · 792 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-06-16 14:40:08 · 234 阅读 · 0 评论 -
在Android中使用Handler和Thread线程执行后台操作
在Android中使用Handler和Thread线程执行后台操作对于线程的控制,我们将介绍一个 Handler类,使用该类可以对运行在不同线程中的多个任务进行排队,并使用Message和Runnable对象安排这些任务。在javadoc中,对Handler是这样解释的:Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联。每个Ha转载 2016-07-14 10:00:31 · 2371 阅读 · 0 评论 -
Android Fragment 解析(上)
自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Frag转载 2016-06-20 11:52:06 · 250 阅读 · 0 评论 -
监听屏幕 android.intent.action.USER_PRESENT
在做解锁监听程序时,一开始采用监听屏幕SCREEN_ON和SCREEN_OFF这两个action。但奇怪的是,这两个action只能通过代码动态的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到。百度后发现这是PowerManager那边在发这个广播的时候做了限制,限制只能有register到代码中的receiver才能接收。后来就找各种能静原创 2016-07-06 20:21:11 · 4378 阅读 · 1 评论 -
android java 回调方法接口
常用用法:回调方法接口,向上转型动态绑定,常量接口。回调方法接口: Java代码 public interface ICallback { public void func(); } public class Caller { ICallback callback; public void doCallback() { call原创 2016-06-21 11:14:28 · 395 阅读 · 0 评论 -
RxJava 入门
RxJava 入门字数3425 阅读1330 评论4 喜欢30原文地址:RxJava 入门翻译原文:Getting Started with RxJava and Android什么是 ReactiveX?ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。实时数据处理是一转载 2016-06-22 14:28:53 · 455 阅读 · 0 评论 -
Android中的定时器AlarmManager
AlarmManager的常用方法有三个:(1)set(int type,long startTime,PendingIntent pi); 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作。(2)setRepeating(int type,long startTime,long intervalTime,Pendi原创 2016-07-08 12:30:59 · 264 阅读 · 0 评论 -
Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库
第三方类库源码将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了。项目的目录结构如下:XMPP$ lsapp build.gradle gradlew import-summary.txt XMPP.imlbuild gradle原创 2016-08-16 17:08:48 · 500 阅读 · 0 评论 -
Openfire Server presence(在线状态)消息处理流程
Openfire Server presence(在线状态)消息处理流程Presence处理是IM Server的核心,也是一个IM Server最复杂的部分。一个用户的状态发生变化,需要通过服务器自动投递给他所有在线的好友,因此Presence模块实际上等同一个消息处理服务器,可参看以前消息服务器相关文章ActiveMQ性能研究及与memcacheq比较。Presence的复杂性体现转载 2016-08-22 16:39:34 · 1024 阅读 · 0 评论 -
openfire 接受消息流程
博客分类:openfire & xmpp openfire底层采用了MINA框架,它是采用事件监听的方式,其中IoHandler接口定义了不同的事件类型,因此根据不同的事件类型做相关的处理 Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议(如TCP/转载 2016-09-01 15:03:35 · 1959 阅读 · 0 评论 -
Android开发出现Warning:Gradle version 2.10 is required. Current version is 2.8
Warning:Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper, try editing the distributionUrl in F:\work\qxueyou\gradle\wrapper\gradle-wrapper.properties to gradle-2.10原创 2016-08-23 08:12:20 · 353 阅读 · 0 评论 -
OPenfire简介
1. OpenfireOpenfire是开源的实时协作服务器(RTC),它是基于公开协议XMPP(也成为Jabber)消息的。Openfire的核心功能可以概括为:连接管理、消息解析、消息路由、消息发送。1.1 框架Openfire核心功能由Module组成,上图中的各个模块绝大多数也是基于Module实现的。为了动态的管理这些Module,Openfire使用了自原创 2016-08-24 09:20:47 · 1294 阅读 · 0 评论 -
找不到或无法加载主类 org.jivesoftware.openfire.starter.ServerStarter
clean项目后出现 找不到或无法加载主类 org.jivesoftware.openfire.starter.ServerStarter 1. 出现上面的错误时,在Ant中重新build。原创 2016-08-24 15:30:12 · 1601 阅读 · 0 评论 -
CoordinatorLayout
http://blog.csdn.net/xyz_lmn/article/details/48055919一、CoordinatorLayout有什么作用CoordinatorLayout作为“super-powered FrameLayout”基本实现两个功能: 1、作为顶层布局 2、调度协调子布局CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸转载 2016-08-25 16:42:52 · 272 阅读 · 0 评论 -
WebView你真的熟悉吗?看了才知道
WebView你真的熟悉吗?看了才知道字数2105 阅读6556 评论17 喜欢105 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。下面总结一下使用webview遇到的那些事、那些坑。目录一、webview的基本使用方法二、webview与js的交互(附上示例项目完整源码)1.js与android的交转载 2016-08-25 17:09:43 · 1553 阅读 · 0 评论 -
AsyncQueryHandler 异步查询框架
AsyncQueryHandler简介:异步的查询操作帮助类,可以处理增删改(ContentProvider提供的数据)使用场景:在一般的应用中可以使用ContentProvider去操作数据库。这在数据量很小的时候是没有问题的,但是如果数据量大了,可能导致UI线程发生ANR异常(超过5秒)。当然你也可以写个Handler去做这些操作,只是你每次使用ContentPro原创 2016-08-26 10:52:34 · 372 阅读 · 0 评论 -
使用startForeground让android服务前台运行
最近在使用Android 4.1系统的时候,发现在手机休眠一段时间后(1-2小时),后台运行的服务被强行kill掉,有可能是系统回收内存的一种机制,要想避免这种情况可以通过startForeground让服务前台运行,当stopservice的时候通过stopForeground去掉。以下是android官方描述:Running a Service in the Foreground原创 2016-08-26 12:12:38 · 2806 阅读 · 2 评论 -
Android Studio之gradle的配置与介绍
1、gradle的简单介绍Gradle是可以用于Android开发的新一代的Build System,也是Android Studio默认的build工具。其实Gradle脚本是基于一种JVM语言— Groovy,再加上DSL组成的。由于Groovy是JVM语言,所以可以使用大部分的Java语言库。所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Me转载 2016-09-22 21:52:47 · 326 阅读 · 0 评论 -
Serializable And Parcelable
Intent在不同的组件中传递对象数据的应用非常普遍。下面介绍两种通过Intent传递对象的方法。1、实现Serializable接口2、实现Parcelable接口 为什么要将对象序列化? 1、永久性保存对象,保存对象的字节序列到本地文件中; 2、用过序列化对象在网络中传递对象; 3、通过序列化对象在进程间传递对象。 1、实现Serializable接口原创 2016-10-09 10:45:23 · 232 阅读 · 0 评论 -
图片缓存之内存缓存技术LruCache,软引用
图片缓存之内存缓存技术LruCache,软引用每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧。这篇博文要讲的图片缓存机制,我接触到的有两钟,一种是软引用,另一种是内存缓存技术。先来看下两者的使用方式,再来作比较。除了加载图片时要用到缓存处理,还有一个比较重转载 2016-09-20 14:59:35 · 282 阅读 · 0 评论 -
Android面试题目
某公司高级面试题(2015-03-14)1、详述Android系统架构,包括层与层之间调用、binder、jni、底层文件读写方法2、描述自己的一个项目,要求画出结构图,UML图,详细描述项目种的技术点,技术难点以及解决方案3、一道算法4、谈谈自己项目管理的方法、对敏捷软件开发的理解基础面试题(2014-04-18)1、请解释下在单线程模型中Message,Handle转载 2016-09-20 15:19:37 · 333 阅读 · 0 评论 -
Activity的四种launchMode
我们今天要讲的是Activity的四种launchMode。launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建原创 2016-09-27 10:42:26 · 200 阅读 · 0 评论 -
Gradle 构建速度优化
构建速度优化 AS编译太慢是我们经常吐槽的,我们该做些什么来加快编译的速度呢?前面我们简单的了解了gradle构建项目的流程。我们可以从以下几个方面来做:注意AS配置: 如及时更新Gradle和JDK版本、扩大AS内存等(修改-Xms256m)、取消AS的自更新设置,去除不经常使用的插件等。慎重sub-module: 减少sub-mod转载 2016-11-04 17:14:08 · 1847 阅读 · 0 评论 -
Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
时之沙: http://blog.csdn.net/t12x3456随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误:[java] view plain copy UNEXPECTED TOP-LEVEL EXCEPTION:转载 2016-10-27 16:46:43 · 599 阅读 · 0 评论 -
单击事件开启线程时,再次单击就会出现 java.lang.IllegalThreadStateException: Thread already started. 错误
第一种解决方案:单击事件开启线程时,再次单击就会出现 java.lang.IllegalThreadStateException: Thread already started. 错误解决办法:创建一个Runnable:Runnable DownloadRunnable = new Runnable() {@Overridepublic原创 2016-11-09 15:24:28 · 786 阅读 · 0 评论 -
Android Handler详细使用方法实例
本文主要介绍Android中Handler的简单使用方法,Handler跟多线程,消息队列联系很紧密,在平常的实际程序开发中比较常见。本文分为4个简单的例子来学习handler。开发环境为android4.1.Handler使用例1这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中.本次实验完成的功能是:单击Start按钮,程序会开始启原创 2016-11-10 16:46:42 · 594 阅读 · 1 评论