1. 程式人生 > 其它 >【yolov5程式碼解讀】資料增量之augment_hsv

【yolov5程式碼解讀】資料增量之augment_hsv

切換縮放圖片
切換功能
1.匯入3張圖片到drawable
在這裡插入圖片描述
2.編寫activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


3.編寫MainActivity
package net.zxj.hwork14;

import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.LinearLayout;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
private GestureDetector detector; //手勢偵測器
private int [] imgIds; //影象資源識別符號陣列
private int imgIndex; //影象索引,反映在影象資源識別符號陣列中的位置
private LinearLayout root;//根線性佈局
private final static int IMG_COUNT = 3; //影象總數
private final static String TAG = “hwork14”; //定義程式標記

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

    //通過資源識別符號獲取控制元件例項
    root = findViewById(R.id.root);

    //初始化影象資源識別符號陣列
    imgIds = new int[IMG_COUNT];
    for(int i=0; i< IMG_COUNT;i++){
        imgIds[i] = getResources().getIdentifier(
                "img" + (i+1), //識別符號名稱
                "drawable", //定義型別
                "net.zxj.hwork14" //定義包名
        );
    }

    //設定根佈局可以獲得焦點
    root.setFocusable(true);
    //讓根佈局獲取焦點
    root.requestFocus();


    detector = new GestureDetector(new GestureDetector.OnGestureListener() {
        @Override
        public boolean onDown(MotionEvent e) {
            Log.i(TAG,"onDown");
            return false;
        }

        @Override
        public void onShowPress(MotionEvent e) {
            Log.i(TAG,"onShowPress");
        }

        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            Log.i(TAG,"onSingleTapUp");
            return false;
        }

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            Log.i(TAG,"onScroll");
            return false;
        }

        @Override
        public void onLongPress(MotionEvent e) {
            Log.i(TAG,"onLongPress");
        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            Log.i(TAG,"onFling");
            //手勢往左滑動20個畫素,影象切換到下一張
            if (e2.getX() < e1.getX() -20){
                if (imgIndex < IMG_COUNT -1){
                    imgIndex ++;
                }else {
                    imgIndex = 0;
                }
            }

            //手勢往右滑20個畫素,影象切換到上一張

            if (e2.getX() > e1.getX() +20){
                if (imgIndex>0){
                    imgIndex--;

                }else{
                    imgIndex = IMG_COUNT -1;
                }
            }



            //要根據變化之後影象索引更新佈局的背景圖片
            root.setBackgroundResource(imgIds[imgIndex]);

            return false;
        }



    });
}


//將視窗的觸控事件交給手勢偵測器來處理
@Override
public boolean onTouchEvent(MotionEvent event) {
    return detector.onTouchEvent(event);
}

}