小宝与康熙粤语,青鱼的做法,爱知世博会
弹性滑动原理
将一次大的滑动非为若干次小的滑动,并在一个时间段内完成。更好的用户体验
实现方式很多种,包括用scroller,动画,延时策略.
使用handler实现弹性滑动
效果可以看到按钮button向滑动。注意这里是将view的内容改变。
你可以试一试将button外层的relitivelayout去掉,把id放在button下。发现是button的文字滑动
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <relativelayout android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="300dp" android:layout_alignparentright="true" android:layout_alignparenttop="true"> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentright="true" android:layout_alignparenttop="true" android:text="button" /> </relativelayout> </relativelayout> import android.os.bundle; import android.os.handler; import android.os.message; import android.widget.relativelayout; public class mainactivity extends activity { private static final int message_scroll_to = 1; private static final int frame_out = 30; private static final int delayed_time = 30; private relativelayout button; private int mcount; private handler handler = new handler(){ public void handlemessage(message msg){ switch (msg.what) { case message_scroll_to: mcount++; if (mcount <= frame_out) { float fraction = mcount / (float)frame_out; int scrollx =(int) (fraction * 100); button.scrollto(scrollx, 0); handler.sendemptymessagedelayed(message_scroll_to, delayed_time); } break; default: break; } } }; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button = (relativelayout) findviewbyid(r.id.button1); handler.sendemptymessagedelayed(message_scroll_to, delayed_time); } }
以上所述是小编给大家介绍的android使用handler实现view弹性滑动,希望对大家有所帮助
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论