关于View的ScrollTo, getScrollX 和 getScrollY

操作系统课程项目 OS project —— Pintos from Project 1 to Project 3 Pintos Project 陪伴我们操作系统课程大半个学期了…… 虽然做了这么长时间,个人能力有限,pintos代码,看过的可能也就看懂了一半吧,更不用说没看过的了…… 但是也找到了一些有价值的资料,整理一下,供后辈们参考…… 关于环境的问题,最好是用ubuntu 16.04 windows用户不要折腾装双系统了,特别是win10,动不动更新一下,说不定双系统就出问题了,linux... 阅读详情

当利用 Scroller 去滑动屏幕或者扩展 ScrollView 的时候,总是会用到 getScrollX 和 getScrollY 去获取当前View 滑动到的位置,那么getScrollX() 和 getScrollY() 获取的到底是什么呢? 

由于getScrollX 和 getScrollY 本质 上是一样的东西,下面只说明一下getScrollX, 一般是在屏幕上面左右划动的时候会去获取这个值。

请看下图:

图上面,褐色的框,其实就是我们眼睛看到的手机界面,就是一个窗口。

而绿色的长方体呢,就是一块可以左右拉动的幕布啦,其实也就是我们要显示在窗口上面的内容,它其实是可以很大的,大到无限大,只是没在窗口中间的,所以我们就看不到。

而getScrollX 其实获取的值,就是这块 幕布在窗口左边界时候的值了,而幕布上面哪个点是原点(0,0)呢?就是初始化时内容显示的位置。

所以当我们将幕布往右推动的时候,幕布在窗口左边界的值就会在0的左边(-100),而向左推动,则其值会是在0的右边(100)。

下面以一个实际例子来看一下。

随便在优快云上面截了一下图,

我们在一个LinearLayout 里面定义了三个TextView 来显示 getScrollX() 的值,三个ImageView来显示图片, 都是指向同一张图片,布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    android:orientation="vertical" >
	<TextView
        android:id="@+id/textView"
        android:textColor="#FFFFFF"
        android:textSize="16sp"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"/>
    <ImageView 
        android:id="@+id/scrollImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/scroll_testing"
        android:contentDescription="Testing Scrolling"/>
    <TextView
        android:id="@+id/textViewToRight"
        android:textColor="#FFFFFF"
        android:textSize="16sp"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"/>
    <ImageView 
        android:id="@+id/scrollImageViewToRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/scroll_testing"
        android:contentDescription="Testing Scrolling"/>
    <TextView
        android:id="@+id/textViewToLeft"
        android:textColor="#FFFFFF"
        android:textSize="16sp"
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"/>
    <ImageView 
        android:id="@+id/scrollImageViewToLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/scroll_testing"
        android:contentDescription="Testing Scrolling"/>

</LinearLayout>

然后我们在Activity 中,分别对下面两张ImageView 进行 scrollTo 操作,然后获取其getScrollX()  的值,放到对应的TextView 上面,其代码如下:

public class ScrollActivity extends Activity{

	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.scroll_layout);
		
		ImageView imageView = (ImageView) findViewById(R.id.scrollImageView);
		TextView textView = (TextView) findViewById(R.id.textView);
		textView.setText("getScrollX() = " + imageView.getScrollX());
		
		ImageView imageViewToRight = (ImageView) findViewById(R.id.scrollImageViewToRight);
		imageViewToRight.scrollTo(-100, 0);
		TextView textViewToRight = (TextView) findViewById(R.id.textViewToRight);
		textViewToRight.setText("getScrollX() = " + imageViewToRight.getScrollX());
		
		ImageView imageViewToLeft = (ImageView) findViewById(R.id.scrollImageViewToLeft);
		imageViewToLeft.scrollTo(100, 0);
		TextView textViewToLeft = (TextView) findViewById(R.id.textViewToLeft);
		textViewToLeft.setText("getScrollX() = " + imageViewToLeft.getScrollX());
	}
}

下面是运行后的效果

可以看到,正如上面所说的,向右滚动的时候,等于是把背后的幕布向右推动,使得没有内容的幕布(X < 0)显示出来, 而向左滚动,则是把幕左向左推动,让右边的内容(X > 0)移到窗口的左边缘上。

