MainActivity.class

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener,ViewSwitcher.ViewFactory {
private Gallery gallery;
private ImageSwitcher imageSwitcher; //数据源
private int[] res = {R.drawable.item1,R.drawable.item2,R.drawable.item3,R.drawable.item4,
R.drawable.item5,R.drawable.item6, R.drawable.item7,R.drawable.item8,
R.drawable.item9,R.drawable.item10,R.drawable.item11,R.drawable.item12}; private ImageAdapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery = (Gallery) findViewById(R.id.gallery);
imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitch); adapter = new ImageAdapter(res,this);
gallery.setAdapter(adapter);
gallery.setOnItemSelectedListener(this); //imageSwitcher加载工厂factory
imageSwitcher.setFactory(this);
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out)); }
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
imageSwitcher.setBackgroundResource(res[position % res.length]);
} @Override
public View makeView() {
ImageView image = new ImageView(this);
//等比例 居中缩放
image.setScaleType(ImageView.ScaleType.CENTER.FIT_CENTER);
return image;
}

 ImageAdapter类 自己写的Adapter 继承于BaseAdapter

ImageAdapter.class
public class ImageAdapter extends BaseAdapter {
private int[] res;
private Context context;
public ImageAdapter(int[] res,Context context){
this.res = res;
this.context = context;
} //获取数量
@Override
public int getCount() {
return res.length;
// return Integer.MAX_VALUE; 约等于无限数量 } //获取项目
@Override
public Object getItem(int position) {
return res[position];
} //获取在适配器中的位置
@Override
public long getItemId(int position) {
return position;
} //获取单个的View
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//new出一个新的View
ImageView image = new ImageView(context); //给ImageView加载对应的图像资源
image.setBackgroundResource(res[position]);
//利用取余 无限图片位置 不受数目限制了 res[position % res.length] //设置view在Gallery中缩略图的大小
image.setLayoutParams(new Gallery.LayoutParams(200,150)); //设置缩放模式
image.setScaleType(ImageView.ScaleType.FIT_XY); return image;
}
}

 Activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <Gallery
android:id="@+id/gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"/> <ImageSwitcher
android:layout_gravity="center_vertical"
android:layout_below="@id/gallery"
android:id="@+id/imageswitch"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ImageSwitcher> </LinearLayout>

  

最新文章

  1. SharedPreferences 轻型的数据存储方式
  2. 将helps.php或者functions.php直接进行了加载
  3. ASP.NET 窗体间传值实现方法详解
  4. 好项目烂架构的问题,四年coder的吐槽
  5. Dev gridControl 添加表标题
  6. BFC--绝对值得你思考
  7. 【策略】UVa 11389 - The Bus Driver Problem
  8. eclipse中tomcat内存溢出问题,报PermGen space
  9. eclipse在ubuntu13.04下崩溃crash
  10. SSD的基本架构
  11. IIS日志字段详解
  12. 如何在.NET Core控制台程序中使用依赖注入
  13. python之format函数
  14. dotnet new 命令使用模板生成Angular应用
  15. SPOJ GSS3 (动态dp)
  16. Windows端部署zabbix-agent
  17. elasticSearch-header
  18. asp.net 子应用程序/虚拟目录 session共享
  19. jsfl 巧用获取jsfl绝对路径,导入配置文件,注意配置文件无法改变舞台宽高
  20. Tomcat6内存不足问题及解决方法

热门文章

  1. React Native安卓代码混淆和打包
  2. linux编译gpu_flow
  3. 《JAVA语言》第三节课
  4. 部署开源mock平台doclever简单叙述
  5. flask钩子函数
  6. PHP7 下安装 memcache 和 memcached 扩展
  7. Stream系列(十三) GroupingBy方法使用
  8. PYTHON 100days学习笔记005:总结和练习
  9. MySQL_bigint(20) 是什么意思?
  10. C++中枚举类型的作用