ImageSwitcher的功能和用法

先看看继承关系,ImageSwitcher和TextSwitcher的继承关系是一样的。两个重要的父类:ViewSwitcher和ViewAnimator
继承于ViewSwitcher,说明具备了切换功能
继承于ViewAnimator,说明具备了动画功能

重要方法

    setImageURI(Uri uri):设置图片地址

    setImageResource(int resid):设置图片资源库

    setImageDrawable(Drawable drawable):绘制图片

实例:

MainActivity.java

 1 public class MainActivity extends Activity {
 2     int[] image_ids = new int[] { R.drawable.focus_1, R.drawable.focus_2,
 3             R.drawable.focus_3, R.drawable.focus_4, R.drawable.focus_5,
 4             R.drawable.focus_7, R.drawable.focus_8, R.drawable.focus_9,
 5             R.drawable.focus_10, R.drawable.focus_11, R.drawable.focus_12,
 6             R.drawable.focus_13, R.drawable.focus_14, R.drawable.focus_15,
 7             R.drawable.focus_16 };
 8
 9     ImageSwitcher m_imageSwitcher;
10
11     @Override
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15         // 创建list容器,包含的元素是Map
16         List<Map<String, Object>> listMaps = new ArrayList<Map<String, Object>>();
17         for (int i = 0; i < image_ids.length; i++) {
18             Map<String, Object> item = new HashMap<String, Object>();
19             item.put("image", image_ids[i]);
20             listMaps.add(item);
21         }
22         m_imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitcher_id);
23         // 为imageSwitcher设置动画效果
24         m_imageSwitcher.setFactory(new ViewFactory() {
25
26             @Override
27             public View makeView() {
28                 // 创建ImageView对象
29                 ImageView image = new ImageView(MainActivity.this);
30                 image.setScaleType(ImageView.ScaleType.FIT_CENTER);
31                 image.setLayoutParams(new ImageSwitcher.LayoutParams(
32                         LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
33                 return image;
34             }
35         });
36         // 创建一个simpleAdapter
37         SimpleAdapter simpleAdapter = new SimpleAdapter(this, listMaps,
38                 R.layout.cell, new String[] { "image" },
39                 new int[] { R.id.image1 });
40         GridView gridView = (GridView)findViewById(R.id.gridview_id);
41         gridView.setAdapter(simpleAdapter);
42         //常见列表被选中的监听器
43         gridView.setOnItemSelectedListener(new OnItemSelectedListener() {
44             @Override
45             public void onItemSelected(AdapterView<?> parent, View view,
46                     int position, long id) {
47                 //显示当前被选中的图片
48                 m_imageSwitcher.setImageResource(image_ids[position]);
49             }
50
51             @Override
52             public void onNothingSelected(AdapterView<?> parent) {
53
54             }
55         });
56         //添加列表项被单机的监听器
57         gridView.setOnItemClickListener(new OnItemClickListener() {
58
59             @Override
60             public void onItemClick(AdapterView<?> parent, View view,
61                     int position, long id) {
62                 // 显示被单机的列表项
63                 m_imageSwitcher.setImageResource(image_ids[position]);
64             }
65         });
66     }
67
68     @Override
69     public boolean onCreateOptionsMenu(Menu menu) {
70         // Inflate the menu; this adds items to the action bar if it is present.
71         getMenuInflater().inflate(R.menu.main, menu);
72         return true;
73     }
74
75     @Override
76     public boolean onOptionsItemSelected(MenuItem item) {
77         // Handle action bar item clicks here. The action bar will
78         // automatically handle clicks on the Home/Up button, so long
79         // as you specify a parent activity in AndroidManifest.xml.
80         int id = item.getItemId();
81         if (id == R.id.action_settings) {
82             return true;
83         }
84         return super.onOptionsItemSelected(item);
85     }
86 }

activity_main.xml

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:gravity="center_horizontal"
 6     android:orientation="vertical"
 7     android:paddingBottom="@dimen/activity_vertical_margin"
 8     android:paddingLeft="@dimen/activity_horizontal_margin"
 9     android:paddingRight="@dimen/activity_horizontal_margin"