在View上面还一个叫ScrollBy的函数,跟ScrollTo的区别在于,ScrollTo 是 到那个位置,ScrollBy 是经过这段位置,这个从英文的To 跟 By 来理解就很简单了。

从补码原理到实践:RISC-V中addi指令的符号扩展机制详解 本文深入解析了RISC-V架构中addi指令的符号扩展机制。从补码的数学原理出发,详细阐述了12位立即数在指令编码中如何通过符号位进行扩展,并结合lui指令,揭示了加载任意32位立即数的正确方法与实践陷阱,帮助开发者编写高效可靠的底层代码。 阅读详情

相关推荐

OpenCompass实战:从零部署大模型评测平台,量化模型能力选型

在大模型技术选型与评估中,客观、可量化的评测体系是工程实践的关键。其核心原理在于通过标准化的数据集、统一的评测方法与自动化流程,将主观的模型体验转化为可比较的指标数据。这种评测框架的技术价值在于解决了模型能力评估的模糊性问题,为开发者提供了模型选型、效果对比与迭代优化的科学依据。典型的应用场景包括对比不同开源模型在代码生成、逻辑推理等特定任务上的性能,或是评估微调后模型在业务数据集上的提升效果。OpenCompass作为开源的大模型全能力评测平台,正是这一理念的工程化实现。它通过模块化的四层流水线架构和配置

weixin_28725037的博客 626

Android getScrollX()详解

在开发中相信大家在自定义View时会时不时的使用getScrollX()方法,为了便于之后的开发工作,本篇博客主要记录了我对getScrollX()方法的理解。 getScrollX:Return the scrolled left position of this view意思是返回当前滑动View左边界的位置,其实获取的值就是这块幕布在窗口左边界时的x坐标,而幕布上面哪个点是原点(0,0)呢

znouy的博客 7216

Python实战:3步搞定DICOM转JPG/PNG(附批量处理脚本)

本文详细介绍了如何使用Python在3步内将DICOM医学影像转换为JPG/PNG格式,并提供了批量处理脚本。通过Pydicom、Pillow和NumPy库的组合,解决了像素值处理、批量转换效率和医学图像特性保留等关键问题,适合医疗AI开发者和放射科医生快速集成到工作流中。

numpy6sculptor的博客 590

View 的getX、getLeft、getTranslationX、getScrollX、offsetLeftAndRight含义分析

View 的getX、getLeft、getTranslationX、getScrollX含义分析 参考https://blog.youkuaiyun.com/tanktu/article/details/12752747 getLeft 是子view相对于父组件的坐标位置,是layout的位置; getTranslationX 是指view的偏移量,这个值没有改变view的实际位置,点击事件等还是在原来的位...

ws6013480777777的博客 1664

从0到1用OpenClaw打造酒店收益管理系统:数据整合→AI策略迭代全链路落地实战

本文基于三亚某连锁海景酒店真实项目落地经验编写,系统上线3个月,酒店平均入住率从62%提升至80%,RevPAR(平均可售房收入)提升26%,淡季空置率降低46%,完全覆盖中小酒店全场景收益管理需求。本文配套OpenClaw全量Skill代码、工作流配置文件,可直接复用落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 491

【20】方案管理器

方案管理器是Excel中一个非常强大且灵活的工具,适合用于多情景分析和比较。在复杂的决策过程中,它可以帮助用户快速管理和评估不同变量组合下的结果,从而优化决策过程。

学习,输出==》再学习再输出 1585

View 中的getScrollX()方法

getScrollX()方法的计算公式为: mScrollX+=滑动距离。(左滑为正,右滑为负,mScrollX为getScrollX()方法的返回值,默认为0) ex: 第一次左滑200个单位,getScrollX()的结果就等于:mScrollX=0+(+200)=200; 第二次右滑150个单位 , getScrollX()的结果就等于 :mScrollX=200+(-150)=50

zss1973的博客 982

GameFramework框架详解之 DataTable配置表模块

一.前言: DataTable模块是项目的配置表模块,配置表一般是从excel导出csv/json/xml格式的,之所以是excel作为源文件,原因是因为策划同学使用配表最方便。然后一键导出到项目中,除了csv/json/xml配置文件外,一般还会伴随着导出配置的实体类,这样研发同学就可以使用了。GameFramework的DataTable模块也是秉持着这种一贯的策略来实现的。 二.DataRow DataRow在excel数据表中,对应的是一行数据,而在代码中对应的其实就是一条数据对象。 接口IData

