- 浏览: 707593 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
葫芦瓢:
葫芦瓢 写道专注IT 写道请问楼主demo中为什么是Custo ...
Android Scroller简单用法 -
葫芦瓢:
专注IT 写道请问楼主demo中为什么是CustomView中 ...
Android Scroller简单用法 -
u011493452:
注册账号给楼主点赞!
Android Scroller简单用法 -
jiduoduo:
整理的不错!
Android文件存储 -
xiaofeng0817166:
http://deerchao.net/tutorials/r ...
Java正则表达式应用
scrollTo()和scrollBy()都是View的public成员函数,使用这两个函数可以达到同样的目的,只是使用方式不同。
public void scrollBy (int x, int y),将View的Content偏移(x,y)。x控制左右方向的偏移,y控制上下方向的偏移。例如当x>0,y=0时,向右移动x像素,当x<0,y=0时,向左移动x像素,而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。
public void scrollTo (int x, int y),将View的Content的位置移动到(x,y),而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。
举个例子说明情况,这个例子有两个控件可以Scroll,一个是TextView,一个是ListView,另外用两个Button控制scroll的方向(向上或向下)
main.xml
实验的结果是:调用scrollTo()和scrollBy()可以到达预想的效果,但是因为用手指在ListView上拖动时,ListView也会滚动,貌似和scrollTo()/scrollBy()冲突,在android2.2和4.0上都有问题。所以最好不要在ListView上调用这两个函数,以免出现莫名奇妙的问题。同样也不能通过getScrollY()获取ListView滚动的位置。
public void scrollBy (int x, int y),将View的Content偏移(x,y)。x控制左右方向的偏移,y控制上下方向的偏移。例如当x>0,y=0时,向右移动x像素,当x<0,y=0时,向左移动x像素,而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。
public void scrollTo (int x, int y),将View的Content的位置移动到(x,y),而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。
举个例子说明情况,这个例子有两个控件可以Scroll,一个是TextView,一个是ListView,另外用两个Button控制scroll的方向(向上或向下)
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:text="@string/hello" android:layout_marginBottom="100dip" android:layout_width="fill_parent" android:layout_height="60dp" android:gravity="center" /> <Button android:id="@+id/up" android:text="UP" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <Button android:id="@+id/down" android:text="DOWN" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" android:entries="@array/names"/> </LinearLayout>
package com.ipjmc.demo.scroll; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; public class ScrollActivity extends Activity implements View.OnClickListener{ private static final String TAG = "Hello"; private Button mUp, mDown; private TextView mTextView; private ListView mListView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView) findViewById(R.id.text); mUp = (Button) findViewById(R.id.up); mDown = (Button) findViewById(R.id.down); mListView = (ListView) findViewById(R.id.list); //预先向下滚动到50,在android2.2上,可以用手指拖动一下ListView感受一下效果 mListView.scrollTo(0, 50); mUp.setOnClickListener(this); mDown.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.up: //向上滚动 mTextView.scrollBy(0, 10); mListView.scrollBy(0, 10); Log.i(TAG, "mTextView.getScrollY() = " + mTextView.getScrollY() + ", mListView.getBaseline() = " + mListView.getScrollY()); break; case R.id.down://向下滚动 mTextView.scrollBy(0, -10); mListView.scrollBy(0, -10); Log.i(TAG, "mTextView.getScrollY() = " + mTextView.getScrollY() + ", mListView.getBaseline() = " + mListView.getScrollY()); break; default: break; } } }
实验的结果是:调用scrollTo()和scrollBy()可以到达预想的效果,但是因为用手指在ListView上拖动时,ListView也会滚动,貌似和scrollTo()/scrollBy()冲突,在android2.2和4.0上都有问题。所以最好不要在ListView上调用这两个函数,以免出现莫名奇妙的问题。同样也不能通过getScrollY()获取ListView滚动的位置。
发表评论
-
Android Notification的使用
2012-10-20 19:28 9778Android 4.1 (Jelly Bean ... -
短信拦截
2012-09-25 20:40 2093最近写一个应用(A),需要拦截短信分析。一般是 ... -
Android Scroller简单用法
2012-08-01 16:35 65893Android里Scroller类是为了实现Vi ... -
Android 使用WebView.loadData中文乱码解决办法
2012-07-19 15:09 9602博主在使用WebView的loadData方法时发 ... -
Android HttpClient基本使用方法
2012-07-05 14:15 107900这里只介绍如何使用HttpClient发起GET或者POST请 ... -
Android XML定义颜色
2012-06-09 13:15 0在res/colors.xml中添加如下代码: 定义C ... -
Activity和Task的设计思路和方法
2012-03-29 20:20 1261Activity和 Task是 Android ... -
显示PopupWindow
2012-03-16 10:04 16679PopupWindow可 ... -
存储文件的ContentProvider
2012-03-08 23:37 9413基于SQLite的ContentProvider ... -
Android文件存储
2012-03-08 22:34 19478Internal Storage内部存储空 ... -
Android 使用Notification
2012-03-07 10:26 2245用惯了Android的人在刚拿到iPhone的 ... -
Android用软键盘将整个界面推上去
2012-03-04 17:11 35908在Android UI中 ... -
onInterceptTouchEvent和onTouchEvent调用时序
2012-02-11 23:42 1073onInterceptTouchEvent() ... -
使用ConnectivityManager监听网络状态变化
2011-12-24 11:16 29860mIntenFilter = new IntentFilte ... -
Window Manager
2012-03-22 23:51 1559Android的窗口机制基于WindowManager,可以通 ... -
CommonsWare Android Components
2011-12-17 16:10 1767CommonsWare Android Com ... -
Android中图片缩放
2011-12-17 00:09 1933下载的图片如果过大,可能导致内存溢出。需要做压 ... -
Android 使用Parcelable序列化对象
2011-12-16 23:43 36608Android序列化对象主要有两种方法,实现S ... -
PreferenceActivity
2011-12-12 22:54 923传送门:http://www.cnblogs.com/wser ... -
Android 新浪微博授权
2011-12-11 17:13 7513OAuth方式 通过网页方式授权 实现方法,三个步骤 1.使用 ...
相关推荐
与`scrollTo`不同,`scrollBy`允许开发者进行增量滚动,每次调用都会累积之前的滚动距离,因此可以用于实现连续的滚动效果。同样,`scrollBy`也不会自动添加动画。 3. `Scroller`类: `Scroller`是Android提供的一...
android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明 对应的博文地址:http://blog.csdn.net/vipzjyno1/article/details/24577023
1. 使用scrollTo/scrollBy 只能影响View的内容移动,并不能改变View本身的位置 2. setX , setY: 设置控件相对于父控件位置 3. 动画 2. Api 综合理解: getRawX: 获取当前控件相对于屏幕原点坐标 getX: 获取当前...
在Android开发中,View类提供了两个关键方法,用于在用户交互或者编程时改变View的位置,它们分别是`scrollTo`和`scrollBy`。这两个方法在处理滚动操作时扮演着重要角色,但它们的工作原理和使用场景有所不同。 ...
Android View api - scrollTo(),scrollBy(),getScrollX(), getScrollY(),博客地址:http://blog.csdn.net/amoscxy/article/details/77191151
3. **Scroller**:Scroller是为了弥补scrollTo和scrollBy的滑动效果不佳,它可以与View的computeScroll配合,实现平滑的滚动动画效果,提高用户体验。 4. **ScrollTo与ScrollBy**:ScrollTo执行绝对滑动,将View的...
本文将详细介绍三种实现View滑动的方法:ScrollBy/ScrollTo、动画(Animation)以及修改LayoutParams。 1. **ScrollBy/ScrollTo方法** `ScrollBy()` 和 `ScrollTo()` 是 Android 中 View 类提供的两个方法,用于...
- `scrollTo/scrollBy`:移动View的内容,而不是View本身。`scrollBy`会使内容相对于当前视图位置移动。 - `Scroller`:配合`computeScroll`方法实现平滑滚动效果,它提供了一个插值计算过程,用于在重绘期间逐步...
2. **View与ViewRoot的关联** - 在`handleResumeActivity`时,`Activity`的`onResume`方法被调用。 - `WindowManager`将`DecorView`设置给`ViewRootImpl`。 - 此时`DecorView`加载到了`Window`中。 3. **View的...
2. **offsetTopAndBottom(offsetY)**:与`offsetLeftAndRight`类似,`offsetTopAndBottom`用于在垂直方向上移动View。`offsetY`参数决定View在垂直方向上的位移。正数意味着View向下移动,负数则表示向上移动。同样...
总结一下,`scrollTo()`和`scrollBy()`方法都是用来改变View的偏移量,但它们的区别在于: - `scrollTo()`是相对于初始位置进行滚动,将视图移动到指定坐标。 - `scrollBy()`是基于当前偏移量进行滚动,相对于当前...
android view 中滚动scrollTo和scrollBy mScrollX:表示离视图起始位置的x水平方向的偏移量 mScrollY:表示离视图起始位置的y垂直方向的偏移量 分别通过getScrollX() 和getScrollY()方法获得。 注意:mScrollX和...
在Android开发中,自定义View时常常需要处理滑动效果,本文将探讨三种常见的实现滑动的方法:通过scollTo和scrollBy与Scroller的配合、使用动画以及改变LayoutParams。每种方法都有其适用场景,下面我们将逐一进行...
首先自己想了下Android要滚动的那就是scroller类或者scrollto、scrollby结合了,或者view.layout()方法,或者使用动画。但是要循环滚动,貌似这些到最后一行滚动到第一行都有往回滚的效果,都不是很好的解决方法。...
可以使用`scrollBy()`或`scrollTo()`方法来实现滚动。 4. **动画(Animation)**:为了让滚动效果更加平滑,我们可以使用Android的动画框架,如ValueAnimator或ObjectAnimator,来实现内容的平滑滚动。 5. **数据...
- `scrollTo()`和`scrollBy()`:滚动View的内容,而不是View本身的位置,注意参照物的区别。 - `Scroller`:不直接滑动View,而是提供平滑滚动的计算,配合`computeScroll()`方法实现视图滚动。 2. **View的事件...
computeScroll()是在View的draw的时候调用的,而invalidate会导致View重绘,所以在重写computeScroll()之后,我们要使用invalidate()来间接调用它。 过程为:invalidate()->draw()->computeScroll() 3、...
view的滑动在安卓中特别多,基本有三种方式: 1.通过view本身提供的scrollTo/scrollBy方法实现滑动。 2.通过给view添加平移动画实现滑动。 3.通过改变view的layoutparams使得view重新布局,从而实现滑动。