前篇文章讲解了关于kotlin编写的一些回调方法和一些对话框,今天这篇文章也是讲解对话框的代码,因为这些都是这个项目的前期需要准备的,所以我就讲解一下。 做技术每天都是在不停的忙碌和学习当中,像kotlin也是一门不新不旧的语言,但是google大量宣传的作用下,也是有很多公司在使用了,所以作为安卓开发人员不得不学习它。 也是在学习当中才想到这个项目的,学以致用才是真正的学习,学程序员最好的方式就是不停的写代码,写项目,在写项目和写代码中成长。 今天要讲解的就是GIFDialog 这个对话框用kotlin怎么写。 DialogFragment 这个东东做安卓的已经不陌生了,只要写安卓项目都会用到的一个对话框类。class GIFDialog : DialogFragment() { companion object { val TAG = GIFDialog::javaClass.name lateinit var file: File fun show(fragmentManager: FragmentManager, file: File) { this.file = file GIFDialog().show(fragmentManager, TAG) } } @SuppressLint("SetTextI18n") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val view = activity!!.layoutInflater.inflate(R.layout.dialog_gif_preview, null) val gifView = view.findViewById(R.id.gif_view) val videoInfo = view.findViewById(R.id.video_info) val gif = GifDrawable(file.path) gifView.setImageDrawable(gif) gif.start() videoInfo.text = "Duration: ${Utils.milliSecondsToTimer(gif.duration.toLong())}" + " Frames: ${gif.numberOfFrames}" return AlertDialog.Builder(activity) .setView(view) .setTitle("Preview") .setPositiveButton("Cancel") { dialog, which -> dismiss() } .create() } } 上面代码分析 show 方法大家看的懂吧,这个里面用到一个companion 类内部的对象声明可以用 companion 关键字标记,这样它就与外部类关联在一起,我们就可以直接通过外部类访问到对象的内部元素。 其实就是java当中的静态方法类一个道理。<?xml version="1.0" encoding="utf-8"?> 布局文件也很简单,就是一个GIF图片暂时和一个文字展示。 好了,今天就介绍在这里了,欢迎关注,点赞,转发,后续我们继续开发