自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

motionEnabled

两个步骤

  • 博客(31)
  • 收藏
  • 关注

原创 Android进阶-多个ViewPager嵌套时事件传递的处理

Android进阶-多个ViewPager嵌套时事件传递的处理先来看一下图: 复杂的UI框架图: 2.5, 2, 4 - 对事件响应的要求 可以看出共有3个ViewPager(分别称为vpOut, vpMiddle, vpInner)和一个SlidingMenu 其中,vpOut是不可以滑动的,它是跟随下面的RadioButtond的点击事件而改变的(实现方法是,继承

2015-11-19 20:47:16 1182

原创 Android进阶-复杂的UI框架(一)

Android进阶-复杂的UI框架(一) 先来看一下, 要构建的这个比较复杂的UI框架的大体构建, 与其所构建的页面 主页面的构建 在MainActivity中使用Fragment: LeftFragment 与 ContentFragment 为了以后数据沟通的方便, 在MainActivity中暴露了两个Fragment的访问方法 //在

2015-11-19 20:45:07 607

原创 Android进阶- 触摸事件的分发机制

Android进阶- 触摸事件的分发机制先来看一下,触摸事件传递的3个方法onInteceptTouchEvent(): 返回true表示拦截这次触摸事件, false表示不拦截dispatchTouchEvent(): 用来分发事件, 如果事件被拦截则交给onTouchEvent(): 处理触摸事件,返回true表示事件被消耗, false表示没有对触摸事件进行处理 那么,Androi

2015-11-19 20:38:27 279

原创 Android进阶- 触摸事件的分发机制

Android进阶- 触摸事件的分发机制先来看一下,触摸事件传递的3个方法onInteceptTouchEvent(): 返回true表示拦截这次触摸事件, false表示不拦截dispatchTouchEvent(): 用来分发事件, 如果事件被拦截则交给onTouchEvent(): 处理触摸事件,返回true表示事件被消耗, false表示没有对触摸事件进行处理 那么,Androi

2015-11-19 20:38:08 440

原创 Android进阶-纯粹自定义控件二

Android进阶-纯粹自定义控件二本文来看一下自定义ViewGroup需要注意哪些。 以自定义的一个侧滑菜单为例。 图例: 关键点 既然是自定义的ViewGroup, 那么的话,控件的具体内容肯定不是要考虑的事情 这个ViewGroup应考虑的是 我们这个ViewGroup有何特点? -> 子View的行为 如何完成自己的 onMeasure(), onLa

2015-11-19 20:36:42 278

原创 Android进阶-自定义控件一

Android进阶-自定义控件一自定义控件的分类组合控件:将系统原生控件组合起来,加上动画效果,形成一种特殊的UI特效纯粹自定义控件:继承系统View,自己去实现View效果旋转动画的注意点 当x,y坐标相对于自己时,x与y的大小为0-1; RotateAnimation.setFillAfter(true); 使动画结束后保持结束状态 RotateAnimation.setSta

2015-11-19 20:35:09 316

原创 Android项目-Widget

Android项目-Widget App Widgets是一个小的应用控件,它能够嵌入在其他的应用中(像主屏幕),并且可以周期性的更新。 能够拥有widget的应用程序被叫做App Widget host,简单创建widget (具体内容在开发文档中写的很详细) 1.创建一个AppWidget类,继承AppWidgetProvider(这个类继承自BroadcastReceiver)

2015-11-19 20:33:38 276

原创 Android进阶-点击事件的响应问题

Android进阶-点击事件的响应问题 为什么我们有时在XML文件中明明给一个控件设置了点击事件却不响应? 如何制止ListView的点击事件被抢走?不同的控件Android系统对于其点击事件的默认时不同的有些控件默认是不可以点击的例如TextView如果想要在XML中配置这种控件响应点击事件应配置两个属性 clickable = “true”onClick = “eventName

2015-11-19 20:33:00 458

原创 Android进阶-各种Manager(一)

Android进阶-各种Manager(一)PackageManager这个类可以用于获取各种已经安装了的应用包的信息, 简单使用: /这个类方法,将得到系统所有应用的信息/ public static Map<String, List<AppInfo>> getSystemAppInfo(Context context){ Map<String, List<AppI

2015-11-19 20:32:22 309

原创 Android项目-PopupWndow与应用的启动与卸载

Android项目-PopupWndow与应用的启动与卸载PopupWindow我们可以使用一个PopupWindow来显示任何View,可以理解为,一个PopupWindow是一个浮在当前activity上的容器。下面代码,简单的创建了一个PopupWndow //创建一个只带窗体的PopupWindow, 当这个PopupWindow显示在Activity上时,它所显示的内容都由conte

2015-11-19 20:31:22 403

原创 Android项目-快捷方式

Android项目-快捷方式如何在桌面上创建一个快捷方式呢? 桌面也是一个App,要想在桌面上创建一个快捷方式得靠他 在Android的系统应用程序Launcher2中提供了一个广播接收者:InstallShortcutReceiver 我们可以通过给他发送一个安装快捷方式的广播,来安装我们的App的快捷方式/* *创建一个可以快速打电话的快捷方式 */public cla

2015-11-19 20:30:36 330

原创 Android进阶-如何避免频繁修改UI代码

Android进阶-如何避免频繁修改UI代码问题: 当我们的UI展示代码和业务代码混在一起时, 如果频繁修改UI需求, 那么的话我们就要频繁修改UI代码!但是这并不是一件有趣的事情!!!而是一件会使人产生暴力倾向的事情!!那么如何解决呢? 1. 将业务代码中的需要展示UI的代码去掉,提供一个UI接口 2. 外部调用业务方法时,实现这个接口,即如何刷新UI界面例如: public cla

2015-11-19 20:30:00 717

原创 Android进阶-分页与分批及XUtils的注解来代替findViewById

Android进阶-分页与分批及XUtils的注解来代替findViewByIdPoint1 使用ListView完成分页与分批 核心思想当然都是,获取数据,在ListView中展示涉及的数据库语句: SELECT * FROM INFOS LIMIT ? OFFSET ?但区别是: 分页的数据是在改变的分批的数据是不断增加的例如 List infos; infos中放有我们要展

2015-11-19 20:29:12 613

原创 Android进阶-子线程中刷新UI的讨论

Android进阶-子线程中刷新UI的讨论我们经常会遇到这个错误 -> 不可以在主线程之外更新UI android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views。一般,我们将耗时操作,都放在子线程中。但

2015-11-19 20:28:19 425

原创 Android进阶-控件的触摸与点击

Android进阶-控件的触摸与点击Point1 在Android中,onClick、onLongClick的触发是和ACTION_DOWN及ACTION_UP相关的,在时序上,如果我们在一个View中同时覆写了onClick、 onLongClick及onTouchEvent的话,onTouchEvent是最先捕捉到ACTION_DOWN和ACTION_UP事件的,其次才可能触发onCl

2015-11-19 20:27:03 882

原创 Android进阶-双击&多击事件

Android进阶-双击&多击事件双击事件,我们可以很容易的想到怎么做: 可以根据两个单击事件之间的时间间隔来确定多击事件。 例如下面代码:public class MainActivity extends Activity { private long firstClickTime; @Override protected void onCreate(

2015-11-19 20:25:33 398

原创 Android进阶-悬浮窗

Android进阶-悬浮窗需求如标题,那么怎么做出这个效果呢? -> 主要依赖WindowManeger我们使用WindowManeger,也可以把自己定义的一个控件(悬浮窗),可以在其他应用最上层,甚至手机桌面最上层显示窗口。 调用的是WindowManager继承自基类的addView方法和removeView方法来显示和隐藏窗口 悬浮窗口并不受activity的影响,他是隶属于启动它的应用

2015-11-19 20:24:06 717 1

原创 Android进阶-控件的拖拽

Android进阶-控件的拖拽需求:使控件可以再屏幕上自由拖拽。思路: - 可以在 View.setOnTouchListener()中监听控件的触摸事件,在触摸事件中我们应做以下处理 - 记下控件的起始坐标 (ACTION_DOWN) - 计算控件的移动偏移量 (ACTION_MOVE) - 更新控件的位置 (

2015-11-19 20:23:24 1171

原创 Android进阶-Android自带APIDemo与震动器

Android进阶-Android自带APIDemo与震动器API-Demo在android-sdk\samples\android-14\ApiDemos下有许多Android为他的特性提供的Demo。 在学习android时, 我们可以经常去看看这个API Demo, 看看有什么我们感兴趣, 可以学习的东西, 然后单独学习一下。 可以把APIDemo 导入到eclipse中, 然后安装到真

2015-11-19 20:22:21 447

原创 Android进阶-Adminastration与手机定位

Android进阶-Adminastration与手机定位Adminastration我们可以使用它来管理、控制我们的Android设备。在Android系统上,我们可以查看所拥有的设备管理器, 一般在手机的安全设置选项中。那么具体怎么使用呢?(怎么创建一个设备管理器应用) 我们可以使用Adminastration的API去编写一个管理应用安装在设备, 然后这个应用就可以对设备进行管理。 比如:

2015-11-19 20:21:02 365

原创 Android进阶-屏幕滑动和获取手机联系人

Android进阶-屏幕滑动和获取手机联系人屏幕滑动如何使Activity之间的切换通过手势滑动来完成呢? 使用onTouchEvent()吗? 好像是可行? 但复杂的处理用户动作算法该由你自己来实现了, 可爱的Google已经帮我们实现了, 我们可以使用GestureDetetor对象来完成这件事。实现步骤:将onTouchEvent()委托给GestureDetetor来处理。注册Gest

2015-11-19 20:19:08 504

原创 C-函数杂谈

C-函数杂谈函数的由来 程序 = 数据 + 算法 C程序 = 数据 + 函数 C语言推动了模块化程序设计的产生 面向过程的程序设计(模块化) -> 核心: 函数 面向过程是一种以过程为中心的编程思想 首先将复杂的问题分解为一个个容易解决的问题 分解后的问题可以按步骤一步步解决 函数是面向过程在C语言的实现 解决问题的每个步骤可以用函数事项函数参数 函数参

2015-11-14 22:15:29 301

原创 C-程序的组成

C-程序的组成堆、栈和静态存储区栈栈是现代计算机程序中的最为重要的概念之一栈在程序中用于维护函数调用的上下文,没有栈就没有函数,就没有局部变量 函数参数、函数的返回地址局部变量、函数调用上下文函数在被调用时,在栈中是以一个栈帧的形式存在的,栈分为升栈和降栈,不同架构,栈是不同的. T1堆堆是程序中一块巨大的内存空间,可由程序自由使用, 使用时必须申请堆中被程序申请使用的内存在程序主

2015-11-14 22:14:18 387

原创 C-动态内存分配与野指针

C-动态内存分配与野指针动态内存分配为什么需要动态内存分配C语言中的一切操作都是基于内存的变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定 比如,定义数组时,必须指定数组的长度,而数组的长度是在编译器就决定的当时,当我们的程序运行是,我们可能会需要一些额外的内存空间malloc,calloc和reallocmalloc所分配的是一块连续的内存,以字节为单位,并不带任何类型

2015-11-14 22:13:55 439

原创 C-复杂的声明的阅读

C-复杂的声明的阅读C语言中有许多魔鬼般的声明,让人看到就害怕, 比如: int ((*p)(int))[5]; 这里p是个什么玩意你知道吗?? 其实,对于C语言中的复杂声明,我们只要掌握了一定阅读原则,想知道这个声明到底声明什么东西就很简单了阅读原则 前提: 他们的优先级你应该知道 数组的[]与函数的()有同样的优先级[]与()都是从左到由进行结合的的优先级低于 []与()

2015-11-14 22:12:48 328

原创 C-指针数组与数组指针

C-指针数组与数组指针说实话, C语言真的很让人蛋疼, 它不像面向对象的语言, 我们重心在设计程序上。 而使用C语言, 你不仅要考虑程序的设计, 你还要考虑很多他的使用细节,不然一不小心你怎么死的都不知道。 但是,个人感觉,C语言的魅力是其他任何语言都比不了的!!!, 继续看。。。基本点 数组类型 C语言中数组有自己特定的类型数组的类型有元素类型和数组大小共同定义, 例如 int ar

2015-11-14 22:11:17 262

原创 C- 函数与指针

C- 函数与指针基本点 函数类型 C语言中函数有自己的特定类型函数的类型由返回值,参数类型和参数个数和参数顺序决定int add(int i, char j) 的类型为 int(int, char)typedef来定义函数类型 语法: typedef type name(parameter list)例如 typedef int f(int, int) -> f为函数类型 in

2015-11-14 22:10:34 323

原创 C-动态在堆上申请二维数组

C-动态在堆上申请二维数组 想要成功的动态在堆上申请二维数组成功,应真的明白二维数组的机构 1. 二维数组的每一维都是一个一维数组 2. 对于 int a[3][3], 那么代表一维数组的常量指针分别为: a[0], a[1], a[2] 3. 二维数组的大小: 一维数 * 二维数下面手工分配二维数组: a[2][2]: #include <stdio.h>

2015-11-14 22:09:51 845

原创 C-指针与数组

C-指针与数组指针要点 本质是一个变量, 需要占用一定内存空间, 他被用来保存内存的地址值占用4字节内存空间(32位机), ->即指针占用的字节数, 应能够访问计算机的所有内存地址指针是有类型的, 之所以有类型是为了让CPU在根据指针访问内存时知道该如何取用内存(取多大)在指针声明的地方,表示所声明的变量为指针在指针使用时, 表示取指针所指向内存的值在根据指针取值时, 会依据指针的类型

2015-11-14 22:08:42 305

原创 C-字符串

C-字符串基本点从概念上讲, C语言中没有字符串数据类型在C语言中,是使用字符数组来模拟字符串C语言中的字符串都是以’\0’结束的字符数组C语言中的字符串可以分配与栈空间、堆空间或者只读存储区字符串的长度问题 字符串的长度就是字符串中所包含的字符的个数C语言中的字符串的长度指的是第一个’\0’前的字符个数即C语言是通过’\0’结束符来确定字符串的长度经典小例子strlen函数的实现

2015-11-14 22:07:12 332

原创 C-#与##

C-#与##Point1 (#) #符号用作一个预处理运算符,可以把宏参数转换为字符串,我们可能有下面这个需求 #define Squre1(x) printf("The square of " #x" is %d \n", ((x)*(x))); #define Squre2(x) printf("The square of x is %d \n", ((x)

2015-11-14 22:05:38 353

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除