Android view的位移滑动

2024-04-24 12:08
文章标签 android 位移 view 滑动

本文主要是介绍Android view的位移滑动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android view的位移滑动

基础

Android view的移动不管特效多么绚丽,都是view控件的基础移动实现的。

方式:

  1. scrollTo/scrollby: view控件内容移动。
  2. 动画:给view实现移动效果。
  3. LayoutParams: 使view重新布局实现view移动。

1: scrollBy/scrollTo

1.1: 内容左边界
  1. View:对于单个view,内容左边界就是文字图片等的左边界。eg:botton可以很大但他的内容显示可能就一个单词,

    而内容左边界就是这个单词的左边起始位置。

  2. ViewGroup:以单个view的理解,ViewGroup的内容左边界就是它包裹的控件的左边界。

1.2 scrollBy/scrollTo滑动

view 控件内容的滑动,eg: ScrollView包裹的控件,Button上显示的文字,但控件自身的位置不会改变。

	// scrollBy scroolTo源码public void scrollBy(int x, int y) {scrollTo(mScrollX + x, mScrollY + y);}public void scrollTo(int x, int y) {if (mScrollX != x || mScrollY != y) {int oldX = mScrollX;int oldY = mScrollY;mScrollX = x;mScrollY = y;invalidateParentCaches();onScrollChanged(mScrollX, mScrollY, oldX, oldY);if (!awakenScrollBars()) {postInvalidateOnAnimation();}}}

这里mScrollx/mScrolly是view内容已经滑动的距离可由get方法获取,从源码可以看出.

  1. scrollBy是在现有基础上滑动x, y距离。
  2. scrollTo是滑动到x, y位置。
方向

上述两个方法都是对mScrollx/mScrolly进行操作的,

  1. mScrollx : 已view内容左边界为准,向左滑为正,向右滑为负。
  2. mScrolly: 已view内容上边界为准,向上滑为正,向下滑为负。

即左上为正,右下为负。

2. 动画

使用动画操作的是view的translationX与translationY属性。可以使用传统动画或者属性动画。

 TranslateAnimation animation = new TranslateAnimation(0f, 0f, 0f, 150f);animation.setDuration(1500);view.startAnimation(animation);

3. 布局参数LayoutParams

RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)
mTvLayoutParam.getLayoutParams();
layoutParams.topMargin = layoutParams.topMargin + 50;
mTvLayoutParam.requestLayout();

直接代码改变view的布局参数从根本上改变view的位置,

mTvTranslate.offsetTopAndBottom(50);

这个方法根本上也是对LayoutParams的改变,只是在原有的LayoutParams上进行了加减。

4. 源码

MoveViewActivity

这篇关于Android view的位移滑动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/931711

相关文章

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl