1 Star 73 Fork 32

John-逍遥 / android_plugin_readme

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 18.56 KB
一键复制 编辑 原始数据 按行查看 历史
John-逍遥 提交于 2023-12-02 08:07 . update README.md.

android mnb 代码展示

列表类

  1. 垂直 RecyclerView

  2. 多列 RecyclerView

  3. 瀑布流 RecyclerView

  4. 聊天界面列表

  5. 索引列表

  6. 吸附标题列表

  7. 左滑删除列表

  8. 下拉刷新列表

  9. 自定义下拉列表

  10. Vlayout用法展示

  11. RecyclerView滚动修改透明度

  12. RecyclerView嵌套Banner列表

  13. Banner画廊效果

  14. 双击定位未读

  15. Paging3 实现分页

  16. 可拖拽 RecyclerView

  17. 键盘切换抖动优化

  18. 仿微信下拉小程序效果

图表

对话框类

按钮和容器类

动画类

  1. AccelerateDecelerateInterpolator 插值器
  2. AccelerateInterpolator 插值器
  3. DecelerateInterpolator 插值器
  4. LinearInterpolator 插值器
  5. AnticipateInterpolator 插值器
  6. AnticipateOvershootInterpolator 插值器
  7. OvershootInterpolator 插值器
  8. BounceInterpolator 插值器
  9. CycleInterpolator 插值器
  10. TimeInterpolator 插值器
  11. PathInterpolator 插值器
  12. TranslateAnimation 的用法
  13. RotateAnimation 的用法
  14. ScaleAnimation 的用法
  15. AlphaAnimation 的用法
  16. AnimationDrawable 的用法
  17. 属性动画的用法
  18. 共享元素动画的用法
  19. SVGA动画的用法
  20. MotionLayout动画
  21. 共享元素动画(跳转activity)

翻页类

  1. ViewPager 翻页
  2. ViewPager2 水平翻页
  3. ViewPager2 纵向翻页
  4. Banner 翻页

进度条

Mvvm 和 Databinding

Compose UI

编码及算法

1.十六进制和十进制互转

2.余弦相似度

3.Base64 编解码

4.UTF-8 编解码

5.URL 编解码

6.连续点击事件

多媒体

1.AudioRecord / MediaPlayer 录音播放

2.Camera2 相机拍照

3.MediaRecorder / MediaPlayer 录像播放

传感器

1.手机摇一摇

2.USB设备列表

3.位置信息获取

4.指纹识别

网络设备

1.Wifi列表获取

2.蓝牙列表获取

人工智能

1.Tensorflow 移植 Android

2.梯度下降线性拟合

3.梯度下降非线性拟合

第三方接入

1.腾讯开屏广告

2.腾讯激励广告

3.腾讯插屏广告

4.腾讯 Banner 广告

实用工具

1.时间戳转换

2.Json 格式化

3.生成二维码

4.发送短信

日历

1.简单样式日历

2.范围选择日历

3.多选日历

相关基类

package com.lujianfei.module_plugin_base.base

import android.content.Intent
import android.content.res.ColorStateList
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.Window
import androidx.appcompat.app.AppCompatActivity
import com.lujianfei.module_plugin_base.BaseApplication
import com.lujianfei.module_plugin_base.utils.ResUtils

/**
 *@date     创建时间:2020/5/29
 *@name     作者:陆键霏
 *@describe 描述:
 */
abstract class BasePluginActivity: AppCompatActivity() {

    companion object {
        const val TAG = "BasePluginActivity"   
    }
    
    var that: AppCompatActivity?= null
    var from_host_activity = false
    var thatContentView:View? = null
    // 接收主应用Activity的上下文:setActivity
    fun setActivity(paramActivity: AppCompatActivity) {
        that = paramActivity
    }

    fun doOnCreate(savedInstanceState: Bundle?) {
        onCreate(savedInstanceState)
    }
    
    override fun onCreate(savedInstanceState: Bundle?) {
        if (savedInstanceState != null) {
            from_host_activity = savedInstanceState.getBoolean("KEY_START_FROM_OTHER_ACTIVITY", false)
            if (from_host_activity) {
                Log.d(TAG,"MainActivity onCreate pluginResources = ${that?.resources}")
                thatContentView = LayoutInflater.from(that).inflate(resouceId(),null, false)
                ResUtils.pluginContext = thatContentView?.context
                that?.setContentView(thatContentView)
            }
        }
        if (!from_host_activity) {
            that = this
            super.onCreate(savedInstanceState)
            thatContentView = LayoutInflater.from(that).inflate(resouceId(),null, false)
            ResUtils.pluginContext = thatContentView?.context
            setContentView(thatContentView)
        }
    
        
        initView()
        initData()
        initEvent()
    }

    abstract fun resouceId():Int
    abstract fun initView()
    abstract fun initData()
    abstract fun initEvent()


    override fun startActivity(intent: Intent?) {
        if (from_host_activity) {
            when(intent?.action) {
                Intent.ACTION_VIEW-> {
                    (BaseApplication.INSTANCE as BaseApplication).openWebView(title = "", url = intent.data?.toString()?:"")
                }
                else-> {
                    that?.startActivity(intent)
                }
            }
        } else {
            super.startActivity(intent)
        }
    }

    override fun <T : View?> findViewById(id: Int): T {
        val findViewById = thatContentView?.findViewById<T>(id)
        findViewById?.let { 
            return it
        }
        return super.findViewById<T>(id)
    }

    override fun getWindow(): Window {
        if (from_host_activity) {
            that?.window?.let {
                return it
            }
        }
        return super.getWindow()
    }

    fun getPluginString(resId:Int):String? {
        return thatContentView?.context?.getString(resId)
    }

    fun getPluginColor(resId:Int):Int? {
        return thatContentView?.context?.resources?.getColor(resId)
    }

    fun getPluginDrawable(resId:Int):Drawable? {
        return thatContentView?.context?.resources?.getDrawable(resId)
    }

    fun getPluginColorStateList(resId:Int): ColorStateList? {
        return thatContentView?.context?.resources?.getColorStateList(resId)
    }

    override fun finish() {
        if (from_host_activity) {
            that?.finish()
        } else {
            super.finish()
        }
    }

    override fun onBackPressed() {
        that?.finish()
    }

    open fun onPluginResume() {
    }

    open fun onPluginPause() {
    }

    open fun onPluginDestroy() {
    }

    open fun onPluginNewIntent(intent: Intent?) {
        
    }
}
Android
1
https://gitee.com/lujianfei/android_plugin_readme.git
git@gitee.com:lujianfei/android_plugin_readme.git
lujianfei
android_plugin_readme
android_plugin_readme
master

搜索帮助