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

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;

                   }

});