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. 【转】USB协议架构及驱动架构

    1. USB协议 1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器.USB主机控制器包含硬件.软件和固件一部分. 1.2 USB设备系统 ...

  2. Perl 多线程模块 Parallel::ForkManager

    Perl 多线程模块 Parallel::ForkManager 一个简单的并行处理模块.这个是用来对付循环的多线程处理. 放在循环前面. Table of Contents 1 Synops内容简介 ...

  3. hdu4126Genghis Khan the ConquerorGenghis Khan the Conqueror(MST+树形DP)

    题目请戳这里 题目大意:给n个点,m条边,每条边权值c,现在要使这n个点连通.现在已知某条边要发生突变,再给q个三元组,每个三元组(a,b,c),(a,b)表示图中可能发生突变的边,该边一定是图中的边 ...

  4. 高性能MySql进化论【转】

    高性能MySql进化论(十二):Mysql中分区表的使用总结 http://binary.duapp.com/category/sql 当数据量非常大时(表的容量到达GB或者是TB),如果仍然采用索引 ...

  5. [RxJS] Error Handling in RxJS

    Get your code back on the happy path! This lesson covers a variety of ways to handle exceptions thro ...

  6. Fantageek翻译系列之《使用Autolayout显示变化高度的UITableViewCell》

    这篇博客主要在于,解释如何通过仅仅使用Autolayout很很少的代码,显示高度不同的Cell.虽然标题说的是TableView,但是CollectionView同样适合.但是,这种方法只使用iOS7 ...

  7. 静态方法中不能new内部类的实体对象

    原因如下: 1.内部类可以访问外部类的成员变量 2.对象创建完成后对象的成员变量才会被分配空间 3.main的静态方法执行时可以不存在外部类,不创建实体对象 4.内部类能访问成员变量意味着一定存在外部 ...

  8. compass模块----Helpers

    Color Stops:在使用CSS3渐变属性生成图片的时候,有时候为了打造更丰富的渐变效果除了声明渐变线上的起始点和终止点的色值,还有声明一些中间点的色值,这些点我们就称之为Color Stops. ...

  9. Introduction to the POM

    原文:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html Introduction to the POM ...

  10. java-web-dom4j解析XML-递归方式

    <?xml version="1.0" encoding="UTF-8"?><书架>  <书 出版日期="2013-10 ...