ImageSwitcher 图片切换器

Posted superxuezhazha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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])
        
    
主程序

 

以上是关于ImageSwitcher 图片切换器的主要内容,如果未能解决你的问题,请参考以下文章

基于图像切换器(imageSwitcher)的支持动画的图片浏览器

阅读《Android 从入门到精通》(24)——切换图片

android 图片滑动控件

Android攻城狮Gallery和ImageSwitcher制作图片浏览器

Android Gallery和ImageSwitcher同步自动(滚动)播放图片库

Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库