welcome
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 站在源码的肩膀上...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多...
如何理解线程 在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制的产生,并且线程的创建和销毁都会有相应的开销,当系统中存在大量的线程时,系统会通过时间陪轮转的方式调度每个线程,在这么多线程中有一个被称为主线程,主线程是指进程所拥有的线程,在JAVA中默认情况下一个进程只有一个线程,这个线程就是主线程。
上一篇《仿微信底部Tab栏》中粗略的讲了下底部Tab栏的封装,不少同学在实际运用中发现了一些问题,比如我demo中的title用了actionbar,所以如果新建的Activity的Theme...
目前市面上很多App都采用底部一个Tab栏,管理四到五个Tab,然后选择切换页面的方式的设计,这虽然不太符合metro design,但确是一个不容易出错而又符合国人使用习惯的设计方式。
在开发的时候,我们时常有这样一个需求:判断APP是否在后台运行? 常见的方式是这样的: 或者是这样的: 如上的这两种方式都可以满足我们的需求 。
/** * * 原创作者: * 谷哥的小弟 http://blog.csdn.net/lfdfhl * * 文档描述: * View的draw过程源码分析 * * 绘制过程分为六步: * * 1.
MainActivity如下:package cc.ww; import java.util.ArrayList; import android.
CollapseView如下: package com.ww.collapseview; import android.annotation.SuppressLint; import android.
/** * 文档描述: * View的Layout过程源码分析 * * 原创作者: * 谷哥的小弟 http://blog.csdn.
/** * * 文档描述: * (1)onMeasure()源码分析 * (2)自定义View时重写onMeasure()实现对于wrap_content的支持 * * 原文地址: * http://blog.
MainActivity如下: package cn.ww; import java.lang.reflect.Field; import android.
MainActivity如下: package cn.ww; import android.app.Activity; import android.
PS: 优化后的代码更新在 http://blog.csdn.net/lfdfhl/article/details/51017116 该代码已经不太具有参考价值 MainActivity如下: package cc.
package cc.ww; import android.view.View; import android.view.View.MeasureSpec; import android.
MyApplication如下: package com.cc; import java.util.LinkedList; import android.
/** * Demo描述: * Touch事件传入到Activity的流程 * * 我们先大概了解Android的界面架构: * 1 每个Activity都包含一个Window对象,该对象通常由PhoneWindow实现 * 2 PhoneWindow将一个DecorView设置为整个Window的根View.
MainActivity如下: package cc.cv; import android.os.Bundle; import android.
package cc.aa; import android.os.Environment; import android.view.MotionEvent; import android.
MainActivity如下:package com.cn; import android.app.Activity; import android.
MainActivity如下:package cn.c; import android.os.Bundle; import android.app.
MainActivity如下:package cn.c; import android.os.Bundle; import android.app.
package cn.c; import android.os.Bundle; import android.app.Activity; import android.
第一步: mWebView.getSettings().setDefaultTextEncodingName("UTF-8"); 第二步: mWebView.
在界面中点击文本输入框,键盘弹出后有时会将界面中的布局顶起。为避免该情况,可在onCreate()方法中加入以下代码: getWindow().
mEditText.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
/** * 代码描述: * 为String中部分文字设置TTF字体 * 参考资料: * 1 http://blog.csdn.net/lfdfhl/article/details/27372895 * 2 http://blog.
package cc.cc; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 非静态内部类可能导致的内存泄露及其优化 * * 在MainActivity中定义了两个内部类InnerClassTest和ThreadSubClass.
package cc.cc; import java.lang.ref.WeakReference; import android.os.Bundle; import android.
强引用,软引用,弱引用,虚引用 强引用: 我们一般使用的就是强引用。垃圾回收器绝不会回收它。 当内存空间不足时Java虚拟机宁愿抛出OutOfMemoryError错误使程序异常终止,也不会回收具有强引用的对象来解决内存不足的问题 软引用: 如果一个对象具有软引用,那么当内存空间足够的时候GC就不会回收它,如果内存空间不足了,就会回收这些对象的内存空间。
/* ============================================================================ Name : String.
/* ============================================================================ Name : TestString.
/* ============================================================================ Name : TestMemory.
/* ============================================================================ Name : TestDefine.
/* ============================================================================ Name : TeatArr.
/* ============================================================================ Name : Pointer.
/* ============================================================================ Name : TestDoublePointer.
/* ============================================================================ Name : TestArray.