ImageSwitcher 图片切换器

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal">
    <!-- 定义一个GridView组件 -->
    <GridView
        android:id="@+id/grid01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:horizontalSpacing="2dp"
        android:verticalSpacing="2dp"
        android:numColumns="4"
        android:gravity="center"/>
    <!-- 定义一个ImageSwitcher组件 -->
    <ImageSwitcher android:id="@+id/switcher"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center_horizontal"
        android:inAnimation="@android:anim/fade_in"
        android:outAnimation="@android:anim/fade_out"/>
</LinearLayout>

主界面

package com.example.viewswitcher

import android.app.Activity
import android.os.Bundle
import android.view.View
import android.view.ViewGroup.LayoutParams
import android.widget.*
import android.widget.ViewSwitcher.ViewFactory
import android.widget.AdapterView.OnItemClickListener
import android.widget.AdapterView.OnItemSelectedListener

class MainActivity : Activity()
{
    internal var imageIds = intArrayOf(R.drawable.bomb5, R.drawable.bomb6,
        R.drawable.bomb7, R.drawable.bomb8, R.drawable.bomb9,
        R.drawable.bomb10, R.drawable.bomb11, R.drawable.bomb12,
        R.drawable.bomb13, R.drawable.bomb14, R.drawable.bomb15,
        R.drawable.bomb16)
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // 创建一个List对象,List对象的元素是Map
        val listItems = ArrayList<Map<String, Any>>()
        for (i in imageIds.indices)
        {
            val listItem = HashMap<String, Any>()
            listItem["image"] = imageIds[i]
            listItems.add(listItem)
        }
        // 获取显示图片的ImageSwitcher
        val switcher = findViewById<ImageSwitcher>(R.id.switcher)
        // 为ImageSwitcher设置图片切换的动画效果
        // 使用Lambda表达式创建ViewFactory,表达式是makeView方法()的方法体
        switcher.setFactory    {
            // 创建ImageView对象
            val imageView = ImageView(this@MainActivity)
            imageView.scaleType = ImageView.ScaleType.FIT_CENTER
            imageView.layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT)
            // 返回ImageView对象
            imageView
        }
        // 创建一个SimpleAdapter
        val simpleAdapter = SimpleAdapter(this, listItems, R.layout.cell,
            arrayOf("image"), intArrayOf(R.id.image1)) // 使用/layout/cell.xml文件作为界面布局
        val grid = findViewById<GridView>(R.id.grid01)
        // 为GridView设置Adapter
        grid.adapter = simpleAdapter
        // 添加列表项被选中的监听器
        grid.onItemSelectedListener = object : OnItemSelectedListener
        {
            override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long)
            {
                // 显示当前被选中的图片
                switcher.setImageResource(imageIds[position])
            }

            override fun onNothingSelected(parent: AdapterView<*>)
            {
            }
        }
        // 添加列表项被单击的监听器
        grid.setOnItemClickListener {parent, view, position, id ->
            // 显示被单击的图片
            switcher.setImageResource(imageIds[position])
        }
    }
}

主程序

原文地址:https://www.cnblogs.com/superxuezhazha/p/11519508.html

时间: 2024-11-12 01:04:11

ImageSwitcher 图片切换器的相关文章

Android 高级UI设计笔记12:ImageSwitcher图片切换器

1. ImageSwitcher ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果...,颇有感觉啊.做相册一绝 2. 重要方法 setImageURI(Uri uri):设置图片地址 setImageResource(int resid):设置图片资源库 setImageDrawable(Drawable drawable):绘制图片 3. 设置动画效果 imageSwitcher.setInAnimation(AnimationUtils.loadAni

ImageSwitcher (图像切换器,显示图片)

ImageSwitcher继承了ViewSwitcher,主要在切换图片时加入动画效果 使用方法: 1.为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的View组件必须是ImageView 2.切换图片时,用到的3个方法:imageSwitcher.setImageDrawable(Drawable drawable);  imageSwitcher.setImageResource(int resid);  imageSwitcher.setImage

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

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

从零开始学android&lt;ImageSwitcher图片切换组件.二十六.&gt;

ImageSwitcher组件的主要功能是完成图片的切换显示,例如用户在进行图片浏览的时候,可以通过按钮点击一张张的切换显示的图片,而且使用ImageSwitcher组件在每次切换的时候也可以为其增加一些动画的效果,此类定义如下: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.ViewAnimator ? android.wid

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

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

Android基础——高级UI组件:图像视图和图片切换器

layout代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.

从零開始学android&amp;lt;ImageSwitcher图片切换组件.二十六.&amp;gt;

ImageSwitcher组件的主要功能是完毕图片的切换显示,比如用户在进行图片浏览的时候.能够通过button点击一张张的切换显示的图片,并且使用ImageSwitcher组件在每次切换的时候也能够为其添加一些动画的效果,此类定义例如以下: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.ViewAnimator ? andro

ImageSwitcher图片切换控件

这个控件就是用来切换图片的,还可以加动画效果但是现在还没有学到. 思路是这样的:ImageSwitcher有个方法是setImageResource(); 但是这个方法有个条件你必须得实现视图工厂setFactory,让他知道你换后是什么类型的: 然后就是把所有资源存在一个数组里,我们可以通过点击按钮改变数组的下标来改变图片: 代码如下: private ImageSwitcher imgsw; private Button btn_add; private Button btn_shang; 

Android——ImageSwitcher 图片切换

public class ImageSwitcherActivity extends Activity implements OnClickListener,        ViewFactory {    // 所有要显示图片资源索引    private static final Integer[] imageList = { R.drawable.button1,            R.drawable.button2, R.drawable.button3, R.drawable.b