當前位置:首頁 » 安卓系統 » android滑屏

android滑屏

發布時間: 2023-02-03 07:59:51

A. 怎麼樣有滑動效果 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事件

B. android中怎麼實現滑動手機屏幕來代替相應的上下左右按鈕

直接上圖,
代碼
有一個問題,首頁就是第二排第二個可以上下滑動,但是在它上面卻不能左右滑動屏幕了,應該是焦點的問題,有大蝦解決了麻煩告知一下,在此謝過
已經解決了,再發一次

C. Android大神請進,怎麼實現手勢滑屏啊!下面是我寫的一段代碼,為什麼實現不了,求指教,謝謝!

想要實現滑動效果,首先需要接收MotionEvent事件,
你要添加的是
public boolean onTouchEvent(MotionEvent event) {
if( ges.onTouchEvent(event)){
return true;
}
return false;
}
這樣GestureDetector才能接收到手勢。
另外根據我的經驗,simpleGestureListener
中須繼承
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return true;
}
這樣onfing可以正常work了,調試一下就可以動起來了。
另外可以考慮用ViewFlipper來實現。

D. android平台中頁面切換時如果要用觸摸屏左右滑動,怎麼實現

左右滑動切換是通過viewPager來實現的,完整代碼查看附件。

ViewPager的數據是通過PageAdapter來裝載的:

1.調用adapter.notifyDataSetChanged(); 刷新控制項,但是要覆蓋PagerAdapter的getItemPosition方法,並返回return POSITION_NONE;

2.利用PagerAdapter的工作機制,就是PagerAdapter的執行順序,PagerAdapter作為ViewPager的適配器,無論ViewPager有多少頁,PagerAdapter在初始化時也只初始化開始的2個View,即調用2次instantiateItem方法。而接下來每當ViewPager滑動時,PagerAdapter都會調用destroyItem方法將距離該頁2個步幅以上的那個View銷毀,以此保證PagerAdapter最多隻管轄3個View,且當前View是3個中的中間一個,如果當前View缺少兩邊的View,那麼就instantiateItem,如里有超過2個步幅的就destroyItem。

3.每當Adapter調用instantiateItem時,運用View.setTag方法將該View標識。當需要更新這個View的數據時,通過調用ViewPager.findViewWithTag方法找到相應的View,然後更新View中的數據。

E. android 左右滑屏怎麼實現 哪位大神教教我

代碼如下:
package kexc.scroll;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.widget.Scroller;
/**
* 仿Launcher中的WorkSapce,可以左右滑動切換屏幕的類
*
*/
public class ScrollLayout extends ViewGroup {
/*
* onMeasure方法在控制項的父元素正要放置它的子控制項時調用。它會問一個問題,「你想要用多大地方啊?」,然後傳入兩個參數——
* widthMeasureSpec和heightMeasureSpec。它們指明控制項可獲得的空間以及關於這個空間描述的元數據。
* 比返回一個結果要好的方法是你傳遞View的高度和寬度到setMeasuredDimension方法里。
* 一個MeasureSpec包含一個尺寸和模式。
* 有三種可能的模式:
* UNSPECIFIED:父布局沒有給子布局任何限制,子布局可以任意大小。
* EXACTLY:父布局決定子布局的確切大小。不論子布局多大,它都必須限制在這個界限里。
* AT_MOST:子布局可以根據自己的大小選擇任意大小。
*/

F. android中怎麼實現左右滑屏(由於要顯示的東西特別大,又由於手機屏幕太小不能完全顯示),不要那種翻頁的

不存在這種軟體

G. android怎樣才能全屏滑動

Anroid scrollView實現豎型layout全屏滑動,使用如下屬性:

1、在AndroidManifest.xml的配置文件裡面的<activity>標簽添加屬性:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
2、在Activity的onCreate()方法中的super()和setContentView()兩個方法之間加入下面兩條語句:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉標題欄
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息欄
示例
方法一:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="test.ts.wader.image"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".ImageListActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

H. Android 的屏幕滾動操作不如 iPhone 流暢順滑,是什麼原因導致的

主要有三個原因

一,速度曲線。
當用戶滑動界面然後鬆手,這時界面會繼續滑動,然後速度減小,直到速度為0時停止。iOS下速度減小的這個過程比較慢,尤其是快要停的時候是慢慢停的,視覺上有種很順滑的感覺;Android下則從鬆手到停要快很多,相比之下有種戛然而止的感覺。

二,幀率。
絕大部分時間兩者都能保持60FPS左右的滿幀率。但都會有偶爾的掉幀。並且Android上要比iOS上嚴重很多。

三,觸摸響應速度。
從手指碰到觸摸屏,到屏幕上顯示處理這次觸摸產生的畫面,是需要時間的。時間越短感覺越跟手。而iOS的觸摸屏的處理時間要比一般的Android手機快,在軟體系統層面,Android的顯示機制是app-->SurfaceFlinger-->Display,這比傳統的app-->Display多了一步,主要基於這個原因,畫面最終輸出到屏幕要比傳統的方式慢一幀(16.7ms)。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:943
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371