栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[Android] 图片切换组件ImageSwitcher

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Android] 图片切换组件ImageSwitcher

ImageSwitcher组件的主要功能是完成图片的切换显示。
ImageSwitche是View的子类,所以View类的属性和方法ImageSwitcher都具备。

1.ImageSwitcher常用方法
  • public ImageSwitcher(Context context): 创建ImageSwitcher对象
  • public void setFactory(ViewSwitcher.ViewFactory factory):设置ViewFactory对象,用于完成两个图片切换时ViewSwitcher的转换操作
  • public void setImageResource(int resid): 设置显示的图片ID
  • public void setInAnimation (Animation inAnimation): 图片读进ImageSwitcher时的动画效果
  • public void setOutAnimation(Animation outAnimation): 图片从ImageSwitcher消失时的动画效果
  • public void setImageDrawable (Drawable drawable):绘制图片
  • public void setImageURI (Uri uri):设置图片地址,可读取网络图片
2.运行图



3.代码 (1)activity_main.xml


   
    
        
(2)MainActivity.java
package com.example.progressdialog;

import androidx.appcompat.app.AppCompatActivity;


import android.os.Bundle;
import android.view.View;

import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewSwitcher;


public class MainActivity extends AppCompatActivity {
    private ImageSwitcher imageSwitcher;
    private Button pre,next;
    private int []images={R.drawable.p1,R.drawable.p2,R.drawable.p3
            ,R.drawable.p4,R.drawable.p5,R.drawable.p6};
    private int count=0;//用于计数的变量

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageSwitcher=findViewById(R.id.imageSwitcher);
        pre=findViewById(R.id.pre);
        next=findViewById(R.id.next);  //获取组件id

        pre.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(MainActivity.this.count==0)
                    Toast.makeText(MainActivity.this,
                            "已是第一张,不能往前了!",Toast.LENGTH_SHORT).show();
                else //获取指定图片,并将图片计数减1
                    MainActivity.this.imageSwitcher.setImageResource
                            (MainActivity.this.images[--MainActivity.this.count]);

            }
        });
        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(MainActivity.this.count==images.length-1)
                    Toast.makeText(MainActivity.this,
                            "已是最后一张,不能往后了!",Toast.LENGTH_SHORT).show();
                else  //获取指定图片,并将图片计数加1
                    MainActivity.this.imageSwitcher.setImageResource
                            (MainActivity.this.images[++MainActivity.this.count]);

            }
        });
        //设置转换工厂
        imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                ImageView imageView=new ImageView(MainActivity.this); //定义imageView组件
                imageView.setBackgroundColor(0xFFFFFF); //设置背景
                //按图片居中显示,当图片长/宽超过view的长/宽时,截取图片居中部分进行显示
                imageView.setScaleType(ImageView.ScaleType.CENTER);
                imageView.setLayoutParams(new FrameLayout.LayoutParams
                        (FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
                return imageView ;
            }
        });
        imageSwitcher.setImageResource(images[count]);
        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));//设置进入时的动画效果
        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));//设置离开时的动画效果




    }
}

图片资源下载后,复制到 res目录下drawable文件夹下。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号