刚刚写完博文http://blog.csdn.net/jueblog/article/details/12209969之后,就想着能不能让图片循环播放呢?

试验出一个简便易行的方法。

Activity作如下改进:

只需修改第36行即可:

imagedemo.setImageDrawable(getResources().getDrawable(iViews[position%iViews.length]));

即:

package com.app.test01;import com.app.adapter.ImageAdapter;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.Gallery;import android.widget.ImageView;public class GalleryTest extends Activity{Gallery gallery;ImageView imagedemo;ImageAdapter iAdapter = new ImageAdapter(this);@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_gallery);gallery = (Gallery) findViewById(R.id.gallery1);imagedemo = (ImageView) findViewById(R.id.imagedemo);gallery.setAdapter(iAdapter);gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubInteger[] iViews = iAdapter.getmImageIds();imagedemo.setImageDrawable(getResources().getDrawable(iViews[position%iViews.length]));}});}}


对BaseAdapter适配器做如下改进:

package com.app.adapter;import com.app.test01.R;import android.content.Context;import android.content.res.TypedArray;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;public class ImageAdapter extends BaseAdapter {    private Context mContext;    public ImageAdapter(Context c) {        mContext = c;    }    public int getCount() { /* 重写方法getCount,传回图片数目总数 */        return Integer.MAX_VALUE;    }    public Object getItem(int position) {/* 重写的getItem,传回position */        return position;    }    public long getItemId(int position) {/*重写方法getItemId,传回position */         return position;    }    public View getView(int position, View convertView, ViewGroup parent) {        ImageView i = new ImageView(mContext);        i.setImageResource(mImageIds[position%mImageIds.length]);/* 设定图片给imageView对象 */          i.setLayoutParams(new Gallery.LayoutParams(150,75));        return i;    }    public Integer[] getmImageIds() {return mImageIds;}public void setmImageIds(Integer[] mImageIds) {this.mImageIds = mImageIds;}private Integer[] mImageIds = {            R.drawable.image01,            R.drawable.image02,            R.drawable.image03,            R.drawable.image04,            R.drawable.image05,            R.drawable.image06,            R.drawable.image07,            R.drawable.image08,            R.drawable.image09,    };}

如你所见,仅需修改21行和34行。从而即可实现Gallery组件的循环播放。

更多相关文章

  1. 阅读Android消息机制源码的随手笔记
  2. 为何GoogleSearch中可以嵌入EditText?
  3. Android(安卓)应用权限管理默认开关的修改方法
  4. Android(安卓)WebView 全面干货指南
  5. 【Android(安卓)界面效果13】关于全屏和取消标题栏
  6. Android面试题(数据存储、view篇)
  7. Android(安卓)Service 介绍
  8. android 自动弹起键盘
  9. 恢复出厂设置的两种方法,亲测可行

随机推荐

  1. JavaScript 诞生25周年,这26个里程碑值得
  2. Apollo 源码解析 —— Portal 关联 Names
  3. 基于Spring Security Oauth2的SSO单点登
  4. Spring Job?Quartz?XXL-Job?年轻人才做选择,
  5. jQuery 3D焦点图动画,多种炫酷图片切换特
  6. 「webpack 核心特性」loader
  7. CSS3 3D旋转下拉菜单
  8. Apollo 源码解析 —— 服务自身配置 Serv
  9. Apollo 源码解析 —— Config Service 记
  10. 用JavaScript实现二叉搜索树[每日前端夜