Android进阶
named tree
这个作者很懒,什么都没留下…
展开
-
触摸事件拦截机制
触摸事件,就是捕获触摸屏幕后产生的事件。 Android为触摸实事件封装了一个类---MotionEvent, 在这个类中封装了很多东西, 比如触摸点的坐标 event.getX() 等方法获取坐标点, 再比如获得点击事件类型, 可以通过不同的Action (如 Motion Event.ACTION_DOWN) 来进行区分, 实现不同逻辑。 我们知道Android的View 结构是树形结构...原创 2018-06-29 19:20:46 · 1010 阅读 · 0 评论 -
实现滑动的7种方法
通过一个案例, 来看看在Android 中该如何实现滑动效果。 定义一个View, 并置于一个LinearLayout 中, 实现一个简单布局, 代码如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" and...原创 2018-07-07 10:54:35 · 3393 阅读 · 0 评论 -
android:configChanges属性总结
android中的组件Activity在manifest.xml文件中可以指定参数android:ConfigChanges,用于捕获手机状态的改变。在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。设置方法:将下列字段用“|”符号分隔开...原创 2018-07-04 19:30:28 · 24735 阅读 · 0 评论 -
PendingIntent 概述
PendingIntent 是某个不确定的时刻发生的意图, 而Intent 是立刻发生。PendingIntent 典型的应用场景是给 RemoteViews 添加单击事件, 因为RemoteViews 运行在远程进程中, 因此 RemoteViews 不同于普通的View, 所以无法直接通过 setOnClickListener 方法来设置单击事件。 PendingIntent 通过sen...原创 2018-07-09 21:31:21 · 229 阅读 · 0 评论 -
RemoteViews
RemoteViews 表示的是一个View结构,它可以在其他其他进程中显示, 系统也提供了一系列操作用于对于它的跨进程更新界面。 RemoteViews 在Android 中的使用场景有两种: 1、通知栏。 2、 桌面小部件。 通知栏主要是通过NotificationMAnager 的 notify 方法来实现的, 它除了默认效果外, 还可以另外定义布局。 桌面小部件是通过AppW...原创 2018-07-09 20:48:16 · 183 阅读 · 0 评论 -
自定义ViewGroup
ViewGroup存在的意义就是为了对其子View 进行管理, 为其子View 添加显示, 响应的规则。 因此通常需要重写 onMeasure() 对子View 进行测量, 重写 onLayout() 方法来确定子View 的位置, 重写onTouchEvent() 方法增加响应事件。 通过下面例子, 实现一个类似ScrollView 的自定义 ViewGroup, 在ViewGroup 能够...原创 2018-07-01 20:53:21 · 412 阅读 · 0 评论 -
自定义View
在自定义View时, 我们通常会去重写onDraw() 方法来绘制View的显示内容。 如果该View使用wrap_content 属性, 那么还必须重写 onMeasure()方法。 另外可以通过自定义attrs 属性,可以设置新的属性配置值。 如下: 在View中通常有以下一些比较重要的回调方法: onFinishInflate(): 从XML加载组件后回调。 ...原创 2018-06-30 13:58:00 · 145 阅读 · 0 评论 -
ViewGroup的测量和绘制
ViewGroup的测量: ViewGroup会去管理其子View, 其中一个管理项目就是负责子view的显示大小。 当ViewGroup 的大小为wrap_content时, ViewGroup 就需要对子View进行遍历, 以便获得所有子View的大小, 从而来决定自己的大小。 其他模式下, 具体指决定大小。 通过调用子View 的Measure 方法来获得每一个子View 的测量结果。...原创 2018-06-30 13:44:39 · 258 阅读 · 0 评论 -
View的测量与绘制
MeasureSpec类, 这是一个32位的int值,前两位为测量的模式,View类默认的测量view方式为onMeasure() , 通过MeasureSpec类可以获得View的测量模式与和View想测量的大小, 有了这些信息我们就可以控制view最后显示的大小。@Override protected void onMeasure(int widthMeasureSpec, in...原创 2018-06-11 11:36:37 · 264 阅读 · 1 评论 -
自定义View的分类
大体可分为4类:一、继承View 重写onDraw 方法: 这种方法用于实现一些不规则效果, 往往需要静态或者动态地显示一些不规则的图形。 这需要通过绘制的方式实现, 即重写onDraw(), 需要自己支持wrap_content, padding依=也需要自己处理。二、继承ViewGroup 派生特殊的Layout: 主要用于实现自定义的布局, 即除了LinearLayout、 Rel...原创 2018-07-07 23:15:30 · 330 阅读 · 0 评论