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、可能是重擊導致焊點接觸不良,也可能是電路有斷線,這種情況只能前往修理部維修手機了,只需將手機的焊點重新焊接或者直接更換觸摸屏幕即可,價格不是很貴,注意不要被蒙騙。