
Android UI开发专栏
文章平均质量分 95
通过实例介绍android应用中常用的UI开发过程。
------致力于移动平台开发,做极致的移动应用产品。
xyz_lmn
6年+的移动应用开发经验;
在android、ios以及曾经的Symbian、windows mobile等系统下有项目经验。
有手机支付、voip项目、电信相关项目,移动健康项目经历。从事项目设计、架构、接口文档、代码编写工作。
展开
-
Material Theme
Material Theme提供了一下功能:翻译 2014-07-31 23:59:21 · 29477 阅读 · 0 评论 -
Material Design UI Widgets
Android L 开发者预览支持库提供两个新的Widgets,RecyclerView和CardView。使用这两个Widgets可以显示复杂的Listview和卡片布局,这两个Widgets默认使用Material design。RecyclerView RecyclerView是一个更高级柔性版本的Listview,RecyclerView是一个能包含很多视图的容器,它能完美的处理循环翻译 2014-07-07 15:43:00 · 30744 阅读 · 10 评论 -
Material Design Get Started
使用Material Design设计你的应用翻译 2014-06-28 23:17:07 · 14068 阅读 · 1 评论 -
Material Design
Android L 开发者预览版包含了支持Material Design的Apps。Material Design是一个综合的视觉指南、运动和交互设计平台。在你的应用中可以按照material design 规范中定义的准则以及使用新的组件和功能在Android开发人员预览版。翻译 2014-06-28 13:51:08 · 40792 阅读 · 4 评论 -
Android应用如何支持屏幕多尺寸多分辨率问题
作为Android应用程序开发者都知道android是一个“碎片化”的世界。多种系统版本、多种尺寸、多种分辨率、多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错。这给开发适配带来不小的难度。这篇文章会告诉我们怎么解决这个问题。原创 2014-08-01 00:04:33 · 40818 阅读 · 20 评论 -
Android UI开发第四十二篇——实现实现易信的圆形图像和对话列表的图像显示部分
显示图像时,很多个性化显示,圆形或圆角、气泡等等,我们这一篇文章探讨一下圆形和气泡的显示,仿照易信中的实现,先看下效果图:代码:public class RoundImageView extends ImageView { public RoundImageView(Context context) { super(context); // TODO Auto-generated原创 2014-04-03 19:41:32 · 13560 阅读 · 2 评论 -
android手势创建及识别
使用一些浏览器或者输入法应用时会有一些手势操作,还可以自定义手势。这些神奇的操作是怎么做的呢?这一篇重点记录手势的识别和创建。这篇的内容使用到的是android.gesture包,具体的例子参考的是Sample中GestureBuilder程序。原创 2013-11-25 17:36:56 · 8007 阅读 · 1 评论 -
Android 触摸及手势操作GestureDetector
现在的智能手机不敢说百分百的都是触摸屏,也应该是百分之九九以上为触摸屏了,触摸屏为我们操作无键盘、无鼠标的手机系统带来了很多的便利。原创 2013-11-21 16:29:35 · 69088 阅读 · 12 评论 -
Android UI开发第四十一篇——墨迹天气3.0引导界面及动画实现
周末升级了墨迹天气,看着引导界面做的不错,模仿一下,可能与原作者的代码实现不一样,但是实现的效果还是差不多的。先分享一篇以前的文章,android动画的基础知识,《Android UI开发第十二篇——动画效果Animation(一)》,写的不好,读者也可以自行搜索下android动画相关知识。模仿墨迹天气的引导界面动画使用的android动画的基础知识。原创 2014-03-22 17:24:27 · 30855 阅读 · 108 评论 -
Android View绘制过程
Android的View绘制是从根节点(Activity是DecorView)开始,他是一个自上而下的过程。View的绘制经历三个过程:Measure、Layout、Draw原创 2014-03-19 20:57:50 · 43227 阅读 · 9 评论 -
Android UI开发第四十篇——ScrollTricks介绍
ScrollTricks是一个开源控件,实现了两个简单功能:1、Quick Return:向上滑动时,View也向上滑动并且消失,当向下滑动时,View马上出现。例如Google Now的搜索功能。2、Sticky:类似的同步滚动,特定的View最多滑动到顶部并保持固定不动。例如大众点评或美团的“立即购买”功能。原创 2014-03-19 20:56:41 · 10691 阅读 · 3 评论 -
Android View的加载过程
大家都知道Android中加载view是从Activity的onCreate方法调用setContentView开始的,那么View的具体加载过程又是怎么的呢?这一节我们做一下分析。首先追踪一下代码:Activity中:public void setContentView(int layoutResID) { getWindow().setContentView(layoutResID);原创 2014-03-05 21:04:43 · 16401 阅读 · 8 评论 -
Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
Android中触摸事件传递过程中最重要的是dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()方法。这个是困扰初学者的问题之一,我开始也是。这里记录一下dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()的处理过程,以供记忆。原创 2014-03-05 21:04:08 · 111364 阅读 · 37 评论 -
Android使用SurfaceView实现墨迹天气的风车效果
SurfaceView也是继承自View,它和我们以前接触到的View(Button、TextView等)最大的不同是,SurfaceView可以有一个单独的线程进行绘制,这个线程区别于UI线程(主线程),因此SurfaceView绘制并不占用主线程资源。 SurfaceView实现通常是自定义,继承SurfaceView并实现SurfaceHolder.Callback接口。使用Surfa原创 2014-03-05 21:03:28 · 10661 阅读 · 5 评论 -
Android 优化布局层次结构
多数开发者可能会这样认为,使用基本的布局结构会产生高效的布局性能,其实这个想法是不完全正确的。我们每一个添加到应用的控件和布局,都需要初始化、布局、绘制,这些多是需要时间降低显示速度的。另外,嵌套多个使用layout_weight属性的LinearLayout实例会花费更大的代价,因为每一个子布局都要测量两次。如果这种布局使用在ListView或者GridView中,渲染时会更耗时。翻译 2013-12-30 17:38:35 · 16192 阅读 · 4 评论 -
Android UI 优化——使用HierarchyViewer工具
我们这一篇文章会提到为什么使用HierarchyViewer,怎么使用HierarchyViewer,后者内容会多一下。原创 2013-12-25 23:09:59 · 82385 阅读 · 9 评论 -
ListView具有多种item布局——实现微信对话列
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信、whatsapp、易信、米聊等。我们这篇文章也权当为回忆,形成简单的笔记。这篇文章参考了2009年Google IO中的《TurboChargeYourUI-How to make your AndroidUI fast and efficient》和2010年Google IO中的《The World of List View》。像2009年Google IO的资料还是很前沿的,那会android开发资料很少,最重要的就是参考goo原创 2013-12-22 19:35:33 · 58375 阅读 · 64 评论 -
Android抽象布局——include、merge 、ViewStub
在布局优化中,Androi的官方提到了这三种布局<include />、<merge />、<ViewStub />,并介绍了这三种布局各有的优势,<include />布局重用,<merge />减少视图层级,<ViewStub />需要时加载。原创 2013-11-11 17:18:35 · 150294 阅读 · 32 评论 -
Android UI开发第三十九篇——Tab界面实现汇总及比较
Tab布局是iOS的经典布局,Android应用中也有大量应用,前面也写过Android中TAb的实现,《Android UI开发第十八篇——ActivityGroup实现tab功能》。这篇文章总结几种Tab的实现。1)继承自TabActivity,TabActivity已在API Level 13中不建议使用,所有作者不建议在新开发的应用中使用TabActivity,关于Tabactivity的原创 2013-11-11 14:02:57 · 16280 阅读 · 4 评论 -
Android FragmentManage FragmentTransaction介绍
FragmentManage:FragmentManager能够实现管理activity中fragment. 通过调用activity的getFragmentManager()取得它的实例.FragmentManager可以做如下一些事情:1、使用findFragmentById() (用于在activity layout中提供一个UI的fragment)或findFragmentByTag()原创 2011-11-02 11:33:00 · 102848 阅读 · 9 评论 -
Android Fragment使用
通常地 fragment做为宿主activity UI的一部分, 被作为activity整个view hierarchy的一部分被嵌入. 有2种方法你可以添加一个fragment到activity layout:一、在activity的layout文件中声明fragment 你可以像为View一样, 为fragment指定layout属性(sdk3.0以后). 例子是一个有2个原创 2011-11-02 11:11:13 · 48515 阅读 · 14 评论 -
Android新的menu实现——ActionMode
Android 3.0以前,我们处理列表的长按事件经常使用Context Menu,Android3.0以后,我们有了新的选择:ActionMode。下图左边效果为Context Menu右边效果为ActionMode。原创 2013-10-23 13:35:25 · 36253 阅读 · 5 评论 -
Appcompat实现Action Bar的兼容性处理
Appcompat实现Action Bar时,如果使用到split action bar或者Navigating Up with the App Icon需要考虑兼容性。下面介绍下split action bar和Navigating Up with the App Icon,并解决兼容性。原创 2013-10-17 13:15:42 · 10721 阅读 · 5 评论 -
Android UI开发第三十六篇——使用Volley加载图片列表
在Google I/O介绍Volley的时候,Ficus Kirpatrick讲了很多关于Volley如何的有助于图片加载。但是,你会发现在Volley作为图片加载解决方案的时候,Volley虽然自己处理了L2的缓存,可是它没有处理L1的缓存。它给出了ImageCache接口类,让开发者自己根据自己的需求实现自己L1缓存,这样你可以实现LRU、FIFO等算法的缓存。原创 2013-10-15 12:27:17 · 38397 阅读 · 35 评论 -
Android UI开发第三十五篇——AppCompat实现Action Bar
每一位Android开发者对Action Bar这种设计都不陌生了,毕竟它已经发布了至少两年了。Android团队发布Action Bar设计规范时同时放出了ActionBar的Api来支持这种设计。如果对ActionBar不太熟悉的可以参考《 Android UI开发第二十四篇——Action Bar》。ActionBar的API被添加在Android3.0(API 级别 11)中,低版本的还是用不了,根本不能适配支持Android 2.X系列的应用。很幸运有第三方开源的actionbarsherloc原创 2013-10-13 15:35:08 · 62112 阅读 · 13 评论 -
Android UI开发第三十四篇——SlidingPaneLayout
SlidingPaneLayout也是系统支持的高级控件,是Android团对在2013 google IO大会期间更新的Support库(Version 13)中新加入的重要的功能。它支持左右滑动菜单,和SlidingMenu相似。这篇文章简单的介绍SlidingPaneLayout怎么使用,SlidingPaneLayout的使用和前面介绍的Navigation Drawer的使用无二异。原创 2013-10-11 20:30:05 · 29977 阅读 · 14 评论 -
Android UI开发第三十三篇——Navigation Drawer For Android API 7
Creating a Navigation Drawer中使用的Navigation Drawer的android:minSdkVersion="14",现在Android API Version 小于14的还有30%左右呢。怎么使Navigation Drawer适配到更低的api呢。原创 2013-10-11 13:11:53 · 11589 阅读 · 16 评论 -
Android UI开发第三十二篇——Creating a Navigation Drawer
Navigation Drawer是从屏幕的左侧滑出,显示应用导航的视图。翻译 2013-10-10 16:10:06 · 50496 阅读 · 32 评论 -
Android UI开发第三十一篇——Android的Holo Theme
一直做android开发的可能都知道,Android 系统的UI有过两次大的变化,一次是android 3.0发布,UI开发支持了Fragment,主要增加了大屏幕显示的支持,这个版本就开始支持Holo Theme,由于android 3.X的设备占有率也不高,这一次的改变没有引起大的关注;再一次的改变就是Android 4.0 ,也就是通常所说的 ICS ,这个于2011年底发布的Android系统,同时也发布了指导性的应用设计规范《Android Design》 有了设计规范的指导,就有了更多应用采用了原创 2013-09-25 14:32:50 · 36448 阅读 · 5 评论 -
Android UI开发第三十篇——使用Fragment构建灵活的桌面
当我们设计应用程序时,希望能够尽最大限度的适配各种设备,包括4寸屏、7寸屏、10寸屏等等,Android开发文档给了我们参考,而且Google IO的app(如图二)也实现了这种思想,他们都是使用layout、layout-large里面不同的布局文件实现的,下面是翻译的developer.android.com一篇的文章,里面的例子能详细的看出layout、layout-large并使用Frag翻译 2013-03-08 20:25:22 · 32413 阅读 · 7 评论 -
Android UI开发第二十九篇——Android中五种常用的menu(菜单)
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu。1、左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新。最早使用左右推出菜单的,听说是Facebook,我不确定消息的真实性。左右推出菜单如图, 2、Path菜单原创 2013-03-05 15:47:12 · 17634 阅读 · 5 评论 -
Android UI开发第二十八篇——Fragment中使用左右滑动菜单
Fragment实现了Android UI的分片管理,尤其在平板开发中,好处多多。这一篇将借助Android UI开发第二十六篇——Fragment间的通信、 Android UI开发第二十七篇——实现左右划出菜单 来实现。看图1的效果,左边使用LeftFragment实现,中间使用的CenterFragment实现。public class SlidingActivity extends Fra原创 2013-03-05 14:38:37 · 27032 阅读 · 12 评论 -
Android UI开发第二十七篇——实现左右划出菜单
年前就想写左右滑动菜单,苦于没有时间,一直拖到现在,这篇代码实现参考了网上流行的SlidingMenu,使用的FrameLayout布局,不是扩展的HorizontalScrollView。 程序中自定义了菜单view:SlidingView,继承自ViewGroup,使用FrameLayout布局。重写了onInterceptTouchEvent(MotionEvent ev)方法实原创 2013-03-05 10:46:18 · 17676 阅读 · 14 评论 -
Android UI开发第二十六篇——Fragment间的通信
为了重用Fragment的UI组件,创建的每个Fragment都应该是自包含的、有它自己的布局和行为的模块化组件。一旦你定义了这些可重用的Fragment,你就可以把它们跟一个Activity关联,并把它们跟应用程序的逻辑相连来实现全部的组合式UI。 现实中我们经常想要一个Fragment跟另一个Fragment进行通信,例如,要基于一个用户事件来改变内容。所有的Fragment间的通翻译 2013-03-03 17:33:41 · 45750 阅读 · 13 评论 -
Android UI开发第二十五篇——分享一篇自定义的 Action Bar
Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar。在3.0之前是不能使用Action Bar功能的。这里引入了自定义的Action Bar,自定义Action bar也不是完全实现了 Action bar功能,只是在外形上相似。自定义Action bar没有实现overflow button(悬浮按钮)的功能,如果想进一步实现overfl原创 2012-11-01 14:30:16 · 15156 阅读 · 0 评论 -
Android UI开发第二十四篇——Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。翻译 2012-10-31 16:11:40 · 209305 阅读 · 30 评论 -
Android UI开发第二十三篇——分享书架UI实现
android中有很多的电子书阅读应用,应用中都仿真了书架的实现,这里也分享一篇读书应用的书架实现: java:public class ShelvesView extends GridView { private Bitmap mShelfBackground; private int mShelfWidth; private int mShelfHeight;原创 2012-10-29 13:32:35 · 19483 阅读 · 6 评论 -
Android UI开发第二十二篇——android 瀑布流图片实现
自pinterest使用了瀑布流展示图片后,有很多应用开始使用瀑布流的方式,像蘑菇街,美丽说。这里的瀑布流实现使用了开源代码。layout:<com.dodowaterfall.LazyScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_paren原创 2012-10-23 16:45:03 · 39969 阅读 · 13 评论 -
Android UI开发第二十一篇——下拉刷新列表实现(pull to refresh)
android中提供了ListView控件,listview能够为我们展现丰富的内容,有时候我们为了提升用户体检,需要更炫而且更好用户体验的效果,pull to refresh(下拉刷新列表效果)就应运而生了。 pull to refresh更多的应用于获取最新的内容,比如新浪微博、腾讯微博等。目前网上有很多开源的pull to refresh的开源实现,这里也是参考开源代码实现的。原创 2012-10-23 16:36:02 · 22564 阅读 · 5 评论 -
Android UI开发第二十篇——仿launcher的左右滑动(用ViewPager实现欢迎引导页面)
在论坛里,经常看到有人问如何实现UC或墨迹天气那样的拖动效果。其实大部分的实现都是参考了Launcher里的Workspace这个类。今天又见问起,特分享一下曾经的用到的部分。先看一下效果图: 第一个视图 滑动过程中原创 2011-12-06 15:31:26 · 8537 阅读 · 11 评论