zoukankan      html  css  js  c++  java
  • android 图片浏览器滑动切换图片

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >
        <!-- 定义ImageView控件 -->
        <ImageView
            android:id="@+id/Iv"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/k1" />
    </RelativeLayout>
    package com.example.yanlei.yl;
    
    import android.graphics.Color;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.TextView;
    import android.text.Html;
    import android.text.Html.ImageGetter;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.widget.EditText;
    import android.widget.Button;
    
    
    import android.app.Activity;
    import android.content.Intent;
    
    
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.widget.ImageView;
    
    
    public class MainActivity extends AppCompatActivity {
        // 定义保存ImageView的对象
        private ImageView Iv;
        //定义手势检测器对象
        private GestureDetector gestureDetector;
        //定义图片的资源数组
        private int[] ResId = new int[]{
                R.drawable.k1,
                R.drawable.k2,
                R.drawable.k3
        };
        //定义当前显示的图片的下标
        private int count = 0;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.activity_main);
            findView();
            setListener();
        }
    
        private void setListener() {
            //设置手势监听器的处理效果由onGestureListener来处理
            gestureDetector = new GestureDetector(MainActivity.this,
                    onGestureListener);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            //当前Activity被触摸时回调
            return gestureDetector.onTouchEvent(event);
        }
    
        private void findView() {
            //得到当前页面的imageview控件
            Iv = (ImageView) findViewById(R.id.Iv);
        }
        //定义了GestureDetector的手势识别监听器
        private GestureDetector.OnGestureListener onGestureListener
                = new GestureDetector.SimpleOnGestureListener() {
            //当识别的收拾是滑动手势时回调onFinger方法
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                                   float velocityY) {
                //得到滑动手势的其实和结束点的x,y坐标,并进行计算
                float x = e2.getX() - e1.getX();
                float y = e2.getY() - e1.getY();
    
                //通过计算结果判断用户是向左滑动或者向右滑动
                if (x > 0) {
                    count++;
                    count %= 3;
                } else if (x < 0) {
                    count--;
                    count = (count + 3) % 3;
                }
                //切换imageview的图片
                changeImg();
                return true;
            }
        };
    
        public void changeImg() {
            //设置当前位置的图片资源
            Iv.setImageResource(ResId[count]);
        }
    
    
    
    }
  • 相关阅读:
    sql server 镜像操作
    微信测试公众号的创见以及菜单创建
    linux安装redis步骤
    Mysql 查询表字段数量
    linux 链接mysql并覆盖数据
    linux (centos)增删改查用户命令
    CentOS修改用户密码方法
    https原理及其中所包含的对称加密、非对称加密、数字证书、数字签名
    com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. 问题解决方法
    设计模式(三):模板方法模式
  • 原文地址:https://www.cnblogs.com/gisoracle/p/5009612.html
Copyright © 2011-2022 走看看