17讲 UI常用组件之ImageView图片浏览

二、图片浏览ImageView

ImageView就是一个用来显示图片的视图;

ImageView常见属性

常见属性

对应方法

说明

android:adjustViewBounds

setAdjustViewBounds(boolean)

是否保持宽高比。需要与maxWidth、MaxHeight一起使用,单独使用没有效果。

android:maxHeight

set MaxHeight(int)

设置View的最大高度。需要与setAdjustViewBounds一起使用。

android:maxWidth

set MaxWidth(int)

设置View的最大宽度。同上。

android:scaleType

setScaleType(ImageView. ScaleType)

设置图片的填充方式。

android:src

setImageResource(int)

设置View的drawable(如图片,也可以是颜色,但是需要指定View的大小)

setAlpha (int alpha)

设置透明度

setImageBitmap (Bitmap bm)

设置位图作为该 ImageView 的内容。

setImageDrawable (Drawable drawable)

设置可绘制对象为该 ImageView 显示的内容。

setImageResource (int resId)

设置指定ID的资源为该 ImageView 显示的内容。

setImageURI (Uri uri)

设置指定的 URI 为该 ImageView 显示的内容。

setSelected (boolean selected)

设置视图的选中状态。

1.显示图片:

在activity_main.xml中添加一个ImageView,将图片a1.jpg放置在res中的drawable文件夹中;

在activity_main.xml中编写程序

<ImageView

android:id="@+id/imageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/a1" />

2.实现点击图片进行切换:

首先,将图片a1.jpg, a2.jpg, a3.jpg, a4.jpg放置在res中的drawable文件夹中;

然后,将图片进行排序,将其引用放置在数组中;

private int[] a= new int[]{

R.drawable.a1,

R.drawable.a2,

R.drawable.a3,

R.drawable.a4,

};

设置切换用的计数器count。

private int count=0;

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ImageView imageView=(ImageView) findViewById(R.id.imageView1);

imageView.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

ImageView view=(ImageView) v;

if(count==3){                          //当到达最后一张图片时,在点击将切换到第一张图片

count= -1;

}

view.setImageResource(a[++count]);

}

});

}

3. 实现点击图片进行左右切换:

点击图片左边,切换到前一张图片;点击图片右边,切换到下一张图片。

需要解决: a1.如何在图片点击过程中,获得点击处X轴坐标; a2.获取屏幕宽度。

ImageView imageView=(ImageView)findViewById(R.id.imageView1);

Final int width =this.getWindowManager().getDefaultDisplay().getWidth();

//利用touch方法可以获得点击现场的信息。

imageView.setOnTouchListener(newOnTouchListener() {

publicboolean onTouch(View v, MotionEvent event) {

//如何在图片点击过程中,获得点击处X轴坐标

intx = (int) event.getX();

ImageViewview=(ImageView) v;

if(x>=(width/2)){

if(count==3){

count=-1;

}

view.setImageResource(a[++count]);

}else{

if(count==0){

count=4;

}

view.setImageResource(a[--count]);

}

returnfalse;

}

});

第17讲- UI常用组件之ImageView图片浏览的更多相关文章

  1. 第18讲- UI常用组件之EditText

    第18讲UI常用组件之EditText 三.文本输入框EditText EditTex类继承自TextView.EditText是接受用户输入信息的最重要控件.在html当中,相当于<input ...

  2. 第31讲 UI组件之 Gallery画廊控件

    第31讲 UI组件之 Gallery画廊控件 1.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery只 ...

  3. 第30讲 UI组件之 GridView组件

    第30讲 UI组件之 GridView组件 1.网格布局组件GridView GridView是一个ViewGroup(布局控件),可使用表格的方式显示组件,可滚动的控件.一般用于显示多张图片,比如实 ...

  4. 第32讲 UI组件之 时间日期控件DatePicker和TimePicker

    第32讲 UI组件之 时间日期控件DatePicker和TimePicker 在Android中,时间日期控件相对来说还是比较丰富的.其中, DatePicker用来实现日期输入设置,    Time ...

  5. 第29讲 UI组件之 ListView与 BaseAdapter,SimpleAdapter

    第29讲 UI组件之 ListView与 BaseAdapter,SimpleAdapter 1.BaseAdapter BaseAdapter是Android应用程序中经常用到的基础数据适配器,它的 ...

  6. 第28讲 UI组件之 ListView和ArrayAdapter

    第28讲 UI组件之 ListView和ArrayAdapter 1. Adapter 适配器 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的 ...

  7. 第16讲- UI组件之TextView

    第16讲 UI组件之TextView Android系统所有UI类都是建立在View和ViewGroup这两类的基础上的. 所有View的子类称为widget:所有ViewGroup的子类称为Layo ...

  8. 第34讲 UI组件之 ProgressDialog和Message

    第34讲UI组件之 ProgressDialog和Message 1.进度对话框 ProgressDialog <1>简介 ProgressDialog是AlertDialog类的一个扩展 ...

  9. 第33讲 UI组件_进度条ProcessBar和消息队列处理器handler

    第33讲UI组件_进度条ProcessBar和消息队列处理器handler 1. 进度条ProcessBar 一个可视化的进度指示器,代表正在执行的耗时任务.可以为用户展示一个进度条,表示正在执行的任 ...

随机推荐

  1. shiro内置过滤器研究

    anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shiro.web.filter.authc.FormA ...

  2. poj 3666 Making the Grade(dp)

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  3. STL采用的标准模板库

    一.map,set set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于 ...

  4. Dalvik虚拟机Java堆创建过程分析

    文章转载至罗升阳CSDN社区博客,原地址: http://blog.csdn.net/luoshengyang/article/details/6557518 近年来,手机移动平台越来越火爆.打开自己 ...

  5. RegexOptions.Compiled性能

    原文:http://www.cnblogs.com/me-sa/archive/2010/05/19/Is-RegexOptions-Compiled-a-Killer.html "使用正则 ...

  6. IIS注册asp.net 4.0

    如果你是先装的VS后添加的IIS功能,那么你需要在ISS中注册NET Framework: 32位的Windows:------------------------------------------ ...

  7. WinForm窗体设置

    属性: 软件启动后在屏幕中间 StartPosition = CenterScreen取消放大按钮 MaximizeBox = false不能拖动边框 FormBorderStyle = FixedD ...

  8. EF执行存储过程(带输出参数)

    1.不含动态sql.带输出参数存储过程调用实例 1.存储过程代码:   2.EF自动生成代码(包括对应ObjectResult的实体模型): 3.调用存储过程代码实例: 总结: ObjectParam ...

  9. Windows服务简单实例

    1.定时器使用 partial class TimerService : ServiceBase { public TimerService() { InitializeComponent(); } ...

  10. Csharp 高级编程 C7.1.2

    第七章 代理(1) 一.代理要声明 二.代理使用步骤 声明代理 初始化代理(使用 实例的方法名 作为参数) 使用代理 代码示例: /*C7.1.2*/ using System; using Syst ...