當前位置:編程學習大全網 - 源碼下載 - 安卓代碼,我有五個,設置壹個按鈕,怎麽點擊壹次按鈕切換到下壹個?

安卓代碼,我有五個,設置壹個按鈕,怎麽點擊壹次按鈕切換到下壹個?

第壹種:用動畫的方法實現:(代碼繁瑣)

這種分發需要:兩個動畫效果,壹個布局,壹個主類來實現,不說了,我們來看看代碼:

公共類IamgeTrActivity擴展Activity {

/**首次創建活動時調用。*/

公共ImageView imageView

公共ImageView imageView2

公共動畫Animation 1;

公共動畫動畫2;

公共TextView文本;

public boolean juage = true

public int images[]= new int[]{ r . drawable . icon,R.drawable.expriment,

R.drawable.changer,R.drawable.dataline,r . draw able . prefification };

public int count = 0;

公共處理程序Handler = new Handler();

public Runnable Runnable = new Runnable(){

@覆蓋

公共無效運行(){

// TODO自動生成的方法存根

animation set animation set 1 = new animation set(true);

animation set animation set 2 = new animation set(true);

image view 2 . set visibility(0);

TranslateAnimation ta =新的TranslateAnimation(

動畫。相對於自我,0f,動畫。相對於自我,

-1f,動畫。相對於自己,0f,

動畫。RELATIVE_TO_SELF,0f);

ta.setDuration(2000年);

animation set 1 . add animation(ta);

animation set 1 . setfillafter(true);

ta = new TranslateAnimation(動畫。相對於自我,1.0f,

動畫。相對於自我,0f,動畫。相對於自我,

0f,動畫。RELATIVE_TO_SELF,0f);

ta.setDuration(2000年);

animation set 2 . add animation(ta);

animation set 2 . setfillafter(true);

//iamgeView out imageView2 in。

imageview . start animation(animation set 1);

image view 2 . start animation(animation set 2);

imageview . setbackgroundresource(images[計數% 5]);

count++;

image view 2 . setbackgroundresource(images[計數% 5]);

text . settext(string . value of(count));

如果(juage)

handler.postDelayed(runnable,6000);

Log.i(handler,處理程序);

}

};

@覆蓋

public void on create(Bundle saved instancestate){

super . oncreate(savedInstanceState);

setContentView(r . layout . main);

imageView =(imageView)findViewById(r . id . imageView);

image view 2 =(ImageView)findViewById(r . id . image view 2);

text =(TextView)findViewById(r . id . text);

text . settext(string . value of(count));

//先隱藏iamgeView,再顯示。

image view 2 . set visibility(4);

handler.postDelayed(runnable,2000);

}

public void onPause() {

juage = false

super . on pause();

}

}

布局代碼:

android:方向=垂直

Android:layout _ width = fill _ parent

android:布局_高度=填充_父級

Android:id = @+id/rl & gt;

android:id=@+id/imageView

Android:layout _ width = fill _ parent

Android:background = @ drawable/icon

android:layout_below=@+id/rl

Android:layout _ height = 120 DP/& gt;

android:id=@+id/imageView2

Android:layout _ width = fill _ parent

Android:background = @ drawable/expriment

android:layout_below=@+id/rl

Android:layout _ height = 120 DP/& gt;

android:id=@+id/text

Android:layout _ width = fill _ parent

Android:layout _ height = wrap _ content

Android:layout _ below = @ id/imageView/& gt;

第二,用ViewFlipper實現圖片的輪播。

Android系統自帶壹個多頁面管理控件,可以實現子界面的自動切換:

首先,您需要為ViewFlipper添加視圖。

(1)靜態導入:直接在布局文件中導入。

(2)動態導入:addView()方法

ViewPlipper的常用方法:

SetInAnimation:設置視圖進入屏幕時使用的動畫。

SetOutAnimation:設置視圖退出屏幕時使用的動畫。

ShowNext:調用這個函數在ViewFlipper中顯示下壹個視圖。

ShowPrevious:調用此函數在ViewFlipper中顯示上壹個視圖。

SetFlipInterval:設置視圖之間切換的時間間隔。

StartFlipping使用上面設置的時間間隔開始切換所有視圖,切換將重復進行。

停止翻轉:停止視圖切換。

說了這麽多,我們今天要實現什麽?

(1)使用ViewFlipper實現圖片的輪播。

(2)支持手勢滑動的ViewFlipper

我們需要先準備壹些圖片:把它們放在drawable裏。

創建兩個動畫:在res下創建壹個新文件夾,並在其中創建兩個xml:

左_內:

安卓:時長=5000

android:fromXDelta=100%p

android:toXDelta=0/>

左_外:

android:fromXDelta=0

android:toXDelta=-100%p

android:duration=5000/>

布局文件:

xmlns:tools=/tools

Android:layout _ width = match _ parent

安卓:布局_高度=匹配_父母

工具:上下文=。主活動& gt

android:id=@+id/flipper

Android:layout _ width = fill _ parent

Android:layout _ height = fill _ parent/& gt;

主要類別:

公共類MainActivity擴展Activity {

私人視圖ViewFlipper flipper

private int[]resId = { r . drawable . PC 1,R.drawable.pc2,R.drawable.pc3,r . drawable . pc4 };

@覆蓋

受保護的void onCreate(Bundle saved instancestate){

super . oncreate(savedInstanceState);

setContentView(r . layout . activity _ main);

flipper =(view flipper)findViewById(r . id . flipper);

/*

*動態導入的方式是在ViewFlipper中添加子視圖。

* */

for(int I = 0;我& ltresId .長度;i++) {

flipper . add view(getImageView(resId[I]));

}

/*

*為ViewFlipper添加動畫效果。

* */

flipper.setInAnimation(this,r . anim . left _ in);

flipper.setOutAnimation(this,r . anim . left _ out);

flipper . setflipinterval(5000);

flipper . start flipping();

}

私有圖像視圖getImageView(int resId){

ImageView image =新ImageView(this);

image . setbackgroundresource(resId);

返回圖像;

}

}

那麽這就達到了壹個圖片輪詢的功能效果。

我們還可以添加點擊和滑動效果:

我們還需要在右邊添加兩個滑動效果:

右_內:

android:fromXDelta=0

android:toXDelta=-100%p

android:duration=2000/>

右_出:

android:fromXDelta=100%p

android:toXDelta=0

android:duration=2000/>

然後我們需要在主類中添加(如果妳不希望圖片自動播放,只想通過手勢播放圖片,那麽妳需要刪除“為ViewFlipper添加動畫效果的代碼”):

public boolean onTouchEvent(運動事件事件){

// TODO自動生成的方法存根

switch (event.getAction()) {

案例運動事件。動作_向下:

startX = event . getx();

打破;

案例運動事件。ACTION_MOVE://確定向左滑動還是向右滑動。

if(event . getx()-startX & gt;100) {

flipper.setInAnimation(this,r . anim . left _ in);

flipper.setOutAnimation(this,r . anim . left _ out);

flipper . show previous();

} else if(startX-event . getx()& gt;100) {

flipper.setInAnimation(this,r . anim . right _ in);

flipper.setOutAnimation(this,r . anim . right _ out);

flipper . show next();

}

案例運動事件。行動_行動:

打破;

}

返回super.onTouchEvent(事件);

}

這樣,我們就用我們的ViewFlipper完成了圖像輪詢的功能。

午夜神器APP私密即時語音互動聊天,匿名性趣秘密分享。

  • 上一篇:KDJ的基本操盤技巧
  • 下一篇:喀什去河北需要隔離嗎-要核酸檢測嗎
  • copyright 2024編程學習大全網