導航:首頁 > 操作系統 > android左右滑動效果代碼

android左右滑動效果代碼

發布時間:2022-07-28 23:29:34

android中如何實現滑動activity如何左右滑動實現activity的切換

你是要滑動切換activity還是頁面?如果是activity的話你可以給當前頁面添加手勢,滑動的時候實現activity的切換然後給activity添加切換動畫,如果是像qq那種效果可以用tab來做,實現效果很不錯,或者activitygroup,還可以用fragment來做,這些實現效果都不錯。如果是頁面滑動切換,可以用viewpager,這個效果很好,代碼能力強就用viewgroup的滾動來實現,效果也還可以。

Ⅱ 如何在Android中實現左右滑動的指引效果

可以使用一個RadioGroup做為指引,設置viewpager的頁面切換監聽,當切換界面時設置RadioGroup中的第position個radionbutton選中

布局文件如下
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.demo.MainActivity" >

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>

<RadioGroup
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:orientation="horizontal" >

</RadioGroup>

</RelativeLayout>

代碼如下
public class MainActivity extends Activity {

private ViewPager pager;
private RadioGroup indicator;
private List<View> views;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager = (ViewPager) findViewById(R.id.pager);
indicator = (RadioGroup)findViewById(R.id.indicator);

views = new ArrayList<View>();
for(int i=0; i<3; i++){
TextView tv = new TextView(this);
tv.setTextSize(40);
tv.setText("hello,world");
views.add(tv);

//動態添加指引
RadioButton radio = new RadioButton(this);
radio.setId(i);
indicator.addView(radio);
}

//默認選中第一頁

indicator.check(0);
pager.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
//頁面切換時,選擇radiobutton
indicator.check(arg0);
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}

@Override
public void onPageScrollStateChanged(int arg0) {
}
});

pager.setAdapter(new PagerAdapter() {

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}

@Override
public int getCount() {
return views.size();
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(views.get(position));
}
});
}
}

Ⅲ 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中的數據。

Ⅳ 安卓中怎麼實現兩個頁面的左右滑入

設置父布局為LinearLayout,然後設置2個gridview的weight都為1.0,然後滑動互不影響。GridView(網格視圖)是按照行列的方式來顯示內容的,一般用於顯示圖片,圖片等內容,比如實現九宮格圖,用GridView是首選,也是最簡單的.GirdView的一些屬性:android:numColumns="auto_fit"--------列數設置為自動android:columnWidth="90dp",----------每列的寬度,也就是Item的寬度android:stretchMode="columnWidth"------縮放與列寬大小同步android:verticalSpacing="10dp"----------垂直邊距android:horizontalSpacing="10dp"-------水平邊距

Ⅳ android中fragmenttabhost怎麼設置左右滑動

先來看看整個demo的結構:

TabAFm到TabEFm都是Fragment,並且每個Fragment對應一個布局文件。
TabAFm.java
View Code
如上述代碼所示,TabAFm是一個Fragment,對應的布局文件是tab_a.xml,並實現了他的所有的生命周期回調函數並列印,便於調試
tab_a.xml布局中有個EditText
其他的Fragment大同小異,這里就不貼出代碼了

現在來看MainActivity:
View Code
MainActivity上述代碼所示
MainActivity是包含Fragment的Activity(也就是這里的5個Fragment)
他繼承了FragmentActivity(因為我這里用的是android-support-v4.jar)
用一個List<Fragment>去維護5個Fragment,也就是5個tab
main布局中有一個id為tab_content的FrameLayout,用來存放要顯示的Fragment。底部有一個RadioGroup,用於tab的切換,如下:
View Code
現在回到MainActivity中,下面這個FragmentTabAdapter類是關鍵,是我自己編寫的用於綁定和處理fragments和RadioGroup之間的邏輯關系
FragmentTabAdapter tabAdapter = new FragmentTabAdapter(this, fragments, R.id.tab_content, rgs);

