android
文章平均质量分 54
qqiabc521
这个作者很懒,什么都没留下…
展开
-
从源码的角度分析ViewGruop的事件分发
从源码的角度分析ViewGruop的事件分发。 首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也转载 2013-12-02 11:46:40 · 779 阅读 · 0 评论 -
从源码的角度解析View的事件分发
有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些问题,我并没有给出非常详细的回答,因为我知道如果想要彻底搞明白这些问题,掌握Android事件分发机制是必不可少的,而Android事件分发转载 2013-12-02 11:48:11 · 813 阅读 · 0 评论 -
android handler 机制
在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知 handler基本使用: 在主线程中,使用handler很简单,new一个Handler对象实现其handleMessage方法,在handleMessage中 提供收到消息后相应的处理方法即可,这里不对handler使用进行详细说明,在看本博文前转载 2014-01-12 22:22:07 · 709 阅读 · 0 评论 -
Android有效解决加载大图片时内存溢出的问题
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的原创 2014-03-10 18:24:44 · 112 阅读 · 0 评论 -
android animation中的参数interpolator详解
android:interpolator interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果可以 accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。 android 自带的interpolator AccelerateDecelerateInterpo原创 2014-03-12 14:24:10 · 4641 阅读 · 0 评论 -
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 · 631 阅读 · 0 评论 -
修正Android摄像头API
这几天本人参加了一个公司举办的编程马拉松,我打算使用Android摄像头来做。我一直都认为Android的API很糟糕,但是没有详细说出哪些地方糟糕,也没有说怎么改进会更好。趁这个机会,现在我就来解释解释。 我认为,Android关于摄像头的API非常糟糕,如果你没有用过,那么自己花点时间看看去吧。使用这个Camera API的时候,经常会使开发者使用错误,会导致开发者忽略很多重要的东西,然转载 2014-08-28 15:14:48 · 822 阅读 · 0 评论 -
轻松实现Android 更换皮肤(主题)
目前很多app都具有换肤功能,可以根据用户自己的喜好定制自己的界面,比如新浪微博,网易新闻等等。今天这里我就是要介绍一种机制实现app换肤。 我找了几款app换肤的应用,换肤基本都是更换了界面的Icon,背景图片,背景色等等,基本没有遇到更换布局的,其实布局也是可以更换的,但是觉得没有必要。所以这篇文章讲解的换肤也是指换icon,背景图片等资源。 通过网络搜索我发现网上上提供了大概这么转载 2015-03-03 18:22:34 · 2919 阅读 · 2 评论 -
Android中资源管理机制详细分析
在Android中,所有的资源都在res目录下存放,包括drawable,layout,strings,anim等等,当我们向工程中加入任何一个资源时,会在R类中相应会为该 资源分配一个id,我们在应用中就是通过这个id来访问资源的,相信做过Andorid开发的朋友对于这些肯定不会陌生,所以这个也不是我今天想要说的,我今天想和大家一起学习的是Android是如何管理资源的,在Android系统中,转载 2015-03-03 18:23:48 · 971 阅读 · 0 评论 -
Android layer type与WebView白屏以及WebView不随动画而动的问题
先说说这三个layer。 LAYER_TYPE_SOFTWARE 无论硬件加速是否打开,都会有一张Bitmap(software layer),并在上面对WebView进行软渲染。 好处: 在进行动画,使用software可以只画一次View树,很省。 什么时候不要用: View树经常更新时不要用。尤其是在硬件加速打开时,每次更新消耗的时间更多。因为渲染完这张Bitmap后还需转载 2015-07-17 16:49:09 · 643 阅读 · 0 评论 -
利用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 · 1053 阅读 · 0 评论 -
Android Fragment应用实战,使用碎片向ActivityGroup说再见
现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别棒的应用技巧。 很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的转载 2013-12-02 10:21:19 · 941 阅读 · 0 评论 -
Android开发指南 ──应用程序基础
Android应用程序使用Java做为开发语言。aapt工具把编译后的Java代码连同其它应用程序需要的数据和资源文件一起打包到一个Android包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。 从很多方面来看,每个Android应用程序都存在于它自己的世界之中: 默认转载 2012-06-23 17:25:46 · 1367 阅读 · 0 评论 -
Android各种访问权限Permission详解
在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作。在Android中这样的权限有很多种,这里ATAAW.COM将各类访问权限一一罗列出来,供大家使用时参考之用。 android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘转载 2012-06-20 15:37:28 · 946 阅读 · 0 评论 -
通过SlidingMenu Fragment实现当前最流行的侧滑
内容简介: 通过SlidingMenu库与Fragment来实现当前最为流行的侧滑模式。其实涉及到的知识点有: 1.SlidingMenu 2.Fragment 通过layout构建一个Fragment 通过preference 来构建Fragment 准备工作: 1. SlidingMenu 下载地址: https://github.com/jfeinstein10/Slidi转载 2013-07-10 11:52:06 · 6726 阅读 · 8 评论 -
android消息推送
1.引言 所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。 推送方法如下: 1)通过SMS进行服务器端和客户端的交流通信。 在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图转载 2013-04-09 16:28:29 · 840 阅读 · 0 评论 -
Android UI事件处理、focus处理
在Android平台上,捕获用户在界面上的触发事件有很多种方法,View类就提供这些方法。你在使用各种View视图来布局界面时,会发现几个公用的回调方法来捕捉有用的UI触发事件,当事件在某个View对象上被触发时,这些方法会被系统框架通过这个对象所调用,例如:当一个View(如一个Button)被点击,onTouchEvent()方法会在该对象上被调用,所以,为了捕获和处理事件,必须去继承某个类,转载 2013-01-07 14:31:14 · 718 阅读 · 0 评论 -
android 分辨率自适应
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。 首先:你需要在AndroidManifest.xml文件的元素如下添加子元素 “true” android:normalScreens=“true” android:anyDensity=“true” android:smallScreen转载 2013-01-25 17:45:34 · 574 阅读 · 0 评论 -
android 代码混淆 例子
-optimizationpasses 5 #混淆时不会产生形形色色的类名 -dontusemixedcaseclassnames #指定不去忽略非公共的库类 -dontskipnonpubliclibraryclasses #不预校验 -dontpreverify -dontshrink #忽略警告 -ignorewarnings #优化 -optimizations !原创 2013-03-05 09:46:20 · 1306 阅读 · 0 评论 -
Android之MVC模式
MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与《设计模式》中的观察者模式是完原创 2013-03-14 17:38:09 · 972 阅读 · 0 评论 -
Android开发优化之——从代码角度进行优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。 1)静态变量引起内存泄露 在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类转载 2013-03-18 14:59:49 · 595 阅读 · 0 评论 -
Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 这里重点介绍一下软引用和弱引用。 如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存转载 2013-03-18 16:03:14 · 663 阅读 · 0 评论 -
Android屏幕密度(Density)和分辨率的解释
HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120 density值表示每英寸有多少个显示点,与分辨率是两个概念。 不同density下屏幕 分辨率信息,以480dip*800dip的WVGA(density=240)为例 density=120时 屏幕实际分辨率为240px*400px (两个点对转载 2013-03-24 20:51:07 · 763 阅读 · 0 评论 -
Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整
如果需要控件停在动画后的位置,需要设置android:fillAfter属性为true,在set节点中。默认在动画结束后回到动画前位置。设置android:fillAfter后,我们看到了控件留在了动画后的位置,其实也只是看到在那个位置,真实位置还是在原来动画前那里,你会发现Button不能被点击,就是这个原因。所以我们可以在动画结束后,手动把控件移动到动画结束后的位置。这就需要根结点为Absol转载 2012-06-04 16:23:29 · 924 阅读 · 0 评论