图像类组件(图像切换器ImageSwitcher)
- 图像切换器:主要用于实现带动画效果的图片切换功能。
当用户左右滑动时,会切换图片,并伴随某种动画效果。
在activity_main.xml文件中,用ImageSwitcher标签来定义图片切换器。
- 属性:
- android:layout_width和android:layout_height :取值为match_parent,即与父容器相同。
- 通过Java代码对图像切换器进行控制:
首先准备两张图片在res/drawable目录下:
给图片切换器设置id:
在Java文件中进行如下操作:
package com.example.imageswitcherdemo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取图像切换器对象
ImageSwitcher is=findViewById(R.id.imageswitcher);
//设置 淡出 动画效果(AnimationUtils是一个动画效果工具类,loadAnimation()为加载某个动画效果)
is.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,android.R.anim.fade_out));
//设置 渐入 动画效果
is.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,android.R.anim.fade_in));
//为图像切换器指定视图工厂,用来显示图片切换器的第一张图片
is.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView imageView=new ImageView(MainActivity.this);
imageView.setImageResource(R.drawable.biaoqingbao);
return imageView;
}
});
//为图像切换器设置一个单击事件监听器,用来设置监听到单击事件更改图片切换器的显示图片
is.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((ImageSwitcher)v).setImageResource(R.drawable.zhanjian);
}
});
}
}
运行结果:
刚运行:
单击:
可以看到单击后第一张图片会淡出,第二张图片会渐入