首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发(13) 移动View

概述 我们常用的linearlayout,等都属于流布局,在流布局中如何移动控件呢? 我决定做个尝试。虽然可以使用绝对布局,但我不倾向使用这个布局。那么看看我的方式吧。 ?...我们就用来它来控制控件的位置,改动它的值将会产生移动的效果。...通过上面的方式,我们可以产生控件移动的效果。 ScrollBy方式 同时,我们了解下 ScrollBy这个方法,该方法可以产生控件的滚动效果。而看起来移动了该控件的子内容。...执行代码后,我们看到产生了 类似 滚动条移动后,控件 上移 的效果。看起来像是重绘了视图内容,而变化了绘制的坐标原点。 类似的还有个scroolTo方法,该方法需要指定目的偏移量。...; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup

67000
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    浅谈移动View 的显示过程

    作者:个推安卓开发工程师 一七 随着科技的发展,各种移动端早已成为人们日常生活中不可或缺的部分,人们使用移动端产品工作、社交、娱乐……移动端界面的流畅性已经成为影响用户体验的重要因素之一。...那么你是否思考过移动端所展现的流畅画面是如何实现的呢? 本文通过对移动View显示过程的简略分析,帮助开发者了解View渲染的逻辑,更好地优化自己的APP。...MeasureSpec 是一个 int 值,它存储着两个信息:低 30 位是 View 的 specSize,高 2 位是 View 的 specMode。...观察 View 的 measure() 方法,可以发现该方法是被 final 修饰的,因此 View 的子类只能够通过重载 onMeasure() 方法来完成自己的测量逻辑。...总结 移动端技术发展很快,而画面显示优化是一个持续发展的实践课题,贯穿于每个开发者的日常工作中。未来,个推技术团队将继续关注移动端的性能优化,为大家分享相关的技术干货。

    68620

    浅谈移动View 的显示过程 顶

    作者:个推安卓开发工程师 一七 随着科技的发展,各种移动端早已成为人们日常生活中不可或缺的部分,人们使用移动端产品工作、社交、娱乐……移动端界面的流畅性已经成为影响用户体验的重要因素之一。...那么你是否思考过移动端所展现的流畅画面是如何实现的呢? 本文通过对移动View显示过程的简略分析,帮助开发者了解View渲染的逻辑,更好地优化自己的APP。 ?...View 的绘制流程 View 的绘制是从 ViewRootImpl 的 performTraversals() 方法开始的,其整体流程大致分为三步,如下图所示: ?...MeasureSpec 是一个 int 值,它存储着两个信息:低 30 位是 View 的 specSize,高 2 位是 View 的 specMode。...总结 移动端技术发展很快,而画面显示优化是一个持续发展的实践课题,贯穿于每个开发者的日常工作中。未来,个推技术团队将继续关注移动端的性能优化,为大家分享相关的技术干货。

    61120

    Android自定义圆形View实现小球跟随手指移动效果

    本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下 一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动。...实现的思路: 1)自定义View,在onDraw中画圆作为小球; 2)重写自定义View的onTouchEvent方法,记录触屏坐标,用新的坐标重新绘制小球; 3)在布局中引用自定义View布局,运行程序...,实现跟随手指移动效果。...继承View实现自定义View; 1)重写自定义View的三个构造方法 2)初始化自定义属性 3)对自定义属性对象做回收资源逻辑的处理 4....; import android.view.View; import android.view.WindowManager; /** * 自定义圆形小球view:手指在屏幕上滑动,红色的小球始终跟随手指移动

    1.8K30

    自定义View(八)-View的工作原理- View的measure

    同Activity的布局加载了解了整个View树加载的流程。最后是通过View的三大流程来实现布局的显示的。那么我们这篇来讲下布局的三大流程之一-->measure。...精确模式,父容器已经检测View所需要的精确大小,View的最终大小就SpecSize所指定的值。...默认大小的宽高和父View传递的测量规格重新计算View的测量宽高。...同时对于普通View针对不同的父容器和View本身不同的LayoutParames,View就可以有多重MeasureSpec具体不同参照下表: ?...View的测量(1).png ---- 结语 View的测量基本上就是这样了。通过本章的学习,我们应该掌握测量的流程和里面重要的方法,这样我们在自定义View的时候才会更的得心应手。

    74110

    Android View体系(九)自定义View

    相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四...)从源码解析Scroller Android View体系(五)从源码解析View的事件分发机制 Android View体系(六)从源码解析Activity的构成 Android View体系(...七)从源码解析View的measure流程 Android View体系(八)从源码解析View的layout和draw流程 前言 学习了以上的文章后,接下来我们来讲讲自定义View,自定义View一直被认为是高手掌握的技能...1.自定义View简介 自定义View按照笔者的划分,分为两大类,一种是自定义View,一种是自定义ViewGroup;其中自定义View又分为继承View和继承系统控件两种。...2.继承系统控件的自定义View 这种自定义View在系统控件的基础上进行拓展,一般是添加新的功能或者修改显示的效果,一般情况下我们在onDraw()方法中进行处理。

    791100

    自定义View(九)-View的工作原理- View的layout()和draw()

    前言 上一节我们将View的测量流程理的差不多了,这篇我们来看下View的剩下的2大流程layout(布局)和draw(绘制)。...View树layout绘制流程.png 到此View的绘制也就完成了。下面我们来看下draw(绘制)。...3.绘制视图View的内容onDraw 第三步是调用onDraw()方法绘制内容。发现是一个空的方法,也就是说所有View继承View的控件都要重写这个方法来实现对自己内容的绘制。...View绘制6步分析.png 我们在来总结几个关于View绘制相关的知识点: 父类View绘制主要是绘制背景,边框渐变效果,进度条,View具体的内容绘制调用了onDraw方法,通过该方法把View内容的绘制逻辑留给子类去实现...因此,我们在自定义View的时候都一般都需要重写父类的onDraw方法来实现View内容绘制。

    2.9K20

    自定义View必备知识-View绘制流程

    View绘制的流程框架 如图所示 ? View的绘制是从上往下一层层迭代下来的。...的位置; offsetLeftAndRight直接改变的是left, right, 相当于在parent中左右平移View的位置; View的边界直接发生了变化,又因为View和他的子View的相对位置没变...从View的测量、布局和绘制原理来看,要实现自定义View,根据自定义View的种类不同,可能分别要自定义实现不同的方法。...ViewGroup,若不重写,就会执行和单子View中相同逻辑,不会测量子View。一般会重写onMeasure()方法,循环测量子View。...与内置的view不同,自定义的view可以使得程序仅仅测量这一部分,这避免了遍历整个view的层级结构来计算大小。

    1.7K30

    View 事件分发

    clickable为false才可以不能点击,不响应事件,否则之前设置还是可以点击,但是设置false之后,但是还会产生一闪一闪变化        click.setClickable(false); View...Defensive cleanup for new gesture         stopNestedScroll();     } //onFilterTouchEventForSecurity判断当前View...方法返回值 当控件是enabled,也就是说setEnabled(true)并且onTouch方法返回true,那么dispatchEvent就返回true,而onTouchEvent方法就不会执行 View...) == LONG_CLICKABLE)             || (viewFlags & CONTEXT_CLICKABLE) == CONTEXT_CLICKABLE; //如果当前view...事件分发面试问题 事件分发中的 onTouch 和 onTouchEvent 有什么区别,该如何使用 这两个方法都是在 View 的 dispatchTouchEvent 中调用的,onTouch 优先于

    62910

    View事件分发

    以Activity为例,使用setContentView(View view)来指定要显示的内容,不过参数view并非是Activity最终显示到Window的ViewTree。...这里声明以下概念: 任意一个pointer的按下定义为down事件; 任意一个pointer的移动定义为move事件; 任意一个pointer的抬起定义为up事件; 第一个down事件,意味着触摸操作的开始...对方法View.dispatchTouchEvent()的调用一方面传递事件给view,其返回结果又表明了此view是否处理了事件。...NOTE: 一个View收到并处理某个触摸点的down事件后,那么即便之后触摸点移动View之外,或在View的范围之外离开屏幕,此View也会收到相应的move、up事件,不过收到的事件中触摸点的...任何手指的移动,触发ACTION_MOVE。 非最后一个手指离开,触发ACTION_POINTER_UP。 最好一个手指离开,触发ACTION_UP。

    1.3K60
    领券