Android
Rain松
凡事预则立不预则废
展开
-
Android仿小米商城底部导航栏之二(BottomNavigationBar、ViewPager和Fragment的联动使用)
简介在前文《仿小米商城底部导航栏(基于BottomNavigationBar)》我们使用BottomNavigationBar控件模仿实现了小米商城底部导航栏效果。接下来更进一步的,我们将通过BottomNavigationBar控件和ViewPager空间的联动使用来实现主界面的滑动导航。导航是移动应用最重要的方面之一,对用户体验是良好还是糟糕起着至关重要的作用。好的导航可以让一款应用更原创 2017-01-07 10:59:28 · 9429 阅读 · 3 评论 -
Android之仿今日头条顶部导航栏效果
随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候像今日头条新闻客户端要显示的内容太多,而且又想在主界面全部显示出来,所以有加了顶部导航栏。今日头条顶部导航栏区域的主要部分是一个导航菜单。导航菜单是一组标签的集合,在新闻客户端中,每个标签标示一个新闻类别,对应下面ViewPager控件的一个分页面。当用户在Vie原创 2015-01-07 09:11:56 · 54201 阅读 · 24 评论 -
Android之BroadcastReceiver
Android广播机制包含三个基本要素:广播发送者(调用sendBroadcast方法) - 用于发送广播;广播接收器(BroadcastReceiver) - 用于接收广播;意图内容(Intent)-用于保存广播相关信息的媒介。Broadcast是Android中一种广泛运用的在应用程序之间或应用程序内个组件直接传输信息的机制。而BroadcastReceiver是对发送出来的广原创 2014-11-25 09:12:11 · 2147 阅读 · 0 评论 -
Android UI之Tab(TabActivity+TabHost实现)
Tab标签页是UI设计时经常使用的UI控件,可以实现多个分页之间的快速切换,每个分页可以显示不同的内容。TabHost相当于浏览器中标签页分布的集合,而Tabspec则相当于浏览器中的每一个分页面。在Android中,每一个TabSpec分布可以是一个组件,也可以是一个布局,然后将每一个分页装入TabHost中,TabHost即可将其中的每一个分页一并显示出来。使用Tab标签页的一原创 2014-12-01 09:15:33 · 4642 阅读 · 0 评论 -
Android系统架构
传统的嵌入式Linux环境,几乎都会遵从一种约定俗成的传统,就是专注于如何将开源软件精减,然后尽可能将PC上的运行环境照搬到嵌入式。在这种思路引导下开发出来的系统,可移植性本身是没什么问题的,只要不是跟X86绑定的源代码,铁定是可以移植。但是,这样构建出来的系统,一般都在结构上过于复杂,会有过多的依赖性,应用程序接口并不统一,升级也困难。所有这样的系统,最后反倒是影响到了系统的可移植性。针对这样的原创 2014-11-24 17:58:57 · 1596 阅读 · 0 评论 -
Android常用UI组件 - Button
按钮(Button)是Android当中一个常用的UI组件,很小但是在开发中最常用到。一般通过与监听器结合使用,从而触发一些特定事件。Button继承了TextView。它的功能就是提供一个按钮,这个按钮可以供用户点击,当用户对按钮进行操作的时候,触发相应事件,如点击,触摸。一般对于一个按钮而言,用的最多的就是点击事件,Button间接继承自View,而Android UI中的所有事件,都是定义在原创 2014-10-21 09:55:03 · 3779 阅读 · 0 评论 -
Android UI布局之TableLayout
从字面上了解TableLayout是一种表格式的布局。这种布局会把包含的元素以行和列的形式进行排列。表格的列数为每一行的最大列数。当然表格里边的单元格是可以为空的。实例:LayoutDemo运行效果:代码清单:布局文件:table_layout.xml<TableLayout xmlns:android="http://schemas.android.com/ap原创 2014-11-06 09:43:23 · 2531 阅读 · 0 评论 -
Android UI布局之FrameLayout
一个FrameLayout对象就好比一块屏幕上提前预定好的空白区域,然后可以填充一些元素到里边,比方说一张图片等。需要注意的是,所有的元素都被放置在FrameLayout区域最左边上的区域。而且无法为这些元素指定一个确切的位置。如果一个FrameLayout里边有多个子元素,那么后边的子元素的显示会重叠在前一个元素上。实例:LayoutDemo运行效果:代码清单:布局文原创 2014-11-05 09:45:09 · 4148 阅读 · 0 评论 -
Android UI布局之RelativeLayout
RelativeLayout是一个相对布局类。首先RelativeLayout是一个容器,它里边的元素,如Button按钮等的位置是按照相对位置来计算的,例如,有两个Button按钮都布局在一个RelativeLayout里边,我们可以定义第二个Button在第一个Button的上边或者是右边。但到底第二个Button在什么位置呢,它还是依赖于第一个Button的位置。需要注意的是,出于性能上的考原创 2014-11-04 09:48:14 · 2693 阅读 · 0 评论 -
Android UI布局之LinearLayout
LinearLayout是Android中最常用的布局之一,它将自己包含的子元素按照一个方向进行排列。方向有两种,水平或者竖直。这个方向可以通过设置android:orientation="vertical"或者android:orientation="horizontal"来实现,所有的元素排列都是一个接着一个的。如果是竖直排列,那么LinearLayout的元素就一个接着一个的从上到下竖直排列原创 2014-11-03 10:15:35 · 1864 阅读 · 0 评论 -
Android UI之Tab(ActionBar+Fragment实现)
Fragment和ActionBar都是Android3.0之后出现的,Fragment,碎片,主要是为了支持更多的UI设计在大屏幕设备上,如平板。因为现在设备的屏幕越来越大,使用Fragment可以更灵活的管理视图层次的变化。像Activity一样,可以创建Fragment来包含View,进行布局,但是Fragment必须嵌入在Activity中,不能单独存在,而且一个Activity可以嵌入多原创 2014-12-02 09:41:15 · 6523 阅读 · 0 评论 -
Android UI之ViewPager
ViewPager需要android-support-v4.jar这个包的支持,它是Google提供的一个附加包。ViewPager主要用来组织一组界面,并且通过左右滑动的方式来展示。与ListView类似,ViewPager也需要一个适配器,也就是PagerAdapter,来把这组界面填充到ViewPager中。ViewPager的使用步骤:1、往布局文件里加入ViewPager原创 2014-12-04 10:52:58 · 1938 阅读 · 0 评论 -
Android-PullToRefresh下拉刷新库基本用法
PullToRefresh是一套实现非常好的下拉刷新库,它支持:ListViewExpandableListViewGridViewWebViewScrollViewHorizontalScrollViewViewPager等多种常用的需要刷新的View类型,而且使用起来也十分方便。(下载地址:https://github.com/chrisbanes/Andr原创 2015-01-08 09:14:05 · 49558 阅读 · 6 评论 -
Android仿小米商城底部导航栏(基于BottomNavigationBar)
简介现在大多数App都会用到底部导航栏,比如QQ、微信和购物App等等。有了底部导航栏,用户可以随时切换界面,查看不同的内容。Android底部导航栏的实现方式特别多,例如TabHost,TabLayout,或者TextView等,都可以实现底部导航栏的效果,但是却没有Google官方统一的导航栏样式,今天讲的就是Google最近添加到Material Design中的底部导航栏BottomN原创 2017-01-06 11:23:22 · 4766 阅读 · 0 评论 -
Android插件化开发技术
原创 2016-03-08 16:49:47 · 1201 阅读 · 0 评论 -
Android之仿今日头条标题栏效果
学习Android应用开发已经有一段时间了,对涉及应用开发的主要基础知识已经有了一定的了解,学习过程中写的博客被我整理成立了一个专栏《Android应用开发基础》。但是基本上写的代码都是一些单一知识点的演示Demo,与一个完整的产品相差甚远。要具备开发复杂的产品级应用的能力,在掌握了应用开发的基础知识的前提下,最好的方法莫过于模仿别人开发的优秀应用。在模仿中循序渐进,以程序员角度去看待每一个APP原创 2015-01-06 09:13:28 · 7587 阅读 · 1 评论 -
Android之JSON格式数据解析
JSON:JavaScript 对象表示法(JavaScript Object Notation)。独立于语言和平台,比 XML 更小、更快,更易解析。如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握。Android平台自带了JSON解析的相关API,可以将文件、输入流中的数据转化为JSON对象,然后从对象中获取JSON保存的数据内容。Android的JSON原创 2015-01-01 12:45:52 · 64443 阅读 · 7 评论 -
Android Handler消息机制
在上一篇文章《Android AsyncTask异步任务》中我们介绍了如何使用AsyncTask异步处理网络通信和UI更新。在本文中将使用Handler消息机制来异步处理网络通信和UI更新。Google参考了Windows的消息机制,在Android系统中实现了一套类似的消息机制。学习Android的消息机制,有几个概念(类)必须了解:1、Message消息,理解为线程间通讯的数据原创 2014-12-29 09:09:04 · 1994 阅读 · 0 评论 -
Android AsyncTask异步任务
在上一篇文章《Android网络编程之使用HttpClient进行Get方式通信》中,我们强制直接在UI线程进行网络操作,在实际的应用开发过程中不能这样做,因为这样很可能会阻塞UI,影响用户体验。为了避免直接在UI线程中进行网络操作,我们可以使用AsyncTask异步处理网络通信和UI更新。通过AysncTask可以很容易的启动后台线程进行网络通信,然后将结果返回到UI线程中。AsyncT原创 2014-12-26 09:14:24 · 3853 阅读 · 0 评论 -
Android网络编程之使用HttpClient进行Get方式通信
在Android开发中,Android SDK附带了Apache的HttpClient,它是一个完善的客户端。它提供了对HTTP协议的全面支持,可以使用HttpClient的对象来执行HTTP GET和HTTP POST调用。HTTP工作原理:1.客户端(一般是指浏览器,这里是指自己写的程序)与服务器建立连接2.建立连接后,客户端向服务器发送请求3.服务器接收到请求后,向客户端原创 2014-12-25 09:15:13 · 16106 阅读 · 3 评论 -
Android UI之SlidingMenu侧滑菜单
SlidingMenu侧滑菜单是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作。很多优秀的应用都采用了这种界面方案,像facebook、人人网、everynote、Google+、网易新闻、知乎日报、有道云笔记等等。现在这种交互方式越来越流行了,虽然这种交互方式可以通过自定义组件的方式来实现,但是用第三方开源库更简单。地址: https原创 2014-12-08 10:11:21 · 5833 阅读 · 2 评论 -
Android存储之SharedPreferences
SharedPreferences是Android提供用来存储一些简单的配置信息的一种机制,例如,一些默认欢迎语、登录的用户名和密码等。其以键值对的方式存储,使得我们可以很方便的读取和存入,下面看一个演示的例子。实例:SharedPreferencesDemo代码逻辑:应用启动时尝试从SharedPreferences中读取保存的用户名和用户密码,并将结果显示在UI界面相应的编辑框原创 2014-12-23 09:12:34 · 1974 阅读 · 0 评论 -
Android应用构建过程解析
要得心应手地进行Android应用开发需要我们对Android工程的编译和打包有一个比较深入的理解,例如知道它的每一步都做了什么,需要什么环境和工具,输入和输出是什么,等等。在前文《命令行下Android应用开发》中我们已经知道如何创建一个Android工程和编译运行可调试版本的应用程序。本文将介绍Android工程的整个编译过程。 首先来分析Ant如何将Android工程编译打包成A原创 2014-08-19 10:20:19 · 3961 阅读 · 0 评论 -
Android KitKat 4.4 Wifi移植之Wifi driver
本文讲述在Linux 3.10下Realek RTL8723A Linux Wifi 驱动的移植。 Prerequisites硬件平台:Atmel SAMA5软件平台:Linux 3.10 + Android 4.4Wifi模组:RTL8723AU (USB接口) Realtek RTL8723A Wi-Fi Software& Driverfor Linux原创 2014-05-28 08:15:20 · 12259 阅读 · 1 评论 -
Android之Intent和Activity
Intent可以说是Android的灵魂,程序跳转和传递数据的时候基本上就是靠Intent了。Intent在Android应用中是相当重要的,理解Intent对应用编程很有帮助。在Android的官方API文档里边对Intent是这样定义的:An Intent is an abstract description of an operation to be performed。一个Intent就是原创 2014-11-13 09:32:42 · 2273 阅读 · 0 评论 -
Android常用UI组件 - TextView
TextView是Android里面用的最多的UI组件,一般使用在需要显示一些信息的时候,其不能输入,只能初始设定或者在程序中修改。实例:TextViewDemo运行效果:代码清单:布局文件:main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2014-10-25 18:07:23 · 2241 阅读 · 0 评论 -
Android之Activity
Activity一般用于和用户的交互,所以Activity类管理创建窗口,用户可以通过setContentView(View)来放置需要的UI控件。当Activity全屏显示时,可以用于其它用户,例如浮动窗口(通过windwosIsFloating设置)或内置activity(通过ActivityGroup设置)。有两个方法大部分Activity子类都会实现:OnCreate(Bund原创 2014-11-11 10:03:39 · 2976 阅读 · 2 评论 -
Linux桌面发行版与Andoid GUI系统组件对比
Linux桌面发行版与Andoid GUI系统组件对比GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。在移动互联网萌芽时期,国内外各大手机与软件厂原创 2014-03-25 15:24:15 · 2894 阅读 · 1 评论 -
Android历史版本
测试版Android操作系统最早的一个版本是2007年11月5日发布的Android 1.0 beta,它作为一个面向开发者的软件开发包(SDK)进行发布。Android 1.02008年9月23日,发布Android操作系统中的第一个正式版本:Android 1.0,代号为铁臂阿童木(Astro)。全球第一台Android设备HTC Dre转载 2014-07-02 11:45:06 · 3482 阅读 · 0 评论 -
类库和框架与应用开发之间的关系浅析
对于各种应用开发(桌面、Web、移动、嵌入式、服务器):类库 - 类库是一些类或函数的集合,它能帮助你写应用。起主导作用的是你的代码,由你来决定何时使用类库。框架 - 框架是一种特殊的、已经实现了的应用,你只需要对它填充具体的业务逻辑。框架是起主导作用的,由它来根据具体的应用逻辑来调用你的代码。根据具体的应用需求,在框架的基础上编写你自己的代码,由框架来调用你的代码,再由你的代码决定何原创 2014-02-11 14:12:24 · 2418 阅读 · 0 评论 -
Android Recovery模式学习体会
最近在学习Android的Recovery模式,感觉它和Windows的安全模式很相似。两者的工作原理都是只加载少量的系统组件(内核是必须的),使系统运行在最小模式,这样就可以在不影响当前系统运行的情况下(因为运行时组件少而简单,对于Android,即使把/system/lib下的共享库都删掉,也不会影响当前系统的正常运行)方便地对外部存储设备(硬盘或Flash)的内容进行操作,比如替换或删除系统原创 2013-07-30 09:52:33 · 1479 阅读 · 0 评论 -
如何开始分析一份开源软件代码
想要了解一个开源软件系统,我常会从 makefile 或是 building system 下手, 以了解系统组成元素为何?目录结构为何?对于 Linux 和 Android ,我也不例外。透过了解 Linux 的 Kbuild 或 Android 的 building system ,我们能知道如何新增、修改、删除代码,并保有完整性,顺利编译出结果。原创 2013-02-16 11:49:20 · 2532 阅读 · 1 评论 -
为什么Android系统需要使用C、C++和Java语言共同开发
在Android系统中,内核层采用Linux,而Linux内核绝大部分代码是使用C语言;Native Framework层的代码主要使用C++语言;Java Framework层和Application层则使用Java语言。 C语言是典型的过程式和结构化程序设计语言,由于支持位运算及内存地址操作,因此该语言适用于系统级和嵌入式软件开发。面向对象程序设计语言C++是在保持C语言效率的基础上原创 2012-10-14 08:08:36 · 11515 阅读 · 10 评论 -
Android常用UI组件 - EditText
EditText是接受用户输入信息的最重要Android UI组件,可以利用EditText.getText()获取它的文本内容。实例:EditTextDemo运行效果:代码清单:布局文件:main.xml<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" androi原创 2014-10-29 09:34:09 · 2402 阅读 · 1 评论 -
命令行下Android应用开发
本文介绍如何创建你的第一个Android应用程序。您将学到如何创建一个Android工程和运行可调试版本的应用程序。 开始本文学习之前,确保你已经安装了开发环境。你需要:1、下载AndroidSDK。2、使用SDKManager下载最新的SDK tools和platforms。3、下载安装Ant。Note:对于1和2,也可以直接下载安装ADT Bundle。原创 2014-08-15 10:01:13 · 6634 阅读 · 0 评论 -
Android Camera子系统之进程/文件View
本文基于Android 4.2.2从进程/文件的角度审视Android Camera子系统。 AndroidCamera子系统的整体架构分成客户端(Client)和服务器(Server)两个部分,它们建立在Android的进程间通讯机制Binder的基础之上。查看进程root@android:/# psUSER PID PPID V原创 2014-04-29 11:12:15 · 2916 阅读 · 0 评论 -
Android Camera预览过程数据流浅析
硬件平台:Atmel SAMA5D3Android版本:4.2.2mediaserver进程是Camera Service的容器进程,它会动态加载Camera HAL和Gralloc HAL。视频数据帧首先必须从Camera驱动程序到达Camera硬件抽象层。在Camera硬件抽象层,视频数据帧被从video capture buffer拷贝到gralloc buffer。原创 2014-05-08 09:09:32 · 6797 阅读 · 6 评论 -
Android Camera子系统之用户View
一、拍照模式打开原生Camera应用,将出现如下所示拍照界面左边为预览区域,右边为控制面板。控制面板分为三部分,从上到下依次为缩略图、快门按钮和模式选择器。模式选择器中显示当前模式为拍照模式。 按下快门按钮将会执行拍照操作,缩略图区域显示所拍照片的缩略图。二、录像模式点击模式选择器区域,选择录像模式,将会进入录像界面,如下图所示原创 2014-04-29 11:16:04 · 1729 阅读 · 0 评论 -
Android之Service
服务是运行在后台的一段代码。不是进程,也不是线程,但它运行在进程和线程中。Android中的服务与Activity不同,不能与用户交互,不能自己启动。媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐依然可以继续播放,这就是由服务Service来保证当用户界面关闭时音乐继续播放。当我们某个应用的数据是通过网络获取的,不同时间的数据是不同的,这时我们可以用Service在后台定时更新,而不用原创 2014-11-18 09:52:21 · 1639 阅读 · 0 评论 -
Android KitKat 4.4 Wifi移植之AP模式与网络共享功能调试记录
Tethering技术在移动平台上已经运用的越来越广泛了,它可以把移动设备当做一个接入点,其它的设备可以通过Wi-Fi,USB或是Bluetooth等方式连接到此移动设备。在Android中可以将Wifi设为AP模式作为WLAN接入点,从而与其他设备共享Android的互联网连接。Android成为接入点后,就无法通过WLAN连接使用Android的应用程序访问互联网,但可以通过其他方式如以太网或原创 2014-06-17 15:08:40 · 7555 阅读 · 0 评论