美文网首页
谈谈 mScrollX

谈谈 mScrollX

作者: ivolianer | 来源:发表于2016-04-14 14:02 被阅读426次


属性的意义

/**

* The offset, in pixels, by which the content of this view is scrolled

* horizontally.

* {@hide}

*/

@ViewDebug.ExportedProperty(category="scrolling")

protected intmScrollX;

手机的展示区域是有限的。当所需展示内容过宽时,有一部分就会被隐藏。

而 mScrollX 就是用来表示被隐藏部分的宽度。

直观的例子1

这是 4 个高宽皆为 300 像素的正方形,并排放置在一个线性布局中。

宽度仅有 1080 像素的手机无法完整地展示整个布局,黄色正方形的一部分超出了屏幕。

findViewById(R.id.view).scrollTo(300,0);

使用 scrollTo 改变 mScrollX 为 300。

理解方式一,线性布局滚动了 300 像素。

理解方式二,线性布局被隐藏的部分是 300 像素。

直观的例子2

Paint paint= new Paint();

@Override

protected void onDraw(Canvas canvas) {

paint.setAntiAlias(true);

paint.setColor(Color.RED);

canvas.drawCircle(150,150,100,paint);

}

View 高宽皆为 300 像素,背景紫色,绘制的内容是居中的红色小圆。

findViewById(R.id.custom).scrollTo(150,0);

滚动的只是内容,mScrollX 对背景没有影响。

原理的揣测

final intscrollX =mScrollX;

final intscrollY =mScrollY;

if((scrollX | scrollY) ==0) {

background.draw(canvas);

}else{

canvas.translate(scrollX,scrollY);

background.draw(canvas);

canvas.translate(-scrollX,-scrollY);

}

当绘制背景时,有意的调整了 canvas 的原点。

这说明在绘制背景前 canvas 的原点已经发生了改变。

具体源码尚未找到。

相关文章

  • 谈谈 mScrollX

    属性的意义 /*** The offset, in pixels, by which the content of...

  • Scroller原理

    Scroller类,改变mScrollX和mScrollY值,实现视图内部平缓偏移。View的scrollTo和s...

  • View坐标系

    1.View静态坐标 MotionEvent触摸事件坐标、 2.View中的滑动坐标系 mScrollX = ge...

  • View#scrollBy(int x , int y)反向

    先看下源码 了解了scrollBy( x , y)就是在原来的基础上,改mScrollX为x,改为mScrollY...

  • mScrollX 在draw时的处理

    想当然时在draw(canvas)的时候对canvas进行了translate结果仍是没有找到。 然后查看了4.0...

  • 趁月儿还没升起来

    趁月儿还没升起来 来吧,我们谈谈 谈谈夜的黑和黑的夜吧 来吧,我们谈谈 谈谈逝去的容颜 谈谈老去的爱情 谈谈手指的...

  • 白话诗‖想和人谈谈

    文/王小方 想谈谈关于爱 想谈谈关于恨 想谈谈关于伤感 想谈谈关于死亡 —— 想谈谈目空一切 想谈谈愤世嫉俗 想...

  • 今日份0821

    今日份,舒适。 老朋友相见,分外开心:谈谈工作,谈谈生活,谈谈孩子,谈谈困惑,谈谈近期心得… 前行的路上,有你有我...

  • 谈谈谈谈耳机

    听音乐有两种人。一种在乎音乐本身,认为只要音乐好就能打动人。另一种在乎声音,认为若听不到完美无缺的声音如何能辨别好...

  • 我有个恋爱想和你谈谈

    我有个恋爱想和你谈谈谈谈遇见你以前我生活的快乐与难过我有个恋爱想和你谈谈谈谈遇见你当时我的怦然心动与无措我有个恋爱...

网友评论

      本文标题:谈谈 mScrollX

      本文链接:https://www.haomeiwen.com/subject/tbpglttx.html