当前位置: 移动技术网 > IT编程>移动开发>Android > Android使用Handler实现View弹性滑动

Android使用Handler实现View弹性滑动

2019年07月24日  | 移动技术网IT编程  | 我要评论

小宝与康熙粤语,青鱼的做法,爱知世博会

弹性滑动原理

将一次大的滑动非为若干次小的滑动,并在一个时间段内完成。更好的用户体验

实现方式很多种,包括用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弹性滑动,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网