首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android开发_ImageSwitcher

android开发_ImageSwitcher

作者头像
Hongten
发布2018-09-13 15:41:02
4400
发布2018-09-13 15:41:02
举报
文章被收录于专栏:HongtenHongten

新建项目:

项目结构:

运行效果:

代码部分:

imageswitcherpage.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 
 3 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 4     android:layout_width="match_parent" 
 5     android:layout_height="match_parent"> 
 6     
 7     <ImageSwitcher android:id="@+id/switcher"
 8         android:layout_width="match_parent"
 9         android:layout_height="match_parent"
10         android:layout_alignParentTop="true"
11         android:layout_alignParentLeft="true"
12     />
13     
14     <Gallery android:id="@+id/gallery"
15         android:background="#55000000"
16         android:layout_width="match_parent"
17         android:layout_height="60dp"
18         android:layout_alignParentBottom="true"
19         android:layout_alignParentLeft="true"
20         
21         android:gravity="center_vertical"
22         android:spacing="16dp"
23     />
24 
25 </RelativeLayout>

MainActivity.java

  1 package com.b510;
  2 
  3 import android.app.Activity;
  4 import android.content.Context;
  5 import android.os.Bundle;
  6 import android.view.View;
  7 import android.view.ViewGroup;
  8 import android.view.Window;
  9 import android.view.animation.AnimationUtils;
 10 import android.widget.AdapterView;
 11 import android.widget.BaseAdapter;
 12 import android.widget.Gallery;
 13 import android.widget.ImageSwitcher;
 14 import android.widget.ImageView;
 15 import android.widget.AdapterView.OnItemSelectedListener;
 16 import android.widget.Gallery.LayoutParams;
 17 import android.widget.ViewSwitcher.ViewFactory;
 18 
 19 public class MainActivity extends Activity implements OnItemSelectedListener,
 20         ViewFactory {
 21     /** 定义一个切换图片对象is */
 22     private ImageSwitcher is;
 23     /** 定义一个画廊Galley对象 */
 24     private Gallery gallery;
 25 
 26     /** 定义图片资源 */
 27     private Integer[] mThumbIds = { R.drawable.b, R.drawable.p4, R.drawable.d,
 28             R.drawable.f, R.drawable.p8, R.drawable.p1, R.drawable.p2,
 29             R.drawable.p3, R.drawable.c, R.drawable.p5, R.drawable.p6,
 30             R.drawable.p7, R.drawable.g, };
 31     /** 定义图片的id */
 32     private Integer[] mImageIds = { R.drawable.b, R.drawable.p4, R.drawable.d,
 33             R.drawable.f, R.drawable.p8, R.drawable.p1, R.drawable.p2,
 34             R.drawable.p3, R.drawable.c, R.drawable.p5, R.drawable.p6,
 35             R.drawable.p7, R.drawable.g, };
 36 
 37     @Override
 38     protected void onCreate(Bundle savedInstanceState) {
 39         // TODO Auto-generated method stub
 40         super.onCreate(savedInstanceState);
 41         // 关掉在屏幕顶端的标题
 42         requestWindowFeature(Window.FEATURE_NO_TITLE);
 43         // 得到图片的布局文件
 44         setContentView(R.layout.imageswitcherpage);
 45         // 初始化is对象
 46         is = (ImageSwitcher) findViewById(R.id.switcher);
 47         // 设置工厂用来创建两种视图的ViewSwitcher之间会翻转
 48         is.setFactory(this);
 49         // 定义的动画
 50         is.setInAnimation(AnimationUtils.loadAnimation(this,
 51                 android.R.anim.fade_in));
 52         is.setOutAnimation(AnimationUtils.loadAnimation(this,
 53                 android.R.anim.fade_out));
 54 
 55         gallery = (Gallery) findViewById(R.id.gallery);
 56         // 给画廊添加适配器
 57         gallery.setAdapter(new ImageAdapter(this));
 58         // 给画廊中的每一个item设置选择监听器
 59         gallery.setOnItemSelectedListener(this);
 60     }
 61 
 62     // 重写makeView方法
 63     @Override
 64     public View makeView() {
 65         ImageView i = new ImageView(this);
 66         i.setBackgroundColor(0xFF000000);
 67         i.setScaleType(ImageView.ScaleType.FIT_CENTER);
 68         i.setLayoutParams(new ImageSwitcher.LayoutParams(
 69                 LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
 70         return i;
 71     }
 72 
 73     public class ImageAdapter extends BaseAdapter {
 74         public ImageAdapter(Context c) {
 75             mContext = c;
 76         }
 77 
 78         public int getCount() {
 79             return mThumbIds.length;
 80         }
 81 
 82         public Object getItem(int position) {
 83             return position;
 84         }
 85 
 86         public long getItemId(int position) {
 87             return position;
 88         }
 89 
 90         public View getView(int position, View convertView, ViewGroup parent) {
 91             ImageView i = new ImageView(mContext);
 92 
 93             i.setImageResource(mThumbIds[position]);
 94             i.setAdjustViewBounds(true);
 95             i.setLayoutParams(new Gallery.LayoutParams(
 96                     LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 97             i.setBackgroundResource(R.drawable.e);
 98             return i;
 99         }
100 
101         private Context mContext;
102 
103     }
104 
105     @Override
106     public void onItemSelected(AdapterView<?> parent, View view, int position,
107             long id) {
108         // 当每一个对象被选择时得到图像的id
109         is.setImageResource(mImageIds[position]);
110 
111     }
112 
113     @Override
114     public void onNothingSelected(AdapterView<?> parent) {
115 
116     }
117 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-11-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档