希望不要半途而废,呸呸呸,美丽的小姐姐是不会半途而废的
1 创建项目 (AS3.0以上,记得点include koltin…)
2 配置项目
(1)AndroidMainfest.xml

<application...android:label="@string/app_name"//点进去改一改名字....android:theme="@style/AppTheme">//点进去将主题改成Theme.AppCompat.Light.NoActionBar

(2)导入anko库(app)
github 的Kotlin/anko

dependencies {...//导入anko库(从build.gradle的jcenter()仓库中找的) 便捷koltinimplementation "org.jetbrains.anko:anko:$anko_version"
}

查找应该写的$anko_version

3 结构(MVP)
model 存放Java Bean 网络操作 数据库操作
presenter 数据相关 指向model
view 接口实现与presenter双向绑定
extension 放类的扩展属性或方法
base存放基类

注:
1 自定义自动生成的头部注释

2 扩展函数(向已有类中添加新方法)

inline fun AnkoLogger.debug(message: () -> Any?) {val tag = loggerTagif (Log.isLoggable(tag, Log.DEBUG)) {Log.d(tag, message()?.toString() ?: "null")}
}

(1)AnkoLogger 已有类、debug 扩展函数名
(2)(无参: 变量名: () -> 返回类型Any,可以为空= { 代码块 })
message: () -> Any? 参数,可以为NULL
Lambda语法

val/var 变量名: (参数类型,参数类型,...) -> 返回值类型 = { 参数1,参数2,... -> 代码块 }

(3)inline 内联函数 (隐去在解决函数压出栈问题时的操作)
3 代码(都是class)
base/BaseActivity.class

package com.example.a23949.musiczhengdemo1.baseimport android.os.Bundle
import android.support.v7.app.AppCompatActivity
import org.jetbrains.anko.AnkoLogger
import org.jetbrains.anko.debug
import org.jetbrains.anko.toast/*** author 墨鱼* Date: 2019/5/10* ClassName:BaseActivity* Description:所有Activity的基类*/
//继承自AppCompatActivity
//继承AnkoLogger弹log日志
abstract class BaseActivity:AppCompatActivity(),AnkoLogger{//复写override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(getLayoutId())initListener()initData()}/*** 初始化数据*/protected fun initData() {}/*** listener与adapter相关操作*/protected fun initListener() {}/*** 获取布局ID*/abstract fun getLayoutId():Int/*** 解决子线程弹toast的安全问题*/protected fun myToast(msg:String){runOnUiThread { toast(msg) }}}

base/BaseFragment

package com.example.a23949.musiczhengdemo1.baseimport android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import org.jetbrains.anko.AnkoLogger
import org.jetbrains.anko.runOnUiThread
import org.jetbrains.anko.support.v4.toast
import org.jetbrains.anko.toast/*** author 墨鱼* Date: 2019/5/10* ClassName:BaseFragment* Description:所有fragment的基类*/abstract class BaseFragment:Fragment() ,AnkoLogger{override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)init()}/*** fragment初始化*/protected fun init() {}/*** 实现布局*/override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {//不知道view类型,由子类返回view类型return initView()}/*** 获取布局view*/abstract fun initView(): View?override fun onActivityCreated(savedInstanceState: Bundle?) {super.onActivityCreated(savedInstanceState)initListener()initData()}/*** 数据*/protected fun initData() {}/*** listener adapter*/protected fun initListener() {}fun myToast(msg:String){context?.runOnUiThread { toast(msg) }}
}