10     android:paddingTop="@dimen/activity_vertical_margin"
11     tools:context="com.crazy.gridview.MainActivity" >
12
13     <GridView
14         android:id="@+id/grid01"
15         android:layout_width="fill_parent"
16         android:layout_height="wrap_content"
17         android:gravity="center"
18         android:horizontalSpacing="1pt"
19         android:numColumns="4"
20         android:verticalSpacing="1pt" />
21
22     <ImageView
23         android:id="@+id/imageView"
24         android:layout_width="240dp"
25         android:layout_height="240dp"
26         android:layout_gravity="center_horizontal"
27         android:contentDescription="@string/string_yulan" />
28
29 </LinearLayout>

cell.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="horizontal"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     android:gravity="center_horizontal"
 7     android:padding="4pt"
 8     >
 9 <ImageView
10     android:id="@+id/image1"
11     android:layout_width="50dp"
12     android:layout_height="50dp"
13     android:contentDescription="@string/desc_image1"
14     />
15 </LinearLayout>

ImageSwitcher的功能和用法,布布扣,bubuko.com

时间: 2024-10-07 11:21:10

ImageSwitcher的功能和用法的相关文章

Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法

网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似性.GridView和ListView的主要区别在于:ListView只是一个方向上的分布:而GridView则会在两个方向上分布. 与ListView相似的是,GridView也需要通过Adapter来提供显示数据:可以通过SimpleAdapter来为GridView提供数据,也可以通过开发Ba

Android 自学之画廊视图(Gallery)功能和用法

Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显示的是一个水平的列表框.Gallery与Spinner有一个区别:Spinner的作用是供用户选择,而Gallery则允许用户通过拖动来查看上一个.下一个列表项. Gallery常用的XML属性及相关方法 XML属性 相关方法 说明 android:animationDuration setAnim

ViewSwitcher的功能和用法

ViewSwitcher 代表了视图切换组件, 本身继承了FrameLayout ,可以将多个View叠在一起 ,每次只显示一个组件.当程序控制从一个View切换到另个View时,ViewSwitcher 支持指定动画效果. 为了给ViewSwitcher 添加多个组件, 一般通过ViewSwitcher 的setFactory 方法为止设置ViewFactory ,并由ViewFactory为之创建View 即可. 下面通过一个实例来介绍 ViewFactory的用法.(仿Android系统L

GridView的功能和用法

GridView跟ListView的区别: GridView只有一列的话就是一个ListView simple: cell.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_paren

AdapterViewFlipper的功能和用法

AdapterView继承了AdapterViewAnimator,它也会显示Adapter提供的多个View组件,但每次只能显示一个View组件,程序可通过showPrevious和showNext()方法控制该组件显示上一个.下一个组件. AdapterViewFlipper可以在多个View切换过程中使用渐隐渐现的动画效果,除此之外,还可以调用该组件的startFlipping()控制它“自动播放”下一个View组件. 一个显示图片的例子来说明AdapterViewFlipper的用法:

Spinner的功能和用法

Gallery和Spinner的共同父类是: AbsSpinner.他们都是列表框,区别有二: 1.Spinner显示的是垂直的列表框,而Gallery显示的是水平的列表框: 2.Spinner的作用是供用户选择,Gallery是用户拖动来查看上一个下一个列表项: 举个例子来分别说明Spinner的用法:Galler是不推荐的控件! sample1(Spinner): activity_main.xml: <LinearLayout xmlns:android="http://schema

Android开发之DatePickerDialog与TimePickerDialog的功能和用法详解

DatePickerDialog与TimePickerDialog的功能比较简单,用法也很简单,只要下面两步即可. ?  通过new关键字创建DatePickerDialog.TimePickerDialog实例,调用它们的show()方法即可将日期选择对话框.时间选择对话框显示出来. ?  为DatePickerDialog.TimePickerDialog绑定监听器,这样可以保证用户通过DatePickerDialog.TimePickerDialog设置事件是触发监听器,从而通过监听器来获

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

日期.时间选择器(DatePicker和TimePicker)的功能和用法 DatePicker和TimePicker是两个比较常用的控件,它们都从FrameLayout派生而来,其中DatePicker用于选择日期.TimePicker用于选择时间. DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期.时间:开发者可以通过为DatePicker添加OnDateChangedListener.为TimePicker添加OnTimeC

图片切换器(ImageSwitcher)的功能与用法

ImageSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件时使用动画效果.ImageSwitcher继承了ViewSwitcher,并重写了ViewSwitcher的showNext().showPrevious()方法,因此ImageSwitcher使用起来更加简单.使用ImageSwitcher只要如下两步即可. 为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的View组件必须是I