Android进阶知识
文章平均质量分 64
本栏的内容主要参考《Android开发艺术》和CSDN上的优质博客,以及自己在项目工作中的一些经验。<(^-^)>
this.
这个作者很懒,什么都没留下…
展开
-
浅析View工作原理
View是android os里一个重要的组成部分,在开发过程中我们经常会用到的一些View组件就有TextView,Button,ListView等等。有些组件经过设计后会展示出更好的视觉效果。那么我们会感到疑惑,一个组件肯定不会凭空产生,那么我们在代码使用了这些组件后它们又经历了一个怎样的过程才使得它们能够在屏幕上展示出来呢? 首先,需要知道的是View的绘制流程是从ViewRootImpl这原创 2016-08-12 13:15:44 · 544 阅读 · 0 评论 -
IPC机制(一)
最近在了解Service时接触到Android IPC,IPC全称是Inter-Process Communication,意思是进程间通信,当然也包括了跨进程通信。要了解IPC,首先需要知道的是Android中开启多进程模式的方式。开启多进程想要在一个应用程序中开启多个进程,在Android中有这一种方法:即在AndroidMenifest.xml中给四大组件指定一个android:process原创 2016-08-24 15:23:42 · 890 阅读 · 0 评论 -
关于Volley二次封装的一些想法
最近忙于课程和项目,好久没有更新博客了。最近在项目中使用了Volley框架来请求数据,一开始接触Volley感觉使用起来挺简单,只需几个简单的操作就可以实现发送请求。以StringRequest 为例://创建一个请求队列RequestQueue requestQueue = Volley.newRequestQueue(this); String url = "这里是请求的链接.原创 2016-05-24 20:20:16 · 777 阅读 · 1 评论 -
深入探索AsyncTask
关于AsyncTask,相信大家都不陌生。由于Android UI线程的不安全性,所以如果想要在子线程中更新UI,就必须使用异步消息处理的方式。之前研究了Handler的处理机制(http://blog.csdn.net/u010429311/article/details/51288479),对于AsyncTask的理解还是挺有帮助的。在这里,我们继续深入的理解AsnycTask的工作原理。在此之原创 2016-05-01 14:24:00 · 833 阅读 · 0 评论 -
探索Handler机制原理
众所周知,Android是不能在主线程进行耗时操作,否则会抛出ANR(应用程序无响应)异常。于是,我们在程序开发中就会广泛地使用Handler来实现异步消息的处理,如读取网络数据并加载到程序的UI界面中。Handler的运行需要MessegeQueue和Looper的支撑,关于其三者的关系,接下来将通过源码来具体分析。 首先,我们来看一个使用Handler的情况:public class Main原创 2016-04-30 23:03:07 · 1956 阅读 · 0 评论 -
Android触屏分发机制(一)
面试学校工作室HCI时曾被要求写类似知乎的界面逻辑,其中遇到了一个问题就是layout的onTouch和button的onClick冲突,解决的方法便是了解触屏分发机制。这段时间查阅了许多资料,具体了解Android的触屏分发机制是怎么实现的。 按钮的点击事件相信大家闭着眼睛都能写得出来了:btn.setOnClickListener(new View.OnClickListener() {原创 2016-03-25 13:49:25 · 892 阅读 · 0 评论 -
Android触屏分发机制(二)
在上一篇博客中讲到了Button的点击事件处理,即View的点击事件是如何分发的,那么这篇文章更深入的理解触屏分发机制,讲述ViewGroup是如何实现的。大家可能都知道各种布局如RelativeLayout,LinearLayout都是继承自ViewGroup,简单来说它是View的集合,就像一个RelativeLayout包含了许多控件一样。其关系如图所示。 关于ViewGroup和Vie原创 2016-03-25 14:32:10 · 815 阅读 · 0 评论 -
Android任务和返回栈完全解析,细数那些你所不知道的细节
本博客转自:http://blog.csdn.net/guolin_blog/article/details/41087993任务和返回栈一个应用程序当中通常都会包含很多个Activity,每个Activity都应该设计成为一个具有特定的功能,并且可以让用户进行操作的组件。另外,Activity之间还应该是可以相互启动的。比如,一个邮件应用中可能会包含一个用于展示邮件列表的Acti转载 2016-04-03 17:19:38 · 784 阅读 · 0 评论 -
ListView的优化方法性能对比
相信大部分像笔者一样的初学者在开发android项目时会使用到ListView来加载多个相同类型的条目。 ListView是一个常见的组件,能够以列表的形式展示内容。说到ListView,就不得不提及Adapter(适配器),Adapter的作用是ListView界面与数据之间的桥梁,当列表里的每一项添加到界面中,都会调用Adapter的getView()方法返回一个View。 但问题来了,如果原创 2016-03-20 14:23:19 · 821 阅读 · 0 评论 -
LayoutInflater的正确用法
Layout inflation是在android系统中使用的术语,当XML布局资源被解析并转换成View对象时会用到。 在Android SDK中,LayoutInflater是经常使用到的,但你也许会感到惊讶当你发现了一个LayoutInflater的使用误区,而且你的APP可能正在使用这种错误方式!当你的程序在使用LayoutInflater时,如果你写过像下面的代码:inflater.in翻译 2016-04-03 16:46:57 · 7447 阅读 · 0 评论 -
解决ListView下拉刷新时导致图片闪烁问题
说ListView是一个难用的组件并不为过。最近在开发项目时遇到这样一个问题:当使用ImageLoader异步加载ListView的图片时,下拉刷新就会导致ListView中的图片闪烁。于是,经过几番测试,发现问题在于下拉刷新时会不断地重新计算ListView的LayoutParams导致不断执行getView()方法,最终出现了图片闪烁问题。 经过上网查找资料,最终解决了该问题,主要有两个解决方原创 2016-04-13 20:02:53 · 4902 阅读 · 0 评论 -
Android使用DrawerLayout和ToolBar实现仿知乎侧滑菜单
侧滑菜单现在在很多app上都可以看到,以下文章主要讲如何实现实现Android的侧滑菜单。可以先看一个简单的侧滑菜单设计。 示例图: 从屏幕左端向右滑动或点击左上角按钮可打开侧滑栏菜单。具体实现activity_main.xml<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout原创 2016-01-23 21:44:06 · 6677 阅读 · 0 评论 -
Android中GridView实现长按多选功能
前言:GridView可用于展示多行多列的统一格式数据,但本身没有多选操作。现通过一系列代码实现GridView的长按多选操作,可以先看一个示例图。 以下是实现该功能的主要代码: MainActivity.javapackage com.mygridview;import android.app.AlertDialog;import android.content.DialogInterf原创 2016-02-24 22:56:27 · 6243 阅读 · 2 评论 -
结合Tab,ViewPager,Fragment实现简单分页滑动
在APP设计当中,使用ViewPager和Fragment来实现分页滑动并不少见,该设计可以利用少量的空间来实现多内容的展示。效果图如下: 一下是实现该功能的代码:MainActivitypublic class MainActivity extends AppCompatActivity { private ViewPager viewPager; @Override原创 2016-04-06 11:13:41 · 2586 阅读 · 0 评论 -
实现带标题的ListView
在一些项目中,往往有要求为ListView里的内容分类,比如按日期分类,就要把相同日期的项目放在一起。可以看一些示例图,会清楚一些: 以上根据标题来进行分类,实现代码如下:首先是数据项的模型:public class Data { private String text1, text2, text3; //数据1 2 3 public Data(String text1, Str原创 2016-04-25 21:06:05 · 10938 阅读 · 6 评论