写点什么

AdapterViewFlipper 图片 _ 文字 轮播动画控件,【面试必会】

用户头像
Android架构
关注
发布于: 10 小时前

setContentView(R.layout.activity_flipper_anim)initTextFlipper()initImgFlipper()}


// 文字轮播 private fun initTextFlipper() {textFlipper = findViewById(R.id.text_flipper)val list = listOf("文字轮播测试 0", "文字轮播测试 02...")textFlipper?.adapter = TextFlipperAdapter(this, list)textFlipper?.setInAnimation(this, R.animator.text_flipper_in_from_bottom)textFlipper?.setOutAnimation(this, R.animator.text_flipper_out_to_top)// textFlipper?.flipInterval// textFlipper?.startFlipping()}


// 图片轮播 private fun initImgFlipper() {imgFlipper = findViewById(R.id.img_flipper)val list = listOf("http://www.nicesoso.com/test/file/img/test.jpg", "http://www.nicesoso.com/test/file/img/test_h_1.jpg","http://www.nicesoso.com/test/file/img/test_h_2.jpg")imgFlipper?.adapter = ImgFlipperAdapter(this, list)imgFlipper?.setInAnimation(this, R.animator.img_flipper_in)preBtn = findViewById(R.id.prev_btn)nextBtn = findViewById(R.id.next_btn) as ButtonautoBtn = findViewById(R.id.auto_btn) as Button


preBtn?.setOnClickListener(this)nextBtn?.setOnClickListener(this)autoBtn?.setOnClickListener(this)}


override fun onClick(v: View?) {when (v?.id) {R.id.prev_btn -> {imgFlipper?.showPrevious()imgFlipper?.stopFlipping()}R.id.next_btn -> {imgFlipper?.showNext()imgFlipper?.stopFlipping()}R.id.auto_btn -> {imgFlipper?.startFlipping()}}}


override fun onDestroy() {super.onDestroy()textFlipper?.takeIf { it.isFlipping }?.stopFlipping()imgFlipper?.takeIf { it.isFlipping }?.stopFlipping()}}

3.1 文字轮播:TextFlipperAdapter

class TextFlipperAdapter(private val context: Context, private val datas: List<String>) : BaseAdapter() {override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.item_flipper_text, parent, false)val textView = view?.findViewById<TextView?>(R.id.text)textView?.text = datas.get(position)return view}


override fun getItem(position: Int): Any {return datas.get(position)}


override fun getItemId(position: Int): Long {return position.toLong()}


override fun getCount(): Int {return datas.size}}

3.2 图片轮播:ImgFlipperAdapter

class ImgFlipperAdapter(private val context: Context, private val datas: List<String>) : BaseAdapter() {override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {val view = convertView ?: ImageView(context)(view as? ImageView)?.scaleType = ImageView.ScaleType.FIT_XYview.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)(view as? ImageView)?.let { Glide.with(context).load(datas.get(position)).into(it) }


return view}


override fun getItem(position: Int): Any {return datas.get(position)}


override fun getItemId(position: Int): Long {return position.toLong()}


override fun getCount(): Int {return datas.size}}

3.3 布局:activity_flipper_anim.xml

<?xml version="1.0" encoding="utf-8"?><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">


<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="100dp"android:background="@android:color/holo_red_light"android:orientation="vertical">


<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1">


<AdapterViewFlipperandroid:id="@+id/img_flipper"and


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


roid:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentTop="true"android:flipInterval="5000" />


<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:gravity="center"android:text="图片轮播测试(5s)"android:textSize="24sp" />


<Buttonandroid:id="@+id/prev_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentBottom="true"android:text="上一个" />


<Buttonandroid:id="@+id/next_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:text="下一个" />


<Buttonandroid:id="@+id/auto_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentBottom="true"android:text="自动播放" />

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
AdapterViewFlipper 图片_文字 轮播动画控件,【面试必会】