TxNet 4724

【转载】关于View的ScrollTo, getScrollX 和 getScrollY

本文转载自:http://blog.youkuaiyun.com/linmiansheng/article/details/17767795 当利用 Scroller 去滑动屏幕或者扩展 ScrollView 的时候,总是会用到 getScrollX 和 getScrollY 去获取当前View 滑动到的位置,那么getScrollX() 和 getScrollY() 获取的到底是什么呢?

lim_dev的博客 304

【VS Code插件开发】通用功能(二)

本篇主要从command(命令)、menus(菜单)、快捷键三个方面讲解,都归于通用功能。

编码世界 1万+

富芮坤fr8008gp 240X280 lvgl项目启动

fr8008gp_240X280_lvgl项目启动

cheng___yi的博客 1757

android View的ScrollBy ScrollTo getScrollX getScrollY

调用scrollTo(100, 0)表示将View中的内容移动到x = 100, y = 0的位置,如下图所示。scrollBy(int x, int y)其实是对scrollTo的包装,移动的是相当位置。scrollTo(int x, int y)的源码和scrollBy(int x, int y)源码如下所示.理解了scrollTo(int x, int y)和scrollBy(int x, int y)的用法,就不难理解getScrollX() 和getScrollY()。

2401_89824877的博客 828

虚拟网络的“隐形盾”:C#如何用代码把DDoS踢出门?

本文分享了如何用C#防御DDoS攻击的实战经验。通过三种核心防御策略:1)基于IP的速率限制中间件,使用滑动时间窗口算法控制请求流量;2)自动IP封禁服务,通过特征检测识别恶意IP并加入黑名单;3)优化数据库连接池和HTTP客户端连接池,合理配置资源参数。文中提供了详细的C#代码实现,包括限流中间件、IP封禁服务和连接池优化方案,并分享了生产环境中的调优经验,如配合Redis实现分布式限流、使用fail2ban自动封禁等技巧,帮助开发者构建更健壮的防御体系。

墨夶的博客 329

图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()

Android系统手机屏幕的左上角为坐标系,同时y轴方向与笛卡尔坐标系的y轴方向想反。通过提供的api如getLeft , getTop, getBottom, getRight可以获得控件在parent中的相对位置。同时,也可以获得控件在屏幕中的绝对位置,详细用法可参考android应用程序中获取view的位置 当我们编写一些自定义的滑动控件时,会用到一些api如scrollTo(),scro

bigconvience的专栏 8万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android View的ScrollBy ScrollTo getScrollX getScrollY,安卓高级面试题及答案

针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!Android前沿技术大纲全套体系化高级架构视频Android高级架构资料、源码、笔记、视频。

2401_84149916的博客 636

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

getScrollX getScrollY详解

关于View的ScrollTo, getScrollX 和 getScrollY原创 2014年01月04日 20:03:39标签:android /ScrollTo /滚动 /getScrollX /getScrollY6174当利用 Scroller 去滑动屏幕或者扩展 ScrollView 的时候,总是会用到 getScrollX 和 getScrollY 去获取当前View 滑动到的位置,...

w3812127的博客 1888

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android中关于View的ScrollTo、ScrollBy

转: Android学习Scroller(一)——View调用scrollTo()的理解及使用 关于View的ScrollTo, getScrollX 和 getScrollY Android学习Scroller(一)——View调用scrollTo()的理解及使用 MainActivity如下: [java] view plain

wxx614817的专栏 1211

Android中View中的scrollTo(),scrollBy(),getScrollX(), getScrollY()详解

最近在写自定义View中,被scrollTo(),scrollBy(),getScrollerX()和getScrollY()这几个值给搞晕了,经常产生混淆,因此我就花点时间写一篇博客来详细解释这几个函数的含义。   在安卓的手机的屏幕中的坐标系是这样的,左上角为坐标系,向下为y轴,向右为x轴。 srollTo(int x,int y)srollTo(int x,int y)是将View中的内容偏

NewOrin 1402
上一篇: Git恢复操作
下一篇: environment variables
androidwifi
博客等级 码龄14年 17粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值