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]); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2013-12-01 认识一个人靠缘分;了解一个人靠耐心;征服一个人靠智慧;处好一个人靠包容。人,相互帮扶才感到温暖;事,共同努力才感到简单;路,有伴同行才感到平坦;友,相互牵挂才感到情深。坚持与人为善,不遗余力地成就他人,也将在不知不觉中成就自己。一人亦人,众人为天;谍事在人,成事在天。