android上下滑動效果
㈠ Android上這種布局和聯動的滑動效果是怎麼做到的
CoordinatorLayout+AppBar,desgin包里的。正確的做法就是自己處理滑動事件。建議先了解一下View的事件傳遞機制。這個問題我遇到過,寫了個viewgroup解決這個問題。scrollview裡面放viewpager,布局的時候手動設置viewpager的高度。viewpager的指示器做兩個,一個放scrollview裡面,一個放scrollview外面。
老版本的網易雲音樂 曾經用過這個效果。以前實現過這樣的效果。ViewPager頂部有一個Layout。下面ViewPager中的每個ListView有一個空白的Header當前頁面上下滑動的時候動態的根據Y值去改變頂部的Layout的Y值。當頁面左右滑動完成之後, 根據當前ListView的Y值.重新絲滑的改變頂部Layout的Y值。現在有個開源項目也能實現類似的效果。
㈡ Android 左右滑動+上下滑動 怎麼實現
http://blog.csdn.net/ztp800201/article/details/14123131
看看這個,有源碼的
㈢ android RecyclerView四種滑動方式
我們使用recyclerview滑動最多的效果就是比如通訊錄右邊有字母,然後點擊某個字母,那個字母就顯示在最上面,這樣的效果主要當通訊錄裡面聯系人太多了,不好查找,還要用戶一個個去翻動,提高了效率.
這里說的四種是自己總結的,分別是:scrollBy(),scrollToPosition(),smoothScrollToPosition(),還有一個是LinearLayoutManager中的scrollToPositionWithOffset()
這個是每個View都有的方法,移動的是其內容,
這個是移動到可見范圍內,是瞬間完成的,給人感覺很生硬,比如:
表示第20個item條目在屏幕可見范圍內,但不是第20個條目在屏幕可見的最上面的.
和scrollToPosition() 效果是一樣的,只是不是瞬間完成的,我們看到方法前面有個smooth單詞就知道了,
這個才是真正定位到某個條目在屏幕可見范圍內.
㈣ android開發中,怎麼實現上下滑動,不是ScrollView,我要的是一次滑動整個頁面,跟橫向滑動效果一樣。。
直接用intent跳轉到下個頁面啊 判斷用戶有向上滑動的手勢 就跳轉 然後設置一個 跳轉的動畫效果就可以了..
㈤ android卡片上下切換特效
實現了在android實現左右滑動切換界面的效果
這是實現了在android實現左右滑動切換界面的效果,該效果的源碼下載,請到源碼天堂下載吧,喜歡的朋友可以研究一下。
布局文件
< xml version="1.0" encoding="utf-8" > <LinearLayout xmlns:android="; android:id="@+id/layContain" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="@drawable/bg" > <!-- android:background="#FFC0CB"--> <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <LinearLayout android:id="@+id/layFirst" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" android:layout_marginBottom="50dp" > </LinearLayout> <LinearLayout android:id="@+id/laySec" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" > </LinearLayout> <LinearLayout android:id="@+id/layThird" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" > </LinearLayout> <LinearLayout android:id="@+id/layFourth" android:layout_width="400px" android:layout_height="fill_parent" android:orientation="vertical" > </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="40dp" > <TextView android:id="@+id/roll_dot1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="50dp" android:textColor="#ffffff" /> <TextView android:id="@+id/roll_dot2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="50dp" android:textColor="#000000" /> <TextView android:id="@+id/roll_dot3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="50dp" android:textColor="#000000" /> <TextView android:id="@+id/
㈥ 怎麼樣有滑動效果 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事件
㈦ Android 怎麼去實現模擬網頁上下滑動
可以這樣,布局的話可以最外層的是個framelayout,上面嵌一個horizontalScrollview,對於horizontalScrollview左邊是透明的和屏幕同樣大小的view,右邊是你要顯示的內容,對於horizontalScrollview要重寫滑動事件,如果僅僅這樣的話,那麼最底層的菜單是無法點擊的,所以要在activity中重寫DispatchTouchEvent重新分配分發事件。同樣也可以實現列表中的手勢,因為他的android的觸摸事件是按層分發,直到找到消耗這個事件的那一層,然後實現onInteceptTouchEvent截斷,交給該層的onTouch函數處理。
㈧ android實現上下滑動
布局最外包一層滾動條
java"><ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
強制橫豎屏
在配置文件中對Activity節點添加android:screenOrientation屬性(landscape是橫向,portrait是縱向)