又来闲聊了,早期的这几篇文章主要是几个对话框的实现。
在小的需求都是需要一句一句代码来迭代的,一个在完美的项目也是这么一点一点来的
kotlin语言说用就用,用就必须用该语言写个项目,所以就有了这一系列文章
[偷笑]悄悄的就开发上了,不知道大家对我的作品感兴趣不?[what]
如果感兴趣请大家关注一下,点个赞[左上],收藏一下[给力],转发一下对我的支持。
![69f6da25be8b3ea0cf2097c9fa9b8d50.png](https://img-blog.csdnimg.cn/img_convert/69f6da25be8b3ea0cf2097c9fa9b8d50.png)
这个对话框代码如下
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(R.id.txt_progress) name_text = view.findViewById(R.id.txt_name) stopButton = view.findViewById(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); }
好了这就是这个对话框的主要功能,今天就分享到这里了,谢谢大家的观看
记得点赞,关注,转发哟