android

在教你写Android ImageLoader框架系列博文中,我们从基本架构到具体实现已经更新了大部分的内容。今天,我们来讲最后一个关键点,即图片的缓存。为了用户体验,通常情况下我们都会将已经下载的图片缓存起来,一般来说内存和本地都会有图片缓存。那既然是框架,必然需要有很好
dexcoder 1年前发布
Android系统中有着各种各样的Tab组件,并且大部分也都支持滑动,本文将结合代码来实现3种方式的Android可滑动Tab组件,有需要的Android开发者可以收藏。 1. 第一种,使用 TabHost + ViewPager 实现 该方法会有一个Bug,当设置tabHost.setCurrentTab()为0时,ViewPager不显示(
dexcoder 1年前发布
源码和测试例子已经放到github?https://github.com/Leaking/SlideSwitch,欢迎star欢迎fork欢迎提issue 项目开发中,经常会有一些关于用户个性化的设置,此时经常需要一个开关控件,周末将之前写的自定义开关控件优化了一下,效果图如下。先说说大概思路:按钮绘制了三个图层
dexcoder 1年前发布
1.为什么要用Handler 出于性能优化的考虑,Android UI操作并不是线程安全,如果有多个线程并发操作UI组件,可能导致线程安全问题。可以设想下,如果在一个Activity中有多个线程去更新UI,并且都没有加锁机制,可能会导致什么问题? 界面混乱,如果加锁的话可以避免该问题但又会导致性
dexcoder 1年前发布
在教你写Android ImageLoader框架之初始配置与请求调度中,我们已经讲述了ImageLoader的请求配置与调度相关的设计与实现。今天我们就来深入了解图片的具体加载过程以及加载的策略(包括按顺序加载和逆序加载) ,在这其中我会分享我的一些设计决策,也欢迎大家给我提建议。 图片
dexcoder 1年前发布
在前两篇文章当中,我们主要学习了Android内存方面的相关知识,包括如何合理地使用内存,以及当发生内存泄露时如何定位出问题的原因。那么关于内存的知识就讨论到这里,今天开始我们将学习一些性能编码优化的技巧。 这里先事先提醒大家一句,本篇文章中讨论的编码优化技巧都是
dexcoder 1年前发布
当一个Android应用程序组件启动时候,如果此时这个程序的其他组件没有正在运行,那么系统会为这个程序以单一线程的形式启动一个新的Linux 进程。默认情况下,同一应用程序下的所有组件都运行再相同的进程和线程(一般称为程序的“主”线程)中。如果一个应用组件启动但这个应
dexcoder 1年前发布
Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录了所有的Android权限问题,整理一下分享给大家。 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES 读取或写入登记check-in数据库属性表的权限 获取错略位置 andro
dexcoder 1年前发布
开篇废话: 年前换了一个手机,SONY的Z3C。这个手机在解锁屏幕时有一个滑动动画,类似火花的粒子喷射,效果很炫。。。 于是尝试着模拟了一下,完成后效果如下图(还有很多细节没有实现): ?? SurfaceView: 因为surfaceview是使用的双缓冲机制,所以很适合绘制这种需要不停变
dexcoder 1年前发布
2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个 方
dexcoder 1年前发布
? ? ? ?花费了半天时间,把 仿QQ头像截取的方法整理了下,并制作了一个demo以供大家参考,基本上实现了qq中我的资料界面上(包括背景透明化,上滑标题栏显示,下拉隐藏等)的大致效果,先上图看效果吧: 支持的功能: ? ? 1.选择裁剪的图片支持手势放大缩小(包括双击放大缩小
dexcoder 1年前发布
本篇博客是我加入Android 开源项目源码解析分析的一篇文章,初次加入,所以选了个比较简单的库,如果你曾经看过Android 快速开发系列 打造万能的ListView GridView 适配器对本篇博客就不会太陌生, base-adapter-helper就是完成类似万能适配器的功能,当然了它本身不支持多种I
dexcoder 1年前发布
1、概述 相信做Android开发的写得最多的就是ListView,GridView的适配器吧,记得以前开发一同事开发项目,一个项目下来基本就一直在写ListView的Adapter都快吐了~~~对于Adapter一般都继承BaseAdapter复写几个方法,getView里面使用ViewHolder模式,其实大部分的代码基本都是类
dexcoder 1年前发布
1、概述 Drawable在我们平时的开发中,基本都会用到,而且给大家非常的有用。那么什么是Drawable呢?能够在canvas上绘制的一个玩意,而且相比于View,并不需要去考虑measure、layout,仅仅只要去考虑如何draw(canavs)。当然了,对于Drawable传统的用法,大家肯定不陌生 ,今
dexcoder 1年前发布
模式的定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 使用场景 用电源接口做例子,笔记本电脑的电源一般都是接受5V的电压,但是我们生活中的电线电压一般都是220V的输出。这个时候就出现了
dexcoder 1年前发布
本文翻译自:国外某位开发者的博客How to Leak a Context: Handlers & Inner Classes,英文可以的朋友可以直接点击原文查看。 在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。 public class SampleActivity extends A
dexcoder 1年前发布
篇外话:先来说下今天的日期,今天是2015年02月18日也就是大年三十,大家都在欢欢喜喜的准备过大年,活动也各式各样,搓麻将、打扑克、放烟花、准备看春晚,而我却还在敲代码,我只想说身为程序员的我们,真的屌丝的不能再屌丝了。虽然很屌丝,但我在这里还是要给大家拜个年,
dexcoder 1年前发布
喜欢使用原生Android系统的朋友可能会发现自己的状态栏信号图标上经常有一个惊叹号标志。 这是怎么回事呢?原因是Android为了对网络状态进行检测,采用了一种叫做captive detection的方式进行网络状态检测。 其实说起来很简单,每当连接到一个网络,比如移动数据网络或者WIFI
dexcoder 1年前发布
????提示信息(Toast)在程序中很常用,使用也很简单。当用户执行某个动作之后,自动显示一个提示信息,过一会儿将自动消失,这就是Toast。 ????在程序中创建Toast的步骤说明如下: ????1、调用Toast 的静态方法 makeTextO 添加显示文本和时长。 ????2、调用Toast 的 showO显示。
dexcoder 1年前发布
???Android系统中常见的事件监听器有如下几种: ????1、单击事件(View.OnClickListener):当用户触碰到某个组件或者方向键被按下时产生该事件,该事件的处理方法是onClick()。 ????2、焦点事件(View.OnFocusChangeListener):组件得到或者失去焦点时产生该事件,事件处理方法是
dexcoder 1年前发布