Android使用Handler实现View弹性滑动
程序员文章站
2024-03-07 20:36:33
弹性滑动原理
将一次大的滑动非为若干次小的滑动,并在一个时间段内完成。更好的用户体验
实现方式很多种,包括用scroller,动画,延时策略.
使用han...
弹性滑动原理
将一次大的滑动非为若干次小的滑动,并在一个时间段内完成。更好的用户体验
实现方式很多种,包括用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弹性滑动,希望对大家有所帮助
上一篇: ASP.net Textbox的技巧使用