現在看下FragmentTabAdapter:
View Code
這里解決Fragment切換重新載入布局的辦法,用的是把幾個Fragment全部Add,然後根據要顯示的哪個Fragment設置show或者hide
效果輸出:
10-10 11:55:41.168: INFO/System.out(18368): AAAAAAAAAA____onAttach// 第一次進入,顯示TabA
10-10 11:55:41.168: INFO/System.out(18368): AAAAAAAAAA____onCreate
10-10 11:55:41.168: INFO/System.out(18368): AAAAAAAAAA____onCreateView
10-10 11:55:41.175: INFO/System.out(18368): AAAAAAAAAA____onActivityCreated
10-10 11:55:41.179: INFO/System.out(18368): AAAAAAAAAA____onStart
10-10 11:55:41.179: INFO/System.out(18368): AAAAAAAAAA____onResume
10-10 11:55:44.980: INFO/System.out(18368): AAAAAAAAAA____onPause// 從TabA切換到TabB(TabA調用onPause)
10-10 11:55:44.980: INFO/System.out(18368): Extra---- 1 checked!!!
10-10 11:55:44.996: INFO/System.out(18368): BBBBBBBBBBB____onAttach
10-10 11:55:44.996: INFO/System.out(18368): BBBBBBBBBBB____onCreate
10-10 11:55:44.996: INFO/System.out(18368): BBBBBBBBBBB____onCreateView
10-10 11:55:45.004: INFO/System.out(18368): BBBBBBBBBBB____onActivityCreated
10-10 11:55:45.004: INFO/System.out(18368): BBBBBBBBBBB____onStart
10-10 11:55:45.004: INFO/System.out(18368): BBBBBBBBBBB____onResume
10-10 11:55:52.062: INFO/System.out(18368): BBBBBBBBBBB____onPause// 從TabB切換到TabC(TabB調用onPause)
10-10 11:55:52.062: INFO/System.out(18368): Extra---- 2 checked!!!
10-10 11:55:52.082: INFO/System.out(18368): CCCCCCCCCC____onAttach
10-10 11:55:52.082: INFO/System.out(18368): CCCCCCCCCC____onCreate
10-10 11:55:52.086: INFO/System.out(18368): CCCCCCCCCC____onCreateView
10-10 11:55:52.090: INFO/System.out(18368): CCCCCCCCCC____onActivityCreated
10-10 11:55:52.090: INFO/System.out(18368): CCCCCCCCCC____onStart
10-10 11:55:52.090: INFO/System.out(18368): CCCCCCCCCC____onResume
10-10 11:56:06.535: INFO/System.out(18368): CCCCCCCCCC____onPause// 從TabC切換到TabB(TabC調用onPause)
10-10 11:56:06.535: INFO/System.out(18368): BBBBBBBBBBB____onResume// 從TabC切換到TabB(TabB調用onResume)
10-10 11:56:06.535: INFO/System.out(18368): Extra---- 1 checked!!!

好了,到此為止,我們已經用Fragment實現了類似TabHost的功能了,下面來看下各個Fragment之間的通信
現在的情況是TabAFm中有個EditText,TabBFm中有個Button,MainActivity中有個變數「hello」
要做的是,切換到TabA,輸入「I'm TabA」,切換到B,點擊Button後,Toast顯示「hello I'm TabA」
MainActivity中沒什麼好說的,就一個hello變數:
public String hello = "hello ";

TabAFm在布局文件tab_a.xml中加個EditText,設置個id就可以了
TabBFm中:
View Code
// 獲得綁定的FragmentActivity
MainActivity activity = ((MainActivity)getActivity());

通過getActivity()即可得到Fragment所在的FragmentActivity

Ⅵ android 實現如圖片這樣的左右滑動,中間item的左邊的item出來一點。中間的Item的右邊的item出來一點,

我也覺得是用Gallery,設置每個Item的大小 以及間距,可以實現這種效果

Ⅶ android中的imageview怎麼設置上下左右的滑動事件

private float mPosX;
private float mPosY;
private float mCurrentPosX;
private float mCurrentPosY;
private ImageView imageview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

imageview = (ImageView) findViewById(R.id.imageview);

