国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 手勢 正則匹配圖片實例代碼

2019-10-22 18:32:28
字體:
來源:轉載
供稿:網友

為沒有手勢的控件(ViewFlipper) 添加手勢

xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"  android:layout_height="match_parent" tools:context="com.example.mygesture.MainActivity">    <ViewFlipper    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/vf_main_one"    ></ViewFlipper></LinearLayout>

Activity

控件中,我放入的是手機內存中的所有圖片,所有必須先獲取讀取的權限

在 AndroidManifest.xml 文件中獲取權限 

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>package com.example.mygesture;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Environment;import android.os.PatternMatcher;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.GestureDetector;import android.view.MotionEvent;import android.widget.ImageView;import android.widget.Toast;import android.widget.ViewFlipper;import java.io.InputStream;import java.util.LinkedList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MainActivity extends AppCompatActivity {  private ViewFlipper viewFlipper;  private List<ImageView> list=new LinkedList<>();  private GestureDetector jc;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);//取到控件viewFlipper = (ViewFlipper)findViewById(R.id.vf_main_one); //判斷內存卡,是否可用    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //取到內存卡的絕對路徑      String abspath=Environment.getExternalStorageDirectory().getAbsolutePath();     //建立文件對象      File file=new File(abspath);      //取到內存卡內的所有文件、文件夾      File [] filetwo=file.listFiles();      for (File file1 : filetwo) {        try {         //調用文件的遞歸方法          TraversalSearch(file1);        } catch (IOException e) {          e.printStackTrace();        }      }    }    //集合中的圖片是,內存卡內的所有圖片    for (ImageView imageView : list) {    //把集合中的所有圖片加入到(ViewFlipper)控件中      viewFlipper.addView(imageView);    }   //建立手勢檢測器,參數一:上下文 參數二 檢測器的檢測事件    jc = new GestureDetector(this,new GestureDetector.OnGestureListener(){      @Override      public boolean onDown(MotionEvent e) {        //按下觸發        return false;      }      @Override      public void onShowPress(MotionEvent e) {      }      @Override      public boolean onSingleTapUp(MotionEvent e) {         //輕按觸發        return false;      }      @Override      public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {        //移動觸發        return false;      }      @Override      public void onLongPress(MotionEvent e) {         //常按 觸發      }      @Override //滑動完后,觸發      public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {//本方法,參數一:起始位置 參數二:結束位置 ,參數三四:x軸 y軸              if(e2.getX()-e1.getX()>200){          //顯示上一張          viewFlipper.showPrevious();          Toast.makeText(MainActivity.this, "   001", Toast.LENGTH_SHORT).show();        }        if(e1.getX()-e2.getX()>200){          //顯示下一張          viewFlipper.showNext();          Toast.makeText(MainActivity.this, "   004", Toast.LENGTH_SHORT).show();        }        return false;      }    });  }  @Override //重寫 觸摸 回調函數  public boolean onTouchEvent(MotionEvent event) {    //給手勢檢測器設定觸摸函數,必寫!    return jc.onTouchEvent(event);  }// 查詢所有文件的遞歸方法  public void TraversalSearch(File file) throws IOException {    if(file.isDirectory()){      File [] filetwo=file.listFiles();      for (File file1 : filetwo) {         TraversalSearch(file1);       }    }else{      String name=file.getName();      //圖片格式      String regStr = "[Gg][Ii][Ff]|[Jj][Pp][Gg]|[Bb][Mm][Pp]|[Jj][Pp][Ee][Gg]";      //把正則 匹配的格式放入 類中      Pattern pattern = Pattern.compile(regStr);      //把需要匹配的,放入      Matcher matcher = pattern.matcher(name);      //匹配結果,符合為true 反之false      if(matcher.find()){        ImageView image=new ImageView(this);//通過繪圖工廠,利用文件路徑取到,文件 Bitmap bitmap= BitmapFactory.decodeFile(file.getAbsolutePath().trim());      //把圖片文件設置入圖片控件內        image.setImageBitmap(bitmap);        if(list.size()<20){         //我只加入二十個圖片,過多,內存溢出          list.add(image);        }      }    }  }}

以上所述是小編給大家介紹的Android 手勢 正則匹配圖片實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江油市| 井陉县| 射阳县| 三亚市| 榆社县| 新野县| 桐乡市| 吉木乃县| 柘荣县| 凤阳县| 隆子县| 台东县| 鹿泉市| 阿拉善左旗| 莱阳市| 乌兰县| 凤阳县| 赫章县| 廉江市| 榆中县| 育儿| 文山县| 灯塔市| 蕲春县| 井研县| 商洛市| 花莲县| 晋宁县| 亚东县| 陕西省| 兰溪市| 霍城县| 永福县| 长白| 鸡泽县| 大方县| 崇信县| 遂昌县| 美姑县| 化隆| 灌阳县|