`
熊滔爱孟涛静
  • 浏览: 124748 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android常用方法重写

阅读更多

 

Android的view组件显示主要经过mesure, layout和draw这三个过程。在mesure阶段里调用mesure(int widthSpec, int heightSpec)方法,这个方法是final不能被重写,在这个过程里会调用onMesure(int widthSpec, int heightSpec)方法。当组件设置好大小后,调用final layout(int l, int t, int r, int b)方法进行布局,在这个过程里会调用onLayout(boolean changed, int l, int t, int r, int b)方法,所以处理组件的布局通常要重写onMesure和onLayout这两个方法。

    View组件的绘制会调用draw(Canvas canvas)方法,这个方法在源代码里看不到在哪里调用...draw过程中主要是先画Drawable背景,对drawable调用setBounds()然后是draw(Canvas c)方法.有点注意的是背景drawable的实际大小会影响view组件的大小,drawable的实际大小通过getIntrinsicWidth()和getIntrinsicHeight()获取,当背景比较大时view组件大小等于背景drawable的大小,不过俺没有在源代码里找到布局时调用过 getIntrinsicWidth()和 getIntrinsicHeight()方法...

    画完背景后,draw过程会调用onDraw(Canvas canvas)方法,然后就是dispatchDraw(Canvas canvas)方法, dispatchDraw()主要是分发给子组件进行绘制,我们通常定制组件的时候重写的是onDraw()方法。值得注意的是ViewGroup容器组件的绘制,当它没有背景时直接调用的是dispatchDraw()方法, 而绕过了draw()方法,当它有背景的时候就调用draw()方法,而draw()方法里包含了dispatchDraw()方法的调用。因此要在ViewGroup上绘制东西的时候往往重写的是dispatchDraw()方法而不是onDraw()方法,或者自定制一个Drawable,重写它的draw(Canvas c)和 getIntrinsicWidth(),

getIntrinsicHeight()方法,然后设为背景。

 

Android的事件重写。。。。未完待续

 

   

分享到:
评论

相关推荐

    安卓Android源码——重写listview实现下拉刷新.zip

    本压缩包"安卓Android源码——重写listview实现下拉刷新.zip"就是针对这一需求提供的一种解决方案。 首先,我们来理解下拉刷新这一概念。下拉刷新是一种常见的移动应用设计模式,用户通过在ListView顶部向下拉动,...

    Android 常用画图方法练习

    这篇博客"Android 常用画图方法练习"可能涵盖了如何在Android平台上利用Canvas、Paint等工具进行图形绘制的技术要点。以下是对这些知识点的详细说明: 1. **Canvas与Paint** - **Canvas** 是Android中用于在Bitmap...

    android应用源码Android重写listview实现下拉刷新.zip

    在Android应用开发中,ListView是一种常用的视图组件,它允许用户滚动显示大量数据项。本教程将通过一个名为"android应用源码Android重写listview实现下拉刷新.zip"的压缩包,深入探讨如何在Android中自定义ListView...

    Android 侧滑重写HorizontalScrollView

    在Android开发中,`HorizontalScrollView`是一个非常常用的控件,它允许用户水平滚动视图,类似于垂直方向上的`ScrollView`。然而,系统默认的`HorizontalScrollView`可能无法满足某些复杂需求,比如侧滑动效果的...

    Android仿ViewPager(重写HorizontalScrollView)

    在Android开发中,ViewPager是一个非常常用的组件,它用于展示多个页面并允许用户通过左右滑动来切换页面。然而,有时我们需要实现一些自定义的功能,这时就需要对基础组件进行扩展或重写。本教程将深入探讨如何重写...

    Android中ImageView的常用方法一览.pdf

    以下是关于Android中ImageView的一些常用方法的详细说明: 1. **setOnClickListener(View.OnClickListener l)**:这个方法是View类中的继承方法,用于为ImageView设置点击事件监听器。当用户点击ImageView时,传入...

    android常用基本功能实现方法

    ### Android 常用基本功能实现方法详解 在Android开发过程中,掌握一些基本控件的创建与使用是非常重要的。本文将详细介绍如何实现Android中的常见功能,包括创建按钮、输入框、文本视图以及如何设置它们的属性等。...

    android开发中常用的3中菜单

    在实现上下文菜单时,需要在Activity中注册要显示上下文菜单的视图,并重写`onCreateContextMenu(Menu menu, View v, ContextMenuInfo menuInfo)`方法来创建菜单,以及`onContextItemSelected(MenuItem item)`方法来...

    android一些常用技术和类

    自定义View时,可以重写`onDraw()`方法进行定制绘制。动画分为属性动画(Property Animation)和视图动画(View Animation),属性动画更强大,能改变对象的任意属性。 5. **多线程与异步处理**: Android的主线程...

    学习:Android常用控件

    这篇博客"学习:Android常用控件"可能涵盖了Android SDK中的一些核心组件,这些组件是开发者构建用户界面不可或缺的部分。博客可能详细介绍了如何使用、自定义以及优化这些控件以提升用户体验。 首先,Android的...

    android应用源码Android重写listview实现下拉刷新.zip源码资源下载

    在Android开发中,ListView是常用的一种视图组件,用于展示大量数据列表。然而,随着用户交互体验需求的提升,单纯的基础ListView已经无法满足下拉刷新和上拉加载更多的功能。这个压缩包“android应用源码Android...

    android常用控件大全

    以下是对Android常用控件及相关的基础知识的详细说明: 1. **Android文件结构**: - `src`文件夹:包含项目的Java源代码,每个类对应一个`.java`文件。 - `res`文件夹:存放项目的各种资源,包括: - `drawable`...

    Android 重写Listview实现左滑删除功能

    在Android开发中,ListView是常用的数据展示组件,用于显示大量数据列表。为了增强用户体验,许多应用都实现了左滑删除的功能,这通常是通过自定义ListView的Adapter来实现的。本项目"Android 重写Listview实现左滑...

    Android 用户界面之重写onKeyDown方法

    有一些常用的方法,你可以在你的Activity中进行重写: 下面的例子重写了一些在activity中的方法,通过这个例子展示用户如何与众多的activity进行交互。 onKeyDown onKeyUp onMenuItemSelected onMenuOpened ...

    Android常用对话框的封装

    本文将详细讲解如何封装Android中的九种常用对话框,并提供实际应用的指导。 首先,我们来看看这九种常见的Android对话框类型: 1. **普通对话框(AlertDialog)**:基础对话框,可以包含标题、内容和按钮,通常...

    viewpager重写

    在Android开发中,ViewPager是一个非常常用的组件,常用于实现页面间的滑动切换,例如在TabLayout或者轮播图等场景中。"viewpager重写"这个主题涉及到对ViewPager的自定义改造,以便满足特定需求。在这个场景下,...

    android常用图片特效处理.zip

    这个"android常用图片特效处理.zip"压缩包很可能包含了实现各种图片特效的代码示例、教程或者库,帮助开发者在毕业设计或项目实战中实现类似的功能。下面我们将深入探讨Android中图片特效处理的一些关键知识点。 1....

    android常用图片特效处理_Android.rar

    这个“android常用图片特效处理_Android.rar”压缩包可能包含了多个与Android平台图片处理相关的资源和代码示例,让我们来深入探讨一下Android中常用的图片特效处理技术。 1. **Bitmap操作**: Android提供了...

    Android开发 - 常用控件

    这篇博客"Android开发 - 常用控件"可能详细介绍了Android开发中的一些核心控件及其使用方法。由于没有直接提供博客的具体内容,我将根据Android开发中常见的控件类型和相关知识点进行阐述。 1. **按钮(Button)**:...

Global site tag (gtag.js) - Google Analytics