随笔分类 - android提高篇
摘要:一、实现效果图二、项目工程结构三、详细代码编写1、主tab布局界面,main_tab_layout:双击代码全选1234567891011121314151617181920212223242526 2、Tab按钮选项布局,tab_item_view.xml:双击代码全选1234567891011121314151617181920212223242526 3、fragment布局界面,这里只列出一个,fragment_1.xml:双击代码全选1234567891011121314 4、Tab选项的自定义按钮资源文件,列出其中一个按钮,tab_home_btn:双击代...
阅读全文
摘要:android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,特与大家分享。android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。下面一一介绍:线程的魔法师 LooperL
阅读全文
摘要:在本节中,你会学到1、定义接口2、实现接口3、将消息传递给fragment为了重用Fragment UI 组件,在设计中你应该通过定义每一个fragemnt自己的layout和行为,让fragment的自包含和模块化。一旦你定义了这些可重用的 Fragment,你可以通过Activity将它们关联起来并通过程序的逻辑代码将他们连接起来以实现整体组合的UI。你会经常想要一个fragment与另一个fragment通信,例如基于用户事件改变fragment中的内容。所有fragment质检单额通信都是通过Activity关联起来的。两个fragment之间不应该直接进行通信。定义接口为了允许fra
阅读全文
摘要:Android开发学习之LauncherActivity开发启动的列表创建项目:OtherActivity项目运行结果:建立主Activity:OtherActivity.java[java]package wwj.otherActivity;import android.os.Bundle;import android.app.Activity;import android.app.LauncherActivity;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;impor
阅读全文
摘要:有时候android传统的页面布局不足以满足我们的需求,常常需要自己定义view,通常继承View,然后重写构造方法以及onDraw等函数,再 具体实现自己定义的复杂view。我们知道在给控件赋属性时,通常使用的是android系统自带的属性,比如 android:layout_height="wrap_content",除此之外,我们亦可以自己定义属性,这样在使用的时候我们就可以使用形如 myapp:myTextSize="20sp"的方式了,步骤大致如下:1》在项目文件res/value下面创建一个attr.xml文件,该文件中包含若干个attr集合
阅读全文
摘要:Camera拍照:今天做照相机程序,结果写好了发现出问题了,预览的图像差90度。相关源代码如下: Camera.Parameters params = camera.getParameters(); params.setPreviewSize(width, height);params.setPreviewFrameRate(4); params.setPictureFormat(PixelFormat.JPEG); params.set("jpeg-quality", 85); params.setPictureSize(width, height); camera.se
阅读全文
摘要:看到很多书中都没有对PreferenceActivity做介绍,而我正好又在项目中用到,所以就把自己的使用的在这总结一下,也方便日后查找。PerferenceActivity是什么,看下面的截图: Android系统截图(左) MusicPlayer Setting截图(右) 好了,我们看到Android系统本身就大量用到了PreferenceActivity来对系统进行信息配置和管理,那么它是怎么保存数据的呢,如何创 建PrefenceActivity的呢,更关键是怎样触发相应事件的呢。 先看第一个问题,PreferenceActivity是如何保存的数据。对Android系统了解的都知道,
阅读全文
摘要:在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全。我试过很多种方法,它们各有利弊。在这里我将会从使用ScrollView嵌套ListView结构的原因、这个结构碰到的问题、几种解决方案和优缺点比较,这4个方面来为大家阐述、分析、总结。实际上不光是ListView,其他继承自AbsListView的类也适用,包括ExpandableListView、GridView等等,为了方便说明,以下均用ListView来代表。一、 为什么要使用ScrollView嵌套ListView的奇怪的结构 ScrollView和ListView都是滚动结构,.
阅读全文
摘要:sendStickyBroadcast和sendStickyOrderedBroadcast发出的广播会一直滞留(等待),以便有人注册这则广播消息后能尽快的收到这条广播。其他功能与sendBroadcast相同。但是使用sendStickyBroadcast 发送广播需要获得BROADCAST_STICKYpermission,如果没有这个permission则会抛出异常。例子:[java]view plaincopyprint?packagecom.android.test;importandroid.app.Activity;importandroid.content.Context;im
阅读全文
摘要:本文主要内容: 1、FTP服务端部署---- 基于Android中SwiFTP开源软件介绍; 2、FTP客户端部署 --- 基于ftp4j开源jar包的客户端开发; 3、使用步骤 --- 如何测试我们搭建的FTP可操作性。 本文所涉及到的知识、文档、源代码照旧会在文章末尾列出。欢迎大家一起学习。一、 FTP服务端部署 SwiFTP开源软件是为Android系统开发,也就是说我们可以将其源代码嵌入到我们的项目中。当然,对其进行 一定改造还是必不可少的。这儿只是从感官上对SwiFTP的运行效果图进行一下说面,以便帮助大家有初步认识: Sw...
阅读全文
摘要:今天继续讲解关于ActivityManager的使用,通过前面一节的学习,我们学会了如何利用ActivityManager获取系统里正在运行的进程。本文要讲解的知识点是利用这些进程信息获取系统里正在运行的应用程序以及每个进程里运行的应用程序。用到的知识点也包括PackageManager的使用,读者阅读在我之前写的blog《PackageManager的使用》 每一个应用程序都会运行在它独立的进程里,但是为了节省资源或者这些应用程序是为了完成某一共同工作,它们也可能会运行在一个进程里。 知识点介绍: ActivityManager.RunningAppProcessInfo类 说明: 封装..
阅读全文
摘要:前言: 虽然本文标题的有点标题党的感觉,但无论如何,通过这篇文章的学习以及你自己的实践认知,写个简单的滑屏小Demo还是justso so的。 友情提示: 在继续往下面读之前,希望您对以下知识点有一定程度掌握,否则,继续看下去对您意义也不大。 1、掌握View(视图)的"视图坐标"以及"布局坐标",以及scrollTo()和scrollBy()方法的作用----- 必须理解 如果对这方面知识不太清楚的话,建议先看看我的这篇博客 , 不夸张地说,这篇博客理论上来说是我们这篇博文的基础。 2、知道onInterceptTouchEvent()以及onTouc
阅读全文
摘要:今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与 scrollBy这两个函数的区别 。 首先 ,我们必须明白在Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对Canvas对象进行了一定的操作,例如 : translate(平移)、clipRect(剪切)等,以便达到我们的对该Canvas对象绘制的要求 ,我们可以将这种无边界的视图称为“视图坐标”-----它不受物理屏幕限制。通常我们所理解的一个Layout布局文件只是该视图的显示区域,超过了这个显示区域将不能显示
阅读全文
摘要:前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了 ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对ContentObserver做下总结。 ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于 数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器, 相应地ContentObserver也分为“表“ContentObserver、“行”ContentO
阅读全文
摘要:大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是 因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个Context实例对象呢? 一个、两个? 在此先卖个关子吧。读了本文,相信您会豁然开朗的 。 Context,中文直译为“上下文”,SDK中对其说明如下: Interface to global information abo
阅读全文
摘要:通过第一部分>的介绍,对PackageManager以及AndroidManife.xml定义的节点信息类XXXInfo类都有了一定的认识。本部分的内容是如何获取安装包得大小,包括缓存大小(cachesize)、数据大小(datasize)、应用程序大小(codesize)。本部分的知识点涉及到AIDL、Java反射机制。理解起来也不是很难。 关于安装包得大小信息封装在PackageStats类中,该类很简单,只有几个字段: PackageStats类: 常用字段: public long cachesize 缓存大小 public long codesize 应用程序大小 public
阅读全文
摘要:本节内容是如何获取Android系统中应用程序的信息,主要包括packagename、label、icon、占用大小等。具体分为两个部分,计划如下: 第一部分: 获取应用程序的packagename、label、icon等 ; 第二部分: 获取应用程序的占用大小,包括:缓存大小(cachsize)、数据大小(datasize)。 每部分都为您准备了简单丰富的实例,您一定不会错过。 Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理)等。除此之外,还提供了一个PackageManger管理.
阅读全文
摘要:最近终于成功的摆脱了FM收音机,迈向了新的模块:锁屏、状态栏、Launcher---姑且称之为“IDLE”小组,或许叫手机美容小组,要是能施展下周星星同学的还我漂漂拳,岂不快哉。 OK,闲话打住,咱开始正文。 本文主要内容: 1、分析锁屏界面的组成 ; 2、基于源代码分析锁屏相关类 ; 3、提出一种在框架取消锁屏的方法 。 花了一些时间研究Android原生的锁屏框架---Keyguard,今天就慢慢的讲解下我自己对这个模块的总结,因为目前还处于 理论学习的状况,很多细节以及功能上的实现有待后续的补充完整。 本文分析适合Android2.2和2.3版本,An...
阅读全文
摘要:整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘(draw),其框架过程如下: 步骤其实为host.layout() 接下来温习一下整个View树的结构,对每个具体View对象的操作,其实就是个递归的实现。 关于这个 DecorView 根视图的说明,可以参考我的这篇博客: ...
阅读全文
摘要:Java code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213
阅读全文

浙公网安备 33010602011771号