
Android
shangmingchao
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android软键盘输入详解
IM(Input Method): 输入法。是指通过键盘等输入设备输入 输入设备上没有 的字符的 方法/程序/处理器 。最开始是特指在拉丁字母键盘上输入CJK (Chinese, Japanese and Korean)文字的方法,现在一般将所有的输入语言的方式都叫输入法。 IME(Input Method Editor): 输入法编辑器。通常简作输入法。 IMF(input method原创 2017-01-22 17:53:26 · 5772 阅读 · 1 评论 -
Android时间处理详解
Android时间详解 Java Calendar详解 Java Date Greenwich:格林威治/格林尼治,是位于伦敦市中心东南部的一个区,1675国王查理二世在此建立了皇家格林尼治天文台,1851年御用天文学家艾里在天文台设置了中星仪并确定了格林威治子午线,1884年在美国华盛顿特区举行的国际本初子午线大会上正式将此线定之为经度的起点。原创 2016-08-25 12:14:17 · 6184 阅读 · 1 评论 -
RecyclerView之ItemDecoration详解
关于RecyclerView的ItemView装饰,之前一直用官方Demo的DividerItemDecoration,并没有认真地去理解ItemDecoration的用法,也没能体会到ItemDecoration的强大,直到要用到横向的RecyclerView,而且最左边的和最右边的Item要留出间隔(虽然clip结合padding可以实现),才认真地理解一下ItemDecoration。 Re原创 2016-05-20 16:11:39 · 15736 阅读 · 18 评论 -
Glide使用详解(二)
BitmapPoolDalvik和ART都没有使用compacting garbage collector垃圾回收模式,这种模式中GC会遍历堆,同时把活跃对象移到相邻内存区域,让更大的内存块可以用在后续的分配中。因为安卓没有这种模式,就可能会出现被分配的对象分散在各处,对象之间只有很小的内存可用。如果应用试图分配一个大于邻近的闲置内存块空间的对象,就会导致OOM崩溃,即使总的空余内存空间大于要分配的原创 2016-04-17 15:01:59 · 8809 阅读 · 5 评论 -
Glide之GlideModule
GlideModule接口:为了延迟配置Glide(包括用GlideBuilder设置选项,为Glide注册ModelLoader) 所有的GlideModule实现类必须是public的,并且只拥有一个空的构造器,以便在Glide延迟初始化时,可以通过反射将它们实例化。注册ModuleLoader时可调用Glide的register(Class<T> modelClass, Class<Y> r翻译 2016-03-31 15:13:49 · 17712 阅读 · 3 评论 -
Invalid double崩溃分析
Caused by: java.lang.NumberFormatException: Invalid double: "0,3" at java.lang.StringToReal.invalidReal(StringToReal.java:63) at java.lang.StringToReal.initialParse(StringToReal.java:164) at java.la原创 2016-06-18 14:58:22 · 6674 阅读 · 0 评论 -
HTTP服务器与android客户端的json交互
旨在展示Android与Web服务器的Json数据交互过程。原创 2014-04-11 22:49:39 · 13798 阅读 · 26 评论 -
Unable to add window崩溃分析
显示Dialog时,我们通常会将Activity实例传给Dialog,然后调用Dialog的show方法显示。但在一些情况下,比如说先通过异步网络请求请求数据,等拿到数据后再调用Dialog的show方法显示Dialog来告诉用户已经拿到数据了,但是,我们偶尔会发现发生这样的程序崩溃:android.view.WindowManager$BadTokenException: Unable to原创 2016-03-21 17:49:10 · 24313 阅读 · 3 评论 -
Android仿QQ长按删除弹出框
废话不说,先看一下效果图: 对于列表来说,如果想操作某个列表项,一般会采用长按弹出菜单的形式,默认的上下文菜单比较难看,而QQ的上下文菜单就人性化多了,整个菜单给用户一种气泡弹出的感觉,而且会显示在手指按下的位置,而技术实现我是采用popupWindow和RecyclerView来实现,上面一个RecyclerView,下面一个小箭头ImageView。原创 2015-12-10 22:51:31 · 13910 阅读 · 64 评论 -
Dagger2 User's Guide(翻译)
概述依赖注入(dependency injection)是一个对象为另一个对象提供依赖关系的技术手段。简单点说,就是一个对象(client)要依赖其它对象(services)才能完成工作,那么这个对象(client)就对其它对象(services)产生了依赖,而依赖注入就是把依赖(services)在需要的时候自动传给client,而不是client自己创建或者寻找services。也就是说客户对象翻译 2017-03-30 16:07:14 · 3455 阅读 · 0 评论 -
Android权限管理详解
概述Android安全架构规定:默认情况下,任何应用都没有权限执行对其他应用、操作系统或用户有不利影响的任何操作。这包括读写用户的私有数据(如联系人或电子邮件等)、读写其他应用的文件、执行网络访问、使设备保持唤醒状态等等。 如果要使用这些受保护的设备功能,首先要在应用的清单文件(AndroidManifest.xml)中添加一个或多个 <uses-permission>标记: <manifest原创 2017-04-21 17:09:45 · 23503 阅读 · 0 评论 -
Glide v4详解
简介下载配置使用简单使用高级用法RequestOptionsTransitionOptionsGenerated APIRequestBuilderConfiguration使用技巧Glide的图片变换TransformationsGlide的过渡动画TransitionsGlide的缓存管理Caching简介Glide项目于2012年12原创 2017-10-12 20:43:25 · 11426 阅读 · 2 评论 -
Android性能优化详解
启动优化用户都希望点击应用图标后,应用能够快速地启动并响应用户操作。而随着业务逻辑的增加,要初始化的操作越来越多,尤其是第三方组件的初始化,而在应用启动时初始化会导致应用启动时间变长,因此,我们需要对启动性能(Launch-Time Performance)进行优化。启动时的状态应用会从冷启动(cold start)、热启动(warm start)、温启动(lukewarm start原创 2017-12-08 21:02:09 · 1034 阅读 · 0 评论 -
Glide使用详解(一)
Glide使用 Glide使用教程 Glide详解 Android图片加载 一. 下载在build.gradle中添加依赖: compile 'com.github.bumptech.glide:glide:3.7.0'需要support-v4库的支持,如果你的项目没有support-v4库(项目默认已经添加了),还需要添加s原创 2016-04-12 12:25:23 · 167656 阅读 · 68 评论 -
MD风格之丰富多变Toolbar
一. 下载 compile 'com.android.support:design:23.4.0'二. 详解CoordinatorLayout继承自ViewGroup,实现了NestedScrollingParent接口,可以说是超级版FrameLayout。 CoordinatorLayout的用途主要有两个:作为最顶层的application decor或者chrome layout.原创 2016-07-22 15:58:40 · 1703 阅读 · 0 评论 -
智能自然语言交流系统项目总结
今年,和同学一起参加了大赛,目的嘛,无非是为了锻炼能力,积累一些项目经验,最好拿个奖。在选题目时,看到自然语言交流系统时,感觉很新鲜也很有意思,所以也没怎么想,就报了这个题目。所以7月份的暑假我们就开始了我们的项目。 刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流、智能机器人、中文问答系统等等等等。而我们的思路也是原创 2013-12-01 12:38:15 · 2442 阅读 · 13 评论 -
Android WebView学习笔记
先看一下WebView的继承关系:WebViewextends AbsoluteLayoutimplements ViewTreeObserver.OnGlobalFocusChangeListener ViewGroup.OnHierarchyChangeListenerjava.lang.Object ↳ android.view.翻译 2015-04-14 22:58:11 · 1776 阅读 · 0 评论 -
Android Activity 启动模式和生命周期笔记
官方文档地址:http://developer.android.com/guide/components/tasks-and-back-stack.html 一个应用程序通常包含多个Activity,每个Activity被设计用来让用户执行特定的action,并且能够启动其它的Activity。比如,一个邮件应用中可能会包含一个用于展示邮件列表的Activity,...原创 2015-09-03 21:08:39 · 1275 阅读 · 0 评论 -
Glide之Target
Glide不但可以把图片、视频剧照、GIF动画加载到View,还可以加载到自定义的Target实现中。Target就是使用Glide获取到资源之后资源作用的目标,我们通常是用Glide加载完资源后显示到ImageView中,这个ImageView就是目标。 Target架构的接口包括:com.bumptech.glide.manager.LifecycleListenercom.bumptec翻译 2016-04-01 17:36:20 · 10428 阅读 · 6 评论 -
Glide之后台线程加载及缓存资源
后台线程加载及缓存为了使后台线程加载和处理媒体资源更容易,Glide新增了两个API:downloadOnly(int, int)into(int, int)Glide的downloadOnly(int, int)API允许你下载图片的字节流到磁盘中,以便你之后用到。你可以在UI线程中异步地使用downloadOnly()或者在后台线程中同步使用,但要注意,异步API需要一个Target作为参翻译 2016-04-04 22:45:10 · 11809 阅读 · 2 评论 -
Android自定义ViewGroup工具类ViewDragHelper分析
ViewDragHelper,包含在android.support.v4.widget包中。View,Drag,Helper,字面意思很直观地表明了它是一个视图拖动辅助类,封装了View拖动所涉及的触屏事件检测、View属性更改以及接口回调等的实现。ViewDragHelper是为定制ViewGroup而封装的的实用工具类(utility class,是一个类定义了一组通用的、经常使用的方法),ViewDragHelper类提供了很多有用的操作和状态跟踪以便用户在父ViewGroup范围内对View进行拖动原创 2015-11-05 08:35:20 · 2251 阅读 · 0 评论 -
Android基于Bmob群聊功能的实现
Bmob算是国内做的比较好的做BaaS或MBaaS服务的公司了,官方写的IM的Demo目前可以实现登录注册、搜索添加好友、与好友进行文字图片音频位置对话功能,但感觉好友很多缺陷,比如说删除表中的数据时只能根据ID查找,没提供数据库事务操作的接口,IM没实现群聊的功能,有些API太少太局限,可能因为公司团队小吧,希望能越做越好。 回到正题,既然Bmob的IM没有实现群聊,那就自己实现,Bmob有一个原创 2016-01-20 15:41:34 · 5635 阅读 · 18 评论 -
margin、padding、tint、hint不想再混乱了
margin 英['mɑ:dʒɪn] 美[ˈmɑrdʒɪn] 意思是:栏外,页边空白,边缘。一般是指容器中元素和元素/容器边缘之间的空白。所以通常叫它:外边距。padding 英[ˈpædɪŋ] 美[ˈpædɪŋ]意思是:衬垫,填料。一般是指元素中元素内容和元素边缘之间的空白。所以通常叫它:填充,内边距。border 英['bɔ:də(r)] 美[ˈbɔrdɚ]意思是:包边,边原创 2015-01-01 19:09:01 · 837 阅读 · 0 评论 -
对于回调的理解
Java中回调函数不管是Think in Java还是网上各种百科博客,都讲得很严谨很学术,我看得是云里雾里,终于今天懂点了。来分享一下,如果理解的不对还请各位大神指教,以免误人子弟。 维基百科上是这样定义的:在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可原创 2015-03-13 13:39:55 · 1042 阅读 · 2 评论