android ImageView实现图片浏览器(点击左侧显示上一张,点击右侧显示下一张)
2015-01-18 15:39
1106 查看
1.实现代码如下:
2.实现效果
3.该程序用到了获取屏幕大小的方法:
4.给出px和dip的转换:
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; @Override protected 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() { @Override public 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拍照,并将相机拍摄的图片显示在ImageView上
- 完全用xml实现imageview点击换一张图片
- Android自定义ImageView实现圆形控件显示
- Android:自定义imageview实现两条线裁剪图片,不在区域内显示阴影
- android布局时,左侧宽度固定而右侧textview高度变化,怎么9png实现左侧高度与右侧相等?
- Android自定义AvatarImageView实现头像显示效果
- Android编程简单实现ImageView点击时背景图修改的方法
- 如何实现点击GridView中一个图片后,如何传递至一个新的Activity中的imageview里面显示?
- react native开发:实现点击左侧选择项,右侧显示内容的功能
- Android之---ImagView显示图片(将一张图片按原图大小合理显示在imageView上,避免OOM)
- android中实现ImageView中显示视频的略缩图
- Android实战,实现文本读取,实现assets下资源文本的读取,实现l列表下隐藏TextView点击显示
- Android 单个TextView 点击“显示全部”功能实现方法
- Android中ImageView实现选择本地图片并显示功能
- 点击listview中的imageview实现拍照然后显示
- Android实现将控件等View转化为Bitmap对象,通过ImageView显示的功能
- Android 自定义EditText 实现获得焦点并且有内容显示右侧图片并点击清空内容
- TextView属性android:ellipsize实现跑马灯效果,TextView内容过长加省略号,点击显示全部内容
- 用JavaScript实现点击左侧列表右侧显示列表内容的方法
- Android TextView实现点击显示全文与隐藏功能(附源码)