imageview.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {
// 按下
case MotionEvent.ACTION_DOWN:
mPosX = event.getX();
mPosY = event.getY();
break;
// 移動
case MotionEvent.ACTION_MOVE:
mCurrentPosX = event.getX();
mCurrentPosY = event.getY();

if (mCurrentPosX - mPosX > 0 && Math.abs(mCurrentPosY - mPosY) < 10)
Log.e("", "向右");
else if (mCurrentPosX - mPosX < 0 && Math.abs(mCurrentPosY - mPosY) < 10)
Log.e("", "向左");
else if (mCurrentPosY - mPosY > 0 && Math.abs(mCurrentPosX - mPosX) < 10)
Log.e("", "向下");
else if (mCurrentPosY - mPosY < 0 && Math.abs(mCurrentPosX - mPosX) < 10)
Log.e("", "向上");

break;
// 拿起
case MotionEvent.ACTION_UP:

break;
default:
break;
}
return true;
}
});
}

Ⅷ Android怎樣實現左右滑動

建立工程
1
打開android開發平台

2
建立新的工程,點擊file. ->new->project.選擇Android Application Project,點擊Next.

3
填寫工程名,選擇創建的android版本。圖例工程名為zuoyouhuadong 版本為android2.2.填好之後點擊next

4
下面進入前景色和背景色等的設置,若不屬性可直接點擊next

5
繼續點擊next

6
可以編輯Activity Name名字,避免所有的工程都一個名字,運行的時候不知道都是哪一個工程。點擊finish.工程創建完畢。

END
添加圖片到工程
1
網上下載或者本地選取圖片四張。(圖片名字最好改為英文)

2
適當縮小 工程軟體窗口,點擊圖片aa,拖放到zuoyouhuadong->res->drawable-hapi上,會提示你是否將圖片復制進工程。

3
選擇是OK

4
可以看到工程中已經有你的圖片了。

5
按照本段2--4步驟把其他三張圖片添加進工程。 添加圖片的准備工作完畢。

END
代碼實現左右滑動
1
目標轉向主編輯框,視圖界面轉到代碼界面。

2
代碼實現左右滑動功能。主要用HorizontalScrollView 。主要代碼如下:<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:id="@+id/ScrollView"

>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/aa"
android:layout_weight="1"
android:scaleType="fitXY" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bb"
android:scaleType="fitXY"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cc"
android:scaleType="fitXY"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dd"
android:scaleType="fitXY"/>
</LinearLayout>
</HorizontalScrollView>全
部代碼截圖如下。

3
部分主要代碼解析:
android:scrollbars="none" 設置是否有滑動條;
android:scaleType="fitXY" 設置圖片自適應;
android:src="@drawable/aa" 設置載入的圖片;
android:layout_width="wrap_content"設置寬屬性;
android:layout_height="wrap_content"設置長屬性。
END
運行查看效果
右鍵工程,點擊run,等待虛擬器啟動運行程序

2
解鎖,查看效果 。本例中圖片大小未調整,稍微欠缺一點美觀效果,請讀者體諒。希望大家支持,並共同學習。

Ⅸ 如何在Android中實現漸顯按鈕的左右滑動效果

