为没有手势的控件(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 手势 正则匹配图片实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍Android实现手势控制ImageView图片大小,包括了Android实现手势控制ImageView图片大小的使用技巧和注意事项,需要的朋友参考一下 本文实例实现的主要功能是在ImageView中识别手势用以控制图片放大或缩小,具有一定的参考价值,分享给大家。 我对其中定义OnSingleTapListener接口的方法稍作了一些修改,为onSingleTap回调方法增加了Mot
本文向大家介绍Android游戏开发:实现手势操作切换图片的实例,包括了Android游戏开发:实现手势操作切换图片的实例的使用技巧和注意事项,需要的朋友参考一下 对于Android 的手势不光在软件中会经常用到,比如浏览器中的翻页,滚动页面等等;当然其实在我们开发Android游戏的时候加上了Android手势操作更会让游戏增加一个亮点,比如一般的CAG、PUZ等类型的游戏选择关卡
本文向大家介绍Android手势控制实现缩放、移动图片,包括了Android手势控制实现缩放、移动图片的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android手势控制实现缩放、移动图片的方法,供大家参考,具体内容如下 新建一个触摸监听器类 编写一个xml文件 注意其中的: android:scaleType="matrix" 以上就是Android手势控制缩放移动图片的全部代码
本文向大家介绍python正则中最短匹配实现代码,包括了python正则中最短匹配实现代码的使用技巧和注意事项,需要的朋友参考一下 下面从一个例子入手: 利用正则表达式解析下面的XML/HTML标签: 希望自动格式化重写为: composer: Wolfgang Amadeus Mozart author: Samuel Beckett city: London 一个代码是这样的形式: 这个代码运
基本模式匹配 一切从最基本的开始。模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。例如: ^once 这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串。例如该模式与字符串"once upon a time"匹配,与"There once was
本文向大家介绍Android手势滑动实现ImageView缩放图片大小,包括了Android手势滑动实现ImageView缩放图片大小的使用技巧和注意事项,需要的朋友参考一下 本文推出了两种Android手势实现ImageView缩放图片大小的方法,分享给大家供大家参考,具体内容如下 方法一: 将以下代码写到MulitPointTouchListener.java中,然后对你相应的图片进行OnTo