- 博客(66)
- 资源 (8)
- 收藏
- 关注
转载 Android layer type与WebView白屏以及WebView不随动画而动的问题
先说说这三个layer。LAYER_TYPE_SOFTWARE无论硬件加速是否打开,都会有一张Bitmap(software layer),并在上面对WebView进行软渲染。好处:在进行动画,使用software可以只画一次View树,很省。什么时候不要用:View树经常更新时不要用。尤其是在硬件加速打开时,每次更新消耗的时间更多。因为渲染完这张Bitmap后还需
2015-07-17 16:49:09
675
转载 Android中资源管理机制详细分析
在Android中,所有的资源都在res目录下存放,包括drawable,layout,strings,anim等等,当我们向工程中加入任何一个资源时,会在R类中相应会为该 资源分配一个id,我们在应用中就是通过这个id来访问资源的,相信做过Andorid开发的朋友对于这些肯定不会陌生,所以这个也不是我今天想要说的,我今天想和大家一起学习的是Android是如何管理资源的,在Android系统中,
2015-03-03 18:23:48
1009
转载 轻松实现Android 更换皮肤(主题)
目前很多app都具有换肤功能,可以根据用户自己的喜好定制自己的界面,比如新浪微博,网易新闻等等。今天这里我就是要介绍一种机制实现app换肤。我找了几款app换肤的应用,换肤基本都是更换了界面的Icon,背景图片,背景色等等,基本没有遇到更换布局的,其实布局也是可以更换的,但是觉得没有必要。所以这篇文章讲解的换肤也是指换icon,背景图片等资源。通过网络搜索我发现网上上提供了大概这么
2015-03-03 18:22:34
2997
1
转载 修正Android摄像头API
这几天本人参加了一个公司举办的编程马拉松,我打算使用Android摄像头来做。我一直都认为Android的API很糟糕,但是没有详细说出哪些地方糟糕,也没有说怎么改进会更好。趁这个机会,现在我就来解释解释。我认为,Android关于摄像头的API非常糟糕,如果你没有用过,那么自己花点时间看看去吧。使用这个Camera API的时候,经常会使开发者使用错误,会导致开发者忽略很多重要的东西,然
2014-08-28 15:14:48
853
转载 Android: NDK编程入门笔记
为何要用到NDK?概括来说主要分为以下几种情况:1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。下面就介绍下Android NDK的入门学习过程:入门的最
2014-06-13 16:12:31
655
原创 android animation中的参数interpolator详解
android:interpolator interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果可以 accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。 android 自带的interpolator AccelerateDecelerateInterpo
2014-03-12 14:24:10
4687
原创 Android有效解决加载大图片时内存溢出的问题
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的
2014-03-10 18:24:44
138
转载 android handler 机制
在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知 handler基本使用: 在主线程中,使用handler很简单,new一个Handler对象实现其handleMessage方法,在handleMessage中提供收到消息后相应的处理方法即可,这里不对handler使用进行详细说明,在看本博文前
2014-01-12 22:22:07
732
转载 从源码的角度解析View的事件分发
有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些问题,我并没有给出非常详细的回答,因为我知道如果想要彻底搞明白这些问题,掌握Android事件分发机制是必不可少的,而Android事件分发
2013-12-02 11:48:11
834
转载 从源码的角度分析ViewGruop的事件分发
从源码的角度分析ViewGruop的事件分发。首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别?顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也
2013-12-02 11:46:40
803
转载 Android Fragment应用实战,使用碎片向ActivityGroup说再见
现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别棒的应用技巧。很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的
2013-12-02 10:21:19
958
转载 利用HTML5开发Android
●Android设备多分辨率的问题Android浏览器默认预览模式浏览 会缩小页面 WebView中则会以原始大小显示Android浏览器和WebView默认为mdpi。hdpi相当于mdpi的1.5倍 ldpi相当于0.75倍三种解决方式:1 viewport属性 2 CSS控制 3 JS控制1 viewport属性放在HTML的中 Html代
2013-09-27 14:24:33
1081
转载 通过SlidingMenu Fragment实现当前最流行的侧滑
内容简介:通过SlidingMenu库与Fragment来实现当前最为流行的侧滑模式。其实涉及到的知识点有:1.SlidingMenu2.Fragment通过layout构建一个Fragment通过preference 来构建Fragment准备工作:1. SlidingMenu 下载地址: https://github.com/jfeinstein10/Slidi
2013-07-10 11:52:06
6751
原创 使用 Simple 简化 XML 序列化
Simple 是什么?Simple 是一个 Java 框架,用于简化序列化和反序列化 XML 的过程。使用 Simple,开发人员可以简化(名字由此而来)将简单老 Java 对象(POJO)转换成 XML 文档的过程 — 即所谓的序列化(serialization)过程。Simple 也可促进相反的过程:开发人员可以将 XML 文档转换成 POJO — 即所谓的反序列化(deserializa
2013-04-11 17:07:14
792
转载 android消息推送
1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。 推送方法如下: 1)通过SMS进行服务器端和客户端的交流通信。 在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图
2013-04-09 16:28:29
864
转载 Android屏幕密度(Density)和分辨率的解释
HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120density值表示每英寸有多少个显示点,与分辨率是两个概念。不同density下屏幕 分辨率信息,以480dip*800dip的WVGA(density=240)为例density=120时 屏幕实际分辨率为240px*400px (两个点对
2013-03-24 20:51:07
811
转载 Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存
2013-03-18 16:03:14
681
转载 Android开发优化之——从代码角度进行优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类
2013-03-18 14:59:49
620
原创 Android之MVC模式
MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与《设计模式》中的观察者模式是完
2013-03-14 17:38:09
995
原创 android 代码混淆 例子
-optimizationpasses 5#混淆时不会产生形形色色的类名 -dontusemixedcaseclassnames#指定不去忽略非公共的库类-dontskipnonpubliclibraryclasses#不预校验-dontpreverify-dontshrink#忽略警告-ignorewarnings#优化-optimizations !
2013-03-05 09:46:20
1328
转载 android 分辨率自适应
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。首先:你需要在AndroidManifest.xml文件的元素如下添加子元素“true”android:normalScreens=“true” android:anyDensity=“true”android:smallScreen
2013-01-25 17:45:34
602
转载 Android UI事件处理、focus处理
在Android平台上,捕获用户在界面上的触发事件有很多种方法,View类就提供这些方法。你在使用各种View视图来布局界面时,会发现几个公用的回调方法来捕捉有用的UI触发事件,当事件在某个View对象上被触发时,这些方法会被系统框架通过这个对象所调用,例如:当一个View(如一个Button)被点击,onTouchEvent()方法会在该对象上被调用,所以,为了捕获和处理事件,必须去继承某个类,
2013-01-07 14:31:14
743
转载 Android开发指南 ──应用程序基础
Android应用程序使用Java做为开发语言。aapt工具把编译后的Java代码连同其它应用程序需要的数据和资源文件一起打包到一个Android包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。从很多方面来看,每个Android应用程序都存在于它自己的世界之中:默认
2012-06-23 17:25:46
1393
转载 Android各种访问权限Permission详解
在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作。在Android中这样的权限有很多种,这里ATAAW.COM将各类访问权限一一罗列出来,供大家使用时参考之用。android.permission.EXPAND_STATUS_BAR允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘
2012-06-20 15:37:28
971
转载 Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整
如果需要控件停在动画后的位置,需要设置android:fillAfter属性为true,在set节点中。默认在动画结束后回到动画前位置。设置android:fillAfter后,我们看到了控件留在了动画后的位置,其实也只是看到在那个位置,真实位置还是在原来动画前那里,你会发现Button不能被点击,就是这个原因。所以我们可以在动画结束后,手动把控件移动到动画结束后的位置。这就需要根结点为Absol
2012-06-04 16:23:29
975
原创 http基础
1.1 执行请求HttpClient的最重要的功能是执行HTTP方法。一个HTTP方法的执行涉及到一个或多个HTTP请求或HTTP响应的交流,HttpClient通常是在内部处理的。用户将提供一个执行请求对象,HttpClient发送请求到目标服务器返回一个相应的响应对象,如果执行失败则抛出一个异常。所以,HttpClient API的主要切入点是HttpClient的接口,
2012-04-24 11:09:56
799
原创 guice学习地址
http://code.google.com/p/google-guice/wiki/Motivation?tm=6 http://google-guice.googlecode.com/git/javadoc/com/google/inject/package-summary.html http://google-guice.googlecode.com/svn/tags/2.0
2011-12-22 17:32:05
558
原创 guice的使用例子
参考了一些网友的文章,写了这篇guice的文章,作为备忘。关于guice就不多说了,它是google的一个IOC容器,因为是基于“注释”的,所以JDK版本必须大约等于1.5。不然是不支持“注释”的。另外,因为其注入方式不需要解析xml,所以速度还是较快的,网上传说比spring快10-100倍,但其功能没有spring强大,但是只做IOC使用,也不失为一种不错的方法。其jar包和文档都
2011-12-22 17:16:09
756
原创 spring与guice的区别
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。借斧子的例子说一说spring与guice的区别。 看下边的例子:对于不同社会形态下一个人(java对象,调用者)需要一把斧子(jav
2011-12-22 17:11:43
920
原创 Guice(三)
在不同作用域间注入你可以安全地将来自大作用域的对象注入到来自小作用域或相同作用域的对象中。例如,你可以将一个作用域为 HTTP 会话的对象注入到作用域为 HTTP 请求的对象中。但是,向较大作用域的对象中注入就是另一件事了。例如,如果你把一个作用域为 HTTP 请求的对象注入到一个单件对象中,最好情况下,你会得到无法在 HTTP 请求中运行的错误信息,最坏情况下,你的单件对象会总是引用来自第一
2011-12-22 17:10:01
870
原创 Guice(二)
自举(Bootstrapping)你的应用自举(bootstrapping)对于依赖注入非常重要。总是显式地向Injector 索要依赖,这就将 Guice 用作了服务定位器,而不是一个依赖注入框架。你的代码应该尽量少地和 Injector 直接打交道。相反,你应该通过注入一个根对象来自举你的应用。容器可以更进一步地将依赖注入根对象所依赖的对象,并如此迭代下去。最终,在理想情况
2011-12-22 17:09:02
198
原创 Guice(一)
Guice是一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够 对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。Guice还具有一些可选的特性比如:自定义scopes, 传递依赖,静态属性注入,与Spring集成和AOP联盟方法注入等。Java企业应用开发社区在连接对象
2011-12-22 17:07:43
873
原创 firefox中隐藏flash导致 flash重新加载的问题
在firefox中使用display:none隐藏包含flash的元素时,浏览器会unload flash,再次设置display:block时,会重新加载flash。 所以,如果不希望出现这种状况,不能使用display:none来隐藏元素。可考虑visibility:
2011-09-13 23:26:44
1065
原创 JAVA写的escape函数,可以处理JAVASCRIPT的ESCAPE处理的字符,避免字符集问题
public String escape(String src) { int i; char j; StringBuffer tmp = new StringBuffer(); tmp.ensureCapacity(src.length() * 6); for (i =
2011-07-13 23:33:42
758
原创 Javascript中escape(), encodeURI()和encodeURIComponent()之精析与比较
escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者,今天我就在这里对这三个方法详细地分析与比较一下。escape() 方法MSDN
2011-07-13 23:32:12
617
原创 用emial登陆openfire
XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含
2011-07-05 23:32:22
2643
原创 推荐:iJab ajax jabber 客户端
昨天在XMPP群里,iJab的成员自荐了一下他们的ajax jabber 客户端开源项目 http://code.google.com/p/ijab/ 看了一下DEMO:http://samespace.anzsoft.com/webim/iJab/iJab.
2011-07-05 23:18:11
11306
原创 xmpp with openfire之五 插件-利用Broadcast实现群
openfire提供了很好的插件支持,安装也非常方便。 下面介绍一个使用Broadcast插件实现的简单群 Broadcast插件是一个向用户发送广播消息的插件。 安装插件 登录openfire管理控制台-插件-插件管理-有效的插件 可以看到开放源代码插件列表
2011-07-05 23:15:38
6660
原创 xmpp with openfire之四 扩展的AuthProvider
上一篇中提到jdbcAuthProvider.passwordType提供了三种方式 如果你的密码加密规则不是这三种方式,可以自己进行扩充 首先,下载openfire的源码 http://www.igniterealtime.org/downloads/sou
2011-07-05 23:14:14
1488
原创 xmpp with openfire之三 openfire扩展小试 整合现有系统用户
openfire服务器配置,先跳过介绍,我想在文章里用到的时候再插入一些介绍。 openfire扩展小试 整合现有系统用户 如果我想使用现有系统的用户/组(部门),而不想使用openfire再去管理一套用户/组,用openfire可以非常方便的整合现有系统用户
2011-07-05 23:10:14
1797
proguard4.7
2013-04-16
FlashChart
2011-04-10
FlashChart 技术研究
2011-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人