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.实现效果

android ImageView实现图片浏览器(点击左侧显示上一张,点击右侧显示下一张)_第1张图片

3.该程序用到了获取屏幕大小的方法:

DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);final int width = metric.widthPixels;
为什么要获取pixel而不是dip呢,这是因为我查看了API后得出的结果,在onTouch()方法中通过event.getX();返回的正是pix。API中是这样说的:

getXpublic final float getX()Returns the X coordinate of this event. Whole numbers are pixels; 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);}
希望以后可以用上这个转换

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android 添加混淆
  2. Android(安卓)NDK 工具链的使用方法(Stand
  3. Android‘s process
  4. 让TextView的drawable与文字一起居中
  5. Android:音视频刻录
  6. Universal Image Loader库使用方法
  7. android圆盘菜单效果
  8. 自定义线程池管理类
  9. Android布局颜色对应值
  10. Android——Activity跳转