Android 手勢(shì) 正則匹配圖片實(shí)例代碼
為沒(méi)有手勢(shì)的控件(ViewFlipper) 添加手勢(shì)
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
控件中,我放入的是手機(jī)內(nèi)存中的所有圖片,所有必須先獲取讀取的權(quán)限
在 AndroidManifest.xml 文件中獲取權(quán)限
<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); //判斷內(nèi)存卡,是否可用 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //取到內(nèi)存卡的絕對(duì)路徑 String abspath=Environment.getExternalStorageDirectory().getAbsolutePath(); //建立文件對(duì)象 File file=new File(abspath); //取到內(nèi)存卡內(nèi)的所有文件、文件夾 File [] filetwo=file.listFiles(); for (File file1 : filetwo) { try { //調(diào)用文件的遞歸方法 TraversalSearch(file1); } catch (IOException e) { e.printStackTrace(); } } } //集合中的圖片是,內(nèi)存卡內(nèi)的所有圖片 for (ImageView imageView : list) { //把集合中的所有圖片加入到(ViewFlipper)控件中 viewFlipper.addView(imageView); } //建立手勢(shì)檢測(cè)器,參數(shù)一:上下文 參數(shù)二 檢測(cè)器的檢測(cè)事件 jc = new GestureDetector(this,new GestureDetector.OnGestureListener(){ @Override public boolean onDown(MotionEvent e) { //按下觸發(fā) return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { //輕按觸發(fā) return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { //移動(dòng)觸發(fā) return false; } @Override public void onLongPress(MotionEvent e) { //常按 觸發(fā) } @Override //滑動(dòng)完后,觸發(fā) public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //本方法,參數(shù)一:起始位置 參數(shù)二:結(jié)束位置 ,參數(shù)三四: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 //重寫(xiě) 觸摸 回調(diào)函數(shù) public boolean onTouchEvent(MotionEvent event) { //給手勢(shì)檢測(cè)器設(shè)定觸摸函數(shù),必寫(xiě)! 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); //匹配結(jié)果,符合為true 反之false if(matcher.find()){ ImageView image=new ImageView(this); //通過(guò)繪圖工廠,利用文件路徑取到,文件 Bitmap bitmap= BitmapFactory.decodeFile(file.getAbsolutePath().trim()); //把圖片文件設(shè)置入圖片控件內(nèi) image.setImageBitmap(bitmap); if(list.size()<20){ //我只加入二十個(gè)圖片,過(guò)多,內(nèi)存溢出 list.add(image); } } } } }
以上所述是小編給大家介紹的Android 手勢(shì) 正則匹配圖片實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android正則表達(dá)式
- Android中手機(jī)號(hào)、車牌號(hào)正則表達(dá)式大全
- Android判斷11位手機(jī)號(hào)碼的方法(正則表達(dá)式)
- Android 正則表達(dá)式驗(yàn)證手機(jī)號(hào)、姓名(包含少數(shù)民族)、身份證號(hào)
- Android EdText編輯框禁止輸入表情符號(hào)(使用正則表達(dá)式)
- Android常用正則表達(dá)式驗(yàn)證工具類(實(shí)例代碼)
- Android編程開(kāi)發(fā)中的正則匹配操作示例
- Android 中使用ContentObserver模式獲取短信用正則自動(dòng)填充驗(yàn)證碼
- Android開(kāi)發(fā)實(shí)現(xiàn)查詢遠(yuǎn)程服務(wù)器的工具類QueryUtils完整實(shí)例
- Android開(kāi)發(fā)實(shí)現(xiàn)的內(nèi)存管理工具類
- Android開(kāi)發(fā)中超好用的正則表達(dá)式工具類RegexUtil完整實(shí)例
相關(guān)文章
詳細(xì)介紹Android-Room數(shù)據(jù)庫(kù)的使用
這篇文章主要介紹了詳細(xì)介紹Android-Room數(shù)據(jù)庫(kù)的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Android程序靜默安裝安裝后重新啟動(dòng)APP的方法
這篇文章主要介紹了Android 靜默安裝,安裝后重新啟動(dòng)APP的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01五分了解Android?Progress?Bar進(jìn)度條加載
這篇文章主要為大家介紹了Android?Progress?Bar進(jìn)度條加載的實(shí)現(xiàn)及屬性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android實(shí)現(xiàn)網(wǎng)絡(luò)圖片瀏覽器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)網(wǎng)絡(luò)圖片瀏覽器的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Android編程實(shí)現(xiàn)仿易信精美彈出框效果【附demo源碼下載】
這篇文章主要介紹了Android編程實(shí)現(xiàn)仿易信精美彈出框效果,涉及Android窗口及動(dòng)畫(huà)操作相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-01-01Android關(guān)于獲取時(shí)間的記錄(小結(jié))
這篇文章主要介紹了Android關(guān)于獲取時(shí)間的記錄(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Android 使用Vitamio打造自己的萬(wàn)能播放器(2)—— 手勢(shì)控制亮度、音量、縮放
本文主要介紹Android Vitamio插件的一些功能,這里主要介紹 Android Vitamio插件的手勢(shì)控制亮度,音量,縮放的功能,并提供代碼實(shí)例,有需要的小伙伴可以參考下2016-07-07Kotlin協(xié)程Dispatchers原理示例詳解
這篇文章主要為大家介紹了Kotlin協(xié)程Dispatchers原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Android 抽屜效果的導(dǎo)航菜單實(shí)現(xiàn)代碼實(shí)例
本篇文章主要介紹了Android 抽屜效果的導(dǎo)航菜單實(shí)現(xiàn)代碼實(shí)例,這種側(cè)滑的抽屜效果的菜單很好,有興趣的可以了解一下。2016-12-12