android ImageView实现图片浏览器(点击左侧显示上一张,点击右侧显示下一张)
1.实现代码如下:
public class MainActivity extends Activity {private int[] mImages = { R.drawable.juxie, R.drawable.mojie,R.drawable.sheshou, R.drawable.shizi, R.drawable.shuangyu,R.drawable.shuangzi, R.drawable.shuiping, R.drawable.tiancheng,R.drawable.tianxie };private String[] mImageNames = { "巨蟹座", "摩羯座", "射手座", "狮子座", "双鱼座", "双子座","水平座", "天秤座", "天蝎座" };private int mCurrentImage = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);final int width = metric.widthPixels;final ImageView imgView = (ImageView) findViewById(R.id.image);final EditText edit = (EditText) findViewById(R.id.edt);imgView.setImageResource(mImages[0]);edit.setText(mImageNames[0]);imgView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {if (event.getX() < width / 2) {if (mCurrentImage == 0) {mCurrentImage = mImages.length - 1;} else {mCurrentImage--;}} else {if (mCurrentImage == mImages.length - 1) {mCurrentImage = 0;} else {mCurrentImage++;}}}imgView.setImageResource(mImages[mCurrentImage]);edit.setText(mImageNames[mCurrentImage]);return true;}});}
}
2.实现效果
3.该程序用到了获取屏幕大小的方法:
DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);final int width = metric.widthPixels;
为什么要获取pixel而不是dip呢,这是因为我查看了API后得出的结果,在onTouch()方法中通过event.getX();返回的正是pix。API中是这样说的:
getX
public final float getX()Returns the X coordinate of this event. <span style="color:#ff0000;">Whole numbers are pixels;</span> the value may have a fraction for input devices that are sub-pixel precise.
4.给出px和dip的转换:
public static int dip2px(Context context, float dipValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}public static int px2dip(Context context, float pxValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
希望以后可以用上这个转换
android ImageView实现图片浏览器(点击左侧显示上一张,点击右侧显示下一张)相关推荐
- linux 浏览器源码下载,Android开发:图片浏览器源码
Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...
- 【Android】简单图片浏览器
开始重新学习Android,还是依照<疯狂Android讲义>. 简单图片浏览器: 功能:图片浏览器,点击图片可以切换. 注意:在res/drawable中添加p1.jpg.p2.jpg. ...
- Android幻灯片式图片浏览器
今天我们通过使用Android提供给我们的现有空间Gallery和ImageSwitcher来实现一个幻灯片式的图片浏览器. (1)首先我们新建一个工程,修改主布局文件activity_main.xm ...
- android开发 图片浏览器,Android开发之图片浏览器
Android图片浏览器,可以调整图片透明度和按顺序切换图片. 以下是activity的xml文件: xmlns:tools="http://schemas.android.com/tool ...
- android imageview清空图片,ImageView基本使用
1. ImageView使用 ImageView是用于在界面上展示图片的一个控件.图片通常都放在以drawable开头的目录下. 1.1 src与background属性 示例: android:id ...
- 利用Gallery和ImageView实现图片浏览器
首先,先看一下实现的截图: 如图所示, 其中布局的第一个控件是Gallery,显示的图片滑动浏览,这里用到一个继承自BaseAdapter的类对象,用于填充和显示Gallery中的内容: 布局的第二个 ...
- android imageview 拉伸图片大小,【教程】安卓保证图片长宽比的同时拉伸图片
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在Android当中我们经常会遇到需要将一个图片拉伸用于填充屏幕的问题, 对于拉伸图片符合屏幕大小,我们通常可以在这个ImageView的配置文件 当中加 ...
- Android ImageView设置图片原理
关于图片和ImageView,其实有更多可以介绍的,比如在解析图片前获得图片的宽高,用来做图片适配:比如等比例缩小图片,以减小内存占用:比如图片旋转效果等等. 第一个问题和第二个问题: BitmapF ...
- Android 调用系统图片浏览器
http://www.blogbus.com/java-android-logs/151611473.html 在做各种项目的时候会经常遇到需要调用系统图片查看器来查看自己需要查看的图片,因为这样就可 ...
最新文章
- 数秒植入木马,一击即破,你的DNN模型还安全吗?
- Winform中怎样对窗体进行隐藏,再次打开时仍然保留上次的窗体
- Activiti 简易教程
- C语言 const 修饰变量 - C语言零基础入门教程
- Mouse Jiggler – 自动移动光标,防止电脑启动屏保、进入休眠[Windows]
- 如何在手机上使用TensorFlow
- 为了测试自动驾驶,福特将车带到了一个仿造城市
- hdu 3829 最大独立集
- html5介绍 之亮点特性
- 上传文件插件uploadify应用简单说明
- PHP学习笔记【27】--服务端存储技术Session
- vue学习笔记-7-分支结构
- Visio2013安装教程
- ubuntu和win7共享文件
- Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version ‘202.7660.26.42.74
- [转]字号、pt、px、inch、cm 之间的关系及对照表
- 分享个PDF文件签名盖章 DEMO
- 虚假共识—阿比勒尼悖论:“枪打出头鸟”与“事后诸葛亮”
- Verilog语言要素(三)
- 读Tan基于最大化对比度的去雾方法
热门文章
- 有关文本框的高考计算机视频,高职考技能提升教程006期 textbox文本框综合运用 VB语言 高考信息技术必备...
- 「解析」牛客网-华为机考企业真题 41-60
- 2021年T电梯修理考试及T电梯修理考试题库
- Vue2的自行封装胶囊图组件,通过父组件传值给子组件来改变数值和样式
- 算法训练 加法运算(你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示)
- Linux (一) 创建虚拟机以及基本配置
- 用Python写一个一到一百的循环代码
- 收到来自Apple Music Team和Apple Books Team的邮件?
- 武装突袭3服务器修改数据,武装突袭3数据修改 | 手游网游页游攻略大全
- Matlab实现移动曲面拟合法