A. android 手势操作中滑动和滚动的区别
滑动一般是左右,滚动是上下,而且滑动操作范围有限,滚动范围比较大
B. android滑动开关按钮实现方式有几种
起初我在Android上我只会使用CheckBox去满足对应的功能。后来,查看开发文档发现,android也有了自己的原键游生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来拦亮空十分简单的ToggleButton,可是它们只是简瞎带有切换效果,而不带有滑动切换效果,并且Switch控件只支持高版本的系统,对于2.3就不支持。所以,要想看如何实现滑动切换的效果,必须了解这些控件的实现方式。下面,让我们查看下android开发文档,看看这些是如何实现使用的。
C. 怎么样有滑动效果 android
android的滑动效果是通过View容器类ViewFlipper来实现的。
ViewFilpper是Android官方提供的一个View容器类,继承于ViewAnimator类,用于实现页面切换,也可以设定时间间隔,让它自动播放。
又ViewAnimator继承至于FrameLayout的,所以ViewFilpper的Layout里面可以放置多个View,继承关系如下:
1、activity的写法如下:
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.GestureDetector;
importandroid.view.MotionEvent;
importandroid.view.ViewGroup.LayoutParams;
importandroid.view.animation.Animation;
importandroid.view.animation.AnimationUtils;
importandroid.widget.ImageView;
importandroid.widget.ViewFlipper;
.view.GestureDetector.OnGestureListener{
privateint[]imgs={R.drawable.img1,R.drawable.img2,
R.drawable.img3,R.drawable.img4,R.drawable.img5};
=null;
privateViewFlipperviewFlipper=null;
privateActivitymActivity=null;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mActivity=this;
viewFlipper=(ViewFlipper)findViewById(R.id.viewflipper);
gestureDetector=newGestureDetector(this);//声明检测手势事件
for(inti=0;i<imgs.length;i++){//添加图片源
ImageViewiv=newImageView(this);
iv.setImageResource(imgs[i]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
viewFlipper.addView(iv,newLayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
}
viewFlipper.setAutoStart(true);//设置自动播放功能(点击事件,前自动播放)
viewFlipper.setFlipInterval(3000);
if(viewFlipper.isAutoStart()&&!viewFlipper.isFlipping()){
viewFlipper.startFlipping();
}
}
@Override
publicbooleanonTouchEvent(MotionEventevent){
viewFlipper.stopFlipping();//点击事件后,停止自动播放
viewFlipper.setAutoStart(false);
returngestureDetector.onTouchEvent(event);//注册手势事件
}
@Override
publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){
if(e2.getX()-e1.getX()>120){//从左向右滑动(左进右出)
AnimationrInAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_right_in);//向右滑动左侧进入的渐变效果(alpha0.1->1.0)
AnimationrOutAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_right_out);//向右滑动右侧滑出的渐变效果(alpha1.0->0.1)
viewFlipper.setInAnimation(rInAnim);
viewFlipper.setOutAnimation(rOutAnim);
viewFlipper.showPrevious();
returntrue;
}elseif(e2.getX()-e1.getX()<-120){//从右向左滑动(右进左出)
AnimationlInAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_left_in);//向左滑动左侧进入的渐变效果(alpha0.1->1.0)
AnimationlOutAnim=AnimationUtils.loadAnimation(mActivity,R.anim.push_left_out);//向左滑动右侧滑出的渐变效果(alpha1.0->0.1)
viewFlipper.setInAnimation(lInAnim);
viewFlipper.setOutAnimation(lOutAnim);
viewFlipper.showNext();
returntrue;
}
returntrue;
}
@Override
publicbooleanonDown(MotionEvente){
returnfalse;
}
@Override
publicvoidonLongPress(MotionEvente){
}
@Override
publicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX,floatdistanceY){
returnfalse;
}
@Override
publicvoidonShowPress(MotionEvente){
}
@Override
publicbooleanonSingleTapUp(MotionEvente){
returnfalse;
}
}
2、main.xml配置文件:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ViewFlipper
android:id="@+id/viewflipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
以上完成了手势滑屏:
手势滑动屏幕动画,是通过android.view.GestureDetector类检测各种手势事件实现的,该类有两个回调接口(Interface)
A、GestureDetector.OnDoubleTapListener,用来通知DoubleTap双击事件,类似于鼠标的双击事件,接口三个抽象回调函数如下
1、onDoubleTap(MotionEvent e):DoubleTap双击手势事件后通知(触发)
2、onDoubleTapEvent(MotionEvent e):DoubleTap双击手势事件之间通知(触发),包含down、up和move事件(这里指的是在双击之间发生的事件,例如在同一个地方双击会产生DoubleTap手势,而在DoubleTap手势里面还会发生down和up事件,这两个事件由该函数通知)
3、onSingleTapConfirmed(MotionEvent e):用来判定该次点击是SingleTap而不是DoubleTap,如果连续点击两次就是DoubleTap手势;那么如果只点击一次,系统等待一段时间后没有收到第二次点击则判定该次点击为SingleTap而不是DoubleTap,此时触发的就是SingleTapConfirmed事件
D. android 怎么修改滑动的灵活度
安卓的触屏灵敏度是无法设置调整的,包括修改,如若遇到触屏不灵敏,可按以下方法调节:
1、只需将手机断开电源,停止正在充电的操作,这样手机就会重新可以正常使用,不再受到电流的影响,手机触摸不灵敏的情况就会瞬间打破。
2、手机自身进水了的情况也会存在,可以尝试将手机放在盛有满满大米的密封罐内,直至手机被大米覆盖,使得水分被干燥剂(大米)吸干,放个几天即可。
3、还有一种情况是手机系统故障,可以恢复出厂设置试试,或拿到特约维修店刷机,如果对刷机很熟的话就可以自己刷了,还省去刷机费用。
4、可能是重击导致焊点接触不良,也可能是电路有断线,这种情况只能前往修理部维修手机了,只需将手机的焊点重新焊接或者直接更换触摸屏幕即可,价格不是很贵,注意不要被蒙骗。