課程
/移動開發
/Android
/Android攻城獅的第二門課(第1季)
ScrollView如何實現畫廊?或者那個ViewPager
2016-12-07
源自:Android攻城獅的第二門課(第1季) 13-2
正在回答
java程序:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.ViewFlipper;
public class MainActivity extends Activity {
private ViewFlipper flipper;
private int[]resId={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
private float startX;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper=(ViewFlipper) findViewById(R.id.flipper);
? ?//動態導入的方式為ViewFlipper加入子View
for(int i=0;i<resId.length;i++){
flipper.addView(getImageView(resId[i]));
}
// //為ViewFlipper去添加自動動畫效果
// flipper.setInAnimation(this,R.anim.left_in);//從左邊進入
// flipper.setInAnimation(this,R.anim.right_out );//從左邊出去
// //設定ViewFlipper視圖切換的時間間隔
// flipper.setFlipInterval(1000);//3秒鐘切換
// //開始播放
// flipper.startFlipping();
//為ViewFlipper添加手動動畫效果
public boolean onTouchEvent(MotionEvent event) {
// TODO 自動生成的方法存根
switch(event.getAction())
{
//手指落下
case MotionEvent.ACTION_DOWN:
startX=event.getX();
break;
//手指滑動
case MotionEvent.ACTION_MOVE:
//向右滑動看前一頁
if(event.getX()-startX>100)
flipper.setInAnimation(this,R.anim.left_in);
flipper.setOutAnimation(this,R.anim.left_out);
flipper.showPrevious();//顯示前一頁
//向左滑動看后一頁
if(startX-event.getX()>100)
flipper.setInAnimation(this,R.anim.right_in);
flipper.setOutAnimation(this,R.anim.right_out);
flipper.showPrevious();//顯示后一頁
//手指離開
case MotionEvent.ACTION_UP:
return super.onTouchEvent(event);
? ?private ImageView getImageView(int resId){
? ImageView image=new ImageView(this);
// ?image.setImageResource(resId);
? image.setBackgroundResource(resId);//鋪滿整個屏幕
? return image;
??
? ?}
xml程序:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent"
? ? android:orientation="vertical" >
? ??
? ? <ViewFlipper?
? ? ? ? android:id="@+id/flipper"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="match_parent" ??
? ? ? ? >
? ? ? ??
? ? </ViewFlipper>
</LinearLayout>
我用的ViewFlipper,圖片資源自己找
這么笨怎么辦 提問者
舉報
本課程由淺入深地帶您學會Android的常用控件的開發和使用
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-09
java程序:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.ViewFlipper;
public class MainActivity extends Activity {
private ViewFlipper flipper;
private int[]resId={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
private float startX;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper=(ViewFlipper) findViewById(R.id.flipper);
? ?//動態導入的方式為ViewFlipper加入子View
for(int i=0;i<resId.length;i++){
flipper.addView(getImageView(resId[i]));
}
// //為ViewFlipper去添加自動動畫效果
// flipper.setInAnimation(this,R.anim.left_in);//從左邊進入
// flipper.setInAnimation(this,R.anim.right_out );//從左邊出去
// //設定ViewFlipper視圖切換的時間間隔
// flipper.setFlipInterval(1000);//3秒鐘切換
// //開始播放
// flipper.startFlipping();
}
//為ViewFlipper添加手動動畫效果
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO 自動生成的方法存根
switch(event.getAction())
{
//手指落下
case MotionEvent.ACTION_DOWN:
{
startX=event.getX();
break;
}
//手指滑動
case MotionEvent.ACTION_MOVE:
{
//向右滑動看前一頁
if(event.getX()-startX>100)
{
flipper.setInAnimation(this,R.anim.left_in);
flipper.setOutAnimation(this,R.anim.left_out);
flipper.showPrevious();//顯示前一頁
}
//向左滑動看后一頁
if(startX-event.getX()>100)
{
flipper.setInAnimation(this,R.anim.right_in);
flipper.setOutAnimation(this,R.anim.right_out);
flipper.showPrevious();//顯示后一頁
}
break;
}
//手指離開
case MotionEvent.ACTION_UP:
{
break;
}
}
return super.onTouchEvent(event);
}
? ?private ImageView getImageView(int resId){
? ImageView image=new ImageView(this);
// ?image.setImageResource(resId);
? image.setBackgroundResource(resId);//鋪滿整個屏幕
? return image;
??
? ?}
}
xml程序:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent"
? ? android:orientation="vertical" >
? ??
? ? <ViewFlipper?
? ? ? ? android:id="@+id/flipper"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="match_parent" ??
? ? ? ? >
? ? ? ??
? ? </ViewFlipper>
</LinearLayout>
我用的ViewFlipper,圖片資源自己找