MainActivity文件中代碼:
package com.android.buttonpageflipper;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.ImageView;
import android.widget.ViewFlipper;
/**
* Android實現帶漸顯按鈕的左右滑動效果
* 自然狀態下按鈕不可見,觸摸屏幕時顯示按鈕
* @author Administrator
*
*/
public class MainActivity extends Activity {
//聲明兩個按鈕,分別代表向左和向右滑動
private ImageView btnLeft=null;
private ImageView btnRight=null;
//設置WindowManager
private WindowManager wm=null;
private WindowManager.LayoutParams wmParams=null;
//ImageView的alpha值
private int mAlpha = 0;
private boolean isHide;
private ViewFlipper viewFlipper = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("Android實現漸顯按鈕的左右滑動效果");
viewFlipper = (ViewFlipper) this.findViewById(R.id.myViewFlipper);
//初始化左右按鈕
initImageButtonView();
}
/**
* 初始化懸浮按鈕
*/
private void initImageButtonView(){
//獲取WindowManager
wm=(WindowManager)getApplicationContext().getSystemService("window");
//設置LayoutParams相關參數
wmParams = new WindowManager.LayoutParams();
//設置window type
wmParams.type=LayoutParams.TYPE_PHONE;
//設置圖片格式,效果為背景透明
wmParams.format=PixelFormat.RGBA_8888;
//設置Window flag參數
wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE;
//設置x、y初始值
wmParams.x=0;
wmParams.y=0;
//設置窗口長寬數據
wmParams.width=50;
wmParams.height=50;
//創建左右按鈕
createLeftButtonView();
createRightButtonView();
}
/**
* 設置左邊按鈕
*/
private void createLeftButtonView(){
btnLeft=new ImageView(this);
btnLeft.setImageResource(R.drawable.left);
btnLeft.setAlpha(0);
btnLeft.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//上一個圖像
viewFlipper.setInAnimation(MainActivity.this, R.anim.push_left_in);
viewFlipper.setOutAnimation(MainActivity.this, R.anim.push_left_out);
viewFlipper.showPrevious();
}
});
//調整窗口
wmParams.gravity=Gravity.LEFT|Gravity.CENTER_VERTICAL;
//顯示圖像
wm.addView(btnLeft, wmParams);
}
/**
* 設置右邊按鈕
*/
private void createRightButtonView(){
btnRight=new ImageView(this);
btnRight.setImageResource(R.drawable.right);
btnRight.setAlpha(0);
btnRight.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//下一個圖像
viewFlipper.setInAnimation(MainActivity.this, R.anim.push_right_in);
viewFlipper.setOutAnimation(MainActivity.this, R.anim.push_right_out);
viewFlipper.showNext();
}
});
//調整窗口
wmParams.gravity=Gravity.RIGHT|Gravity.CENTER_VERTICAL;
//顯示圖像
wm.addView(btnRight, wmParams);
}
/**
* 設置按鈕漸顯效果
*/
private Handler mHandler = new Handler()
{
public void handleMessage(Message msg) {
if(msg.what==1 && mAlpha<255){
//通過設置不透明度設置按鈕的漸顯效果
mAlpha += 50;
if(mAlpha>255)
mAlpha=255;
btnLeft.setAlpha(mAlpha);
btnLeft.invalidate();
btnRight.setAlpha(mAlpha);
btnRight.invalidate();
if(!isHide && mAlpha<255)
mHandler.sendEmptyMessageDelayed(1, 100);
}else if(msg.what==0 && mAlpha>0){
mAlpha -= 10;
if(mAlpha<0)
mAlpha=0;
btnLeft.setAlpha(mAlpha);
btnLeft.invalidate();
btnRight.setAlpha(mAlpha);
btnRight.invalidate();
if(isHide && mAlpha>0)
mHandler.sendEmptyMessageDelayed(0, 800);
}
}
};
private void showImageButtonView(){
isHide = false;
mHandler.sendEmptyMessage(1);
}
private void hideImageButtonView(){
new Thread(){
public void run() {
try {
Thread.sleep(1500);
isHide = true;
mHandler.sendEmptyMessage(0);
} catch (Exception e) {

}
}
}.start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_DOWN:
showImageButtonView();
break;
case MotionEvent.ACTION_UP:
hideImageButtonView();
break;
}
return true;
}
@Override
public void onDestroy(){
super.onDestroy();
//在程序退出(Activity銷毀)時銷毀窗口
wm.removeView(btnLeft);
wm.removeView(btnRight);
}
}

閱讀全文

與android左右滑動效果代碼相關的資料

熱點內容
str中python 瀏覽:87
java的equals用法 瀏覽:843
奧維雲伺服器怎麼開通 瀏覽:167
js取得伺服器地址 瀏覽:810
起點中文網小說緩存在哪個文件夾 瀏覽:214
java瘋狂講義pdf 瀏覽:296
推有錢app在哪裡 瀏覽:739
寧波鮑斯壓縮機 瀏覽:93
新建文件夾電影2完整版演員表 瀏覽:988
空調壓縮機為什麼不能放到冷庫用 瀏覽:89
江西雲伺服器節點虛擬主機 瀏覽:997
新氧app如何測試臉型 瀏覽:688
個稅app如何查詢社保 瀏覽:495
安卓設備快充什麼時候開啟的 瀏覽:13
ipad怎麼用安卓手機傳文件 瀏覽:584
編輯程序員視頻 瀏覽:633
極光app的雲助手在哪裡 瀏覽:777
信合有什麼ApP 瀏覽:958
android絕對位置 瀏覽:79
阿里巴巴校招程序員在哪個園區 瀏覽:905