Android提供三种常用的图像类组件,分别是ImageView组件,Gallery组件和ImageSwitcher组件,其中,ImageView组件用来显示图像视图,Gallery组件用来显示画廊视图,而ImageSwitcher组件用来表示一个图像切换器。
ImageView组件:
ImageView也就是图像视图,用于在屏幕中显示任何的Drawable对象,通常用来显示图片。在Android中使用图片之前,通常要将要显示的图片放置在res/drawable目录中,然后应用下面的代码将其显示在布局管理器中

<ImageView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/calculator" />

Gallery组件
画廊视图使用Gallery表示,能够按水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可以响应显示信息。在使用画廊需要在XML布局文件中添加Gallery标签,也需要使用Adapter提供要显示的数据,通常使用BaseAdapter类为Gallery组件提供数据。

Step1,在XML布局文件中添加以下代码设置Gallery组件的id属性,未选择项的透明度:

<Gallery  android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/gall" android:spacing="5dp" android:unselectedAlpha="0.5" >

Step2,在主活动中定义一个用于保存要显示图片ID的数组:

<declare-styleable name="Gallery">        <attr name="android:galleryItemBackground"/>    </declare-styleable>

Step3,在onCreate方法中获取在布局文件中添加的画廊视图:

 Gallery gallery=(Gallery)findViewById(R.id.gall);

Step4,在string.xml文件中定义一个新的对象,该对象用于组合多个属性,这里定义了一个系统自带的属性– android:galleryItemBackground;用于设置各属性的背景:

BaseAdapter adapter=new BaseAdapter() {            @Override            public int getCount() {                return imageID.length;            }            @Override            public Object getItem(int position) {                return position;            }            @Override            public long getItemId(int position) {                return position;            }            @Override            public View getView(int position, View convertView, ViewGroup parent) {                ImageView imageView;//声明对象                if(convertView==null){                    imageView=new ImageView(MainActivity.this);//创建对象                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);//设置缩放方式                    imageView.setLayoutParams(new Gallery.LayoutParams(180, 135));                    TypedArray typedArray=obtainStyledAttributes(R.styleable.Gallery);                    imageView.setBackgroundResource(typedArray.getResourceId(R.styleable.                            Gallery_android_galleryItemBackground,0));                    imageView.setPadding(5,0,5,0);                }else{                    imageView=(ImageView)convertView;                }                imageView.setImageResource(imageID[position]);                return imageView;            }        };

Step5,创建BaseAdapter类的对象,并重写其中的各方法。最重要的是重写getView()方法来设置显示图片的格式:

gallery.setAdapter(adapter);        gallery.setSelection(imageID.length / 2);        gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Toast.makeText(MainActivity.this                ,"你选择了"+String.valueOf(position)+"张图片",Toast.LENGTH_SHORT).show();            }        });

ImageSwitcher组件
图像切换器使用ImageSwitcher表示,用于实现类似于图片查看器的上一张、下一张的功能。在使用ImageSwitcher前需要使用ViewSwitcher.ViewFactory接口,并通过makeView()方法来创建用于显示图片的ImageView。在使用ImageSwitcher组件时还需要使用setImageResource()方法来指定在中显示的图片资源。
Step1,在XML布局文件中添加标签ImageSwitcher,并设置图像切换器布局:

 <Button  android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上一张" android:id="@+id/bt1" android:layout_gravity="center" />    <ImageSwitcher  android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/imgSw" >    </ImageSwitcher>    <Button  android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一张" android:id="@+id/bt2" android:layout_gravity="center"/></LinearLayout>

Step2,在主活动窗口中,初始化一个保存要显示图像ID的数组,然后声明一个当前显示图像索引的变量,最后再声明一个图像切换器的对象:

 private  int[] imgID=new int[]{R.drawable.android,R.drawable.bluetooth,R.drawable.browser,    R.drawable.bump,R.drawable.calculator,R.drawable.galaxy};    private  int index=0;    private ImageSwitcher imageSwitcher;

Step3,在主活动窗口的onCreate()方法中,首先获取布局文件中添加的图像切换器,并为其设置淡入淡出效果。再设置imageSwitcher.setFactory,重写makeView(),在里面设置图像显示的方式、大小等信息。最后设置初始默认显示的图片:

            imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {            @Override            public View makeView() {                ImageView imageView = new ImageView(MainActivity.this);                imageView.setAdjustViewBounds(true);                imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);                imageView.setLayoutParams(new ImageSwitcher.LayoutParams(240, 180));                return imageView;            }        });        imageSwitcher.setImageResource(imgID[index]);

Step4,获取用于控制显示图片动作的按钮,编写监听事件:

Button up=(Button)findViewById(R.id.bt1);        Button down=(Button)findViewById(R.id.bt2);        up.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if(index>0){                    index--;                }else{                    index=imgID.length-1;                }                imageSwitcher.setImageResource(imgID[index]);            }        });        down.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if(index<imgID.length-1){                    index++;                }else{                    index=0;                }                imageSwitcher.setImageResource(imgID[index]);            }        });

更多相关文章

  1. android ListView 中getview学习总结
  2. android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(一)
  3. Android(安卓)App组件之Fragment说明和示例
  4. Android(安卓)网络图片加载
  5. React Native开发——Image组件
  6. Android学习进阶和IoC
  7. 第一天Android校内实习笔记--回顾
  8. Android中Density和Pixel的关系对界面显示的影响
  9. Android(安卓)修改SeekBar样式,打造理想进度条

随机推荐

  1. Android手机开机动画的修改
  2. 随想录(一个android原生app的代码赏析)
  3. Android使用HttpURLConnection请求网络返
  4. 开发android 环境配置需要下载的工具
  5. android http 抓包
  6. Android 使用MPAndroidChart:v3.1.0绘制
  7. android 获取非系统应用
  8. Android(安卓)中的menu以及自定义menu
  9. 搭建android开发环境问题汇总
  10. 【转】Android 文件系统的权限设置