又来闲聊了,早期的这几篇文章主要是几个对话框的实现。
在小的需求都是需要一句一句代码来迭代的,一个在完美的项目也是这么一点一点来的
kotlin语言说用就用,用就必须用该语言写个项目,所以就有了这一系列文章
[偷笑]悄悄的就开发上了,不知道大家对我的作品感兴趣不?[what]
如果感兴趣请大家关注一下,点个赞[左上],收藏一下[给力],转发一下对我的支持。
这个对话框代码如下
class ProgressDialog : DialogFragment(), MainActivity.ProgressPublish {
var text: String = ""
lateinit var progress_text: AppCompatTextView
lateinit var name_text: AppCompatTextView
lateinit var stopButton: Button
override fun onProgress(progress: String) {
this.text = progress
progress_text.text = text
}
override fun onDismiss() {
dismiss()
}
companion object {
val TAG = ProgressDialog::javaClass.name
var name: String = ""
fun show(fragmentManager: FragmentManager, name: String) {
ProgressDialog().show(fragmentManager, TAG)
this.name = name
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
MainActivity.setProgressListener(this)
val view = activity!!.layoutInflater.inflate(R.layout.dialog_progress, null)
progress_text = view.findViewById<AppCompatTextView>(R.id.txt_progress)
name_text = view.findViewById<AppCompatTextView>(R.id.txt_name)
stopButton = view.findViewById<Button>(R.id.stop)
progress_text.text = text
name_text.text = name
stopButton.setOnClickListener {
FFmpeg.getInstance(activity!!).killRunningProcesses()
dismiss()
}
return AlertDialog.Builder(activity)
.setCancelable(false)
.setView(view)
.setTitle("Running FFMpeg Commands")
.create()
}
}
代码够简单,其实kotlin写习惯了也是挺方便的,就是一个简洁的java代码。
大家应该看到了 里面有个 FFmpeg.getInstance(activity!!).killRunningProcesses() 这个库挺好的,就是我这次项目要用到的,解决了FFmpeg的封装:ffmpeg-android-java 如果大家有对音视频处理的可以用这个库,编译好了不用自己去编译了。这句代码主要做了如下处理:Util.killAsync(ffmpegLoadLibraryAsyncTask) || Util.killAsync(ffmpegExecuteAsyncTask);
static boolean killAsync(AsyncTask asyncTask) {
return asyncTask != null && !asyncTask.isCancelled() && asyncTask.cancel(true);
}
好了这就是这个对话框的主要功能,今天就分享到这里了,谢谢大家的观看
记得点赞,关注,转发哟