筝乐音乐播放器——黑马koltin影音笔记1相关推荐

  1. VueDemo3:音乐播放器[黑马Vue基础网课跟写](vue,axios)

    VueDemo3:音乐播放器 一.歌曲搜索 1.按下回车(v-on,enter) 2.查询数据(axios 接口 v-model) 3.渲染数据(v-for 数组 that) 服务器返回的数据比较复杂 ...

  2. qq影音hd+android,QQ影音HD音乐播放器

    QQ影音HD音乐播放器属于一个任意调节.自动缩放.不卡壳的视频在线播放软件,QQ影音HD音乐播放器它具备了即可使用.无需账号.画面更锐利.支持文件夹.窗口叠加等非常多的特点,此外它还添加了无痕播放模式 ...

  3. 仿酷狗音乐播放器开发日志十四——右侧乐库的实现

    在使用酷狗播放器时,左侧功能块和右侧乐库功能是最常用的了,如果要下载音乐或者搜索自己喜欢的歌曲那就少不了右侧乐库.原版的乐库的截图如下     他拥有5个分类,分别是乐库.电台.MV.直播.歌词.从外 ...

  4. 基于VueAxios制作音乐播放器(bilibili黑马程序员Vue入门学习记录)

    目录 使用Vue制作一个音乐播放器 前言 Vue Vue导入 Vue挂载 Vue指令 v-text v-html v-on v-show v-if v-bind v-for v-model axios ...

  5. 【黑马Android】(11)音乐播放器/视频播放器/照相机/常见对话框/notification通知/样式和主题/帧动画/传感器/应用程序反编译与安装

    音乐播放器api <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns: ...

  6. 几款最主流的音乐播放器应用源码-android源码

    影音播放 优雅音乐播放器应用源码 这是一款不错的音乐播放器应用源码案例,优雅音乐播放器应用源码,该应用的界面有点类似小米音乐播放器,应用的整天布局还没有那 人气:3328运行环境:/android/i ...

  7. 【开源推荐】进阶实战,从一款音乐播放器开始

    0.前言 前面有同学问我,想要做一个Android 实战项目,问我有没有好的开源项目可以参考和练习? 想想自己以前也是,当项目没有什么新任务的时候,想着自己写一个实战项目来来练练手,那拿什么项目来练手 ...

  8. 基于Android系统开发的简易音乐播放器

    大概做了一周左右,一个简易版本的音乐播放器.主要有三个界面,先上图: 一个主界面:主要负责1加载外部存储的音乐文件信息到应用内置数据库中2转到音乐文件列表界面 一个音乐文件列表界面:主要1负责展示音乐 ...

  9. iOS开发拓展篇—音频处理(音乐播放器6)

    一.图片处理 说明: Aspect表示按照原来的宽高比进行缩放. Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白. Aspectfill表示按照原来的 ...

最新文章

  1. mysql卸载后root还在_CentoOs7 Mysql卸载后重新安装缺少/root/.mysql_secret
  2. 什么是Vue?Vue的工作原理是什么?
  3. IOS15打包静态库
  4. Oracle JDK 9 Early Access文档已更新
  5. corba的兴衰_数据科学薪酬的兴衰
  6. [css] 能不能使用纯css使你的浏览器卡死?怎么实现?
  7. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)
  8. 在并发情况下,Elasticsearch 如果保证读写一致?
  9. 【Linux使用】Centos 7 设置机器名/激活网络接口
  10. C语言警告warning C4018: '' : signed/unsigned mismatch
  11. 九齐单片机NY8B062D项目开发总结
  12. 游程编码详解(C语言)
  13. mate9 android原生包,华为Mate9 Pro官方固件rom刷机包_Mate9Pro系统包_升级包
  14. winform程序:newtonsoft json 序列化时出现 “unterminated string. Excepted delimiter...
  15. 常见的几种多媒体设计框架
  16. R语言-用R眼看琅琊榜小说的正确姿势
  17. MySQL和php搭建聊天室,用PHP MySQL搭建聊天室
  18. 创建两个文本框,一个按钮。第 1 个文本框绑定任意键事件,敲击键盘任意可显示字符,在交互窗口中显示该字符;
  19. python程序判断梅森素数_梅森素数的探索之旅
  20. 有关于python的论文_有关python的论文

热门文章

  1. 高并发下如何生成唯一订单号?
  2. 2021 年高教社杯全国大学生数学建模竞赛题目(E 题 中药材的鉴别)
  3. socket地址API
  4. Wmware安装Centos7教程
  5. aws waf sql注入_适用于快速SQL Server Always On部署的AWS启动向导
  6. 透明加密tde_如何在SQL Server中监视和管理透明数据加密(TDE)
  7. 数据科学导论_数据科学导论,数据理解和准备
  8. python-元组,列表,字典常用方法
  9. Spring----getBean的四种用法
  10. 论一只爬虫的自我修养(第二天)