閱讀APP原始碼,瞭解Android studio觸控事件,切換圖片

zhibo系統開發發表於2021-12-08

閱讀APP原始碼,瞭解Android studio觸控事件,切換圖片

xml程式碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
    xmlns:app="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity10">
 
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:id="@+id/image"/>
 
</LinearLayout>


 java程式碼:

package com.example.myapplication;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
 
public class MainActivity10 extends AppCompatActivity {
 
    // 定義陣列,用來訪問圖片資源
    private int[] imgs = {R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four};
    private ImageView image;
    // 觸控開始和結束位置值
    private float startx=0.0f,endx=0.0f;
    // 圖片預設索引值
    int count = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main10);
 
        image = findViewById(R.id.image);
 
        // 初始化第一張圖片
        image.setImageResource(imgs[count]);
 
        // 給圖片設定觸控事件
        image.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                // 獲取水平方向的值
                float x = motionEvent.getX();
                // 獲取觸控的初始位置
                if(motionEvent.getAction()==MotionEvent.ACTION_DOWN){
                    startx = x;
                }
                // 獲取觸控的結束位置
                if(motionEvent.getAction()==motionEvent.ACTION_UP){
                    endx = x;
                    // 判斷滑動的距離是否超過100
                    if(Math.abs(startx-endx) > 100){
                        if(startx > endx){ // 向左滑動
                            // 判斷圖片索引是否等於3
                            if (count == 3){
                                Toast.makeText(MainActivity10.this,"已經是最後一張啦",Toast.LENGTH_SHORT).show();
                            } else {
                                // 圖片索引+1
                                image.setImageResource(imgs[++count]);
                            }
                        } else { // 向右滑動
                            // 判斷圖片索引是否等於0
                            if (count == 0){
                                Toast.makeText(MainActivity10.this,"已經是第一張啦",Toast.LENGTH_SHORT).show();
                            } else {
                                // 圖片索引-1
                                image.setImageResource(imgs[--count]);
                            }
                        }
                    }
                }
                return true;
            }
        });
    }
}


以上就是 閱讀APP原始碼,瞭解Android studio觸控事件,切換圖片,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2846470/,如需轉載,請註明出處,否則將追究法律責任。

相關文章