- 博客(56)
- 资源 (15)
- 问答 (2)
- 收藏
- 关注

原创 Android 使用retrofit+kotlin协程,搭建MVVM框架
前言Android 上的 Kotlin 协程协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,协程有助于管理长时间运行的任务,如果管理不当,这些任务可能会阻塞主线程并导致应用无响应。使用协程的专业开发者中有超过 50% 的人反映使用协程提高了工作效率。本主题介绍如何使用 Kotlin 协程解决以下问题,从而让您能够编写出更清晰、更简洁的应用代码。特点协
2021-03-26 09:34:59
6996
16

原创 Android自带mediaplayer封装,实现播放,暂停,拖动等功能
封装代码工具类:public class AudioPlayerUtil { private MediaPlayer mPlayer; private boolean isInitialized = false; private Thread initThread; //实现进度条 private Timer mTimer; private Handler mHandler; private String url; publi.
2020-10-19 09:52:57
1732

原创 Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别
效果图:第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDetector判断是否有人脸,有人脸保存当前抓拍的照片:val file = File(filesDir, "head_tmp.png") val create = Observable.create<File> { emitter ->
2020-09-01 09:36:20
3657
2

原创 Android超级简单的实现圆形,矩形和圆角
使用View.setClipToOutline()方法或android:clipToOutline属性将视图裁剪至其轮廓区域。由Outline.canClip()方法所决定,仅有矩形、圆形和圆角矩形轮廓支持裁剪。如果要将视图裁剪至可绘制对象的形状,请将可绘制对象设置为视图背景(如上所示)并调用View.setClipToOutline()方法。比如说布局<?xml version="1.0" encoding="utf-8"?><androidx.const...
2020-08-07 21:14:16
4808
1

原创 Android中的DPI和PPI
DPI是Android开发中的像素密度;PPI是Android手机物理像素密度;他们两者是完全没有关系的,千万不要把ppi的公式等同于dpi,dpi是通过displayMetrics获取的,val densityDpi = resources.displayMetrics.densityDpidpi是写入系统配置文件中的,可以通过root手机修改dpi的值,...
2020-07-28 10:10:11
1764

原创 Activity中销毁fragment
Activity中add多个fragment,fragmentA跳到fragmentB,再从B跳到A,此时要销毁fragmentBoverride fun onHiddenChanged(hidden: Boolean) { super.onHiddenChanged(hidden) if (hidden) { //当前fragment不可见的时候,销毁它 activity?.supportFragmentManager?
2020-07-23 13:49:03
5951

原创 超简单的RecyclerView item自下往上无限循环滑动
效果实现逻辑: companion object { val TAG = "Main" } private val adapter by lazy { object : BaseQuickAdapter<Int, BaseViewHolder>(R.layout.item_layout) { override fun convert(helper: BaseViewHolder?, item: Int?)
2020-07-22 11:27:04
1755

原创 超级简单的Android控件View转图片Bitmap
直接上代码:fun getBitmapFromView(view: View): Bitmap { val bitmap = Bitmap.createBitmap( view.width, view.height, Bitmap.Config.ARGB_8888 ) val canvas = Canvas(bitmap) view.layout(0, 0, view.width, view
2020-07-14 15:07:44
2341
6

原创 android选择图片分享微信好友和朋友圈
1、true分享好友,false分享朋友圈class ShareActivity : AppCompatActivity() { private val imageUris: ArrayList<Uri> = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentV.
2020-07-09 11:41:44
643

原创 根据Android自带的API获取经纬度,然后通过经纬度获取当前位置信息
1、配置app获取位置信息权限 <!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <!-- 用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATIO
2020-07-07 13:52:12
2169

原创 Android启动页白屏或一体色沉浸式解决方案
1、启动页LunchActivity必须继承Activity2、manifests配置文件为LunchActivity设置主题android:theme="@android:style/Theme.Translucent.NoTitleBar"<activity android:name=".LunchActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"
2020-06-30 14:20:17
675

原创 超简单的android 流星雨动画 流星动画
1、直接看效果2、布局文件<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http:
2020-06-29 17:38:43
2663
4

原创 Springboot多文件多图片上传服务器,并返回访问链接
1、上传文件代码/** * @Description * @Author zengyi * @Date 2020-06-10 */@RequestMapping("/upload")@RestController@Api(description = "上传接口")public class UploadController { private static final Logger log = LoggerFactory.getLogger(UploadController.
2020-06-10 14:49:48
1853
4

原创 初学flutter 登录布局
void main() { runApp( MaterialApp( title: 'hello flutter', theme: ThemeData( primarySwatch: Colors.blue, ), home: Main(), ), ); if (Platform.isAndroid) {...
2020-04-28 15:39:29
431

原创 Android使用线程池或者DownloadManager在线更新apk
public class Main { private static final String url = "https://d9f43c992961ae0750505398dbb4823c.dd.cdntips.com/imtt.dd.qq.com/16891/apk/9C52689F0451CBFBDBBF535ADD40D3A7.apk?mkey=5e9fdcc9777b5f80...
2020-04-22 16:43:24
721

原创 android自定义view之组合控件
1、比如要实现下面的这种效果:2、首先实现布局效果,新建布局文件layout_custom<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://sch...
2020-04-15 17:43:26
262

原创 Java通过POI读取Excel遍历数据,根据word模板批量生成word文档
demo已上传,直接用idea打开运行即可,可根据个人需求,进行二次开发https://download.youkuaiyun.com/download/u010368726/12317633
2020-04-09 17:41:38
982

原创 Android studio插件更新失败的解决方案,比如说Plugin Fierbase Services was not installed:Cannot download
目前用的是androidstudio最新版3.6.2,每次打开AS都提示firebase插件要更新,而且更新一直更新不了,提示界面如下:其实解决方案很简单,只要在把下载链接的http改为https就可以秒下载了,下载完插件之后可以直接外部导入更新插件即可,...
2020-04-02 10:25:19
4849
10

原创 Springboot项目引入Swagger
1、使用Idea创建好Springboot项目;2、导入swagger所需要的jar包;<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2...
2020-03-20 13:47:14
805

原创 Java通过反射获取泛型实例对象
获取泛型实例代码public static <T> T getInstance(Object o) { try { Type type = o.getClass().getGenericSuperclass(); if (type == null) { return null; } Pa...
2019-12-20 11:38:51
1319

原创 Android超级简单的播放VR视频
项目引入:implementation 'com.google.vr:sdk-panowidget:1.30.0'implementation 'com.google.vr:sdk-videowidget:1.30.0'布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"...
2019-12-19 11:57:18
2305

原创 Java 平均分割数组list
public static <T> ArrayList<ArrayList<T>> splitList(ArrayList<T> source, int n) { if (null == source || source.size() == 0 || n <= 0) return null; ArrayList&l...
2019-12-11 13:50:27
1252

原创 百度地图批量增加market并显示网络图片作为icon
private val options = ArrayList<OverlayOptions>()//批量标注fun setMarker(list: ArrayList<MapLocationEntity>) { options.clear() for (i in 0 until list.size) { val imageView...
2019-11-28 15:46:31
778

原创 通过反编译市场上android的apk,查看源码,抄袭他们的UI交互功能
项目中新UI如下图,看了UI图有点无从下手的感觉,赶紧过去问了一下UI设计师,这个功能到底是抄袭那个app的,果然没有猜错这个功能是抄袭1号店超级单品的,哈哈,知道了是那个app,立即下载了1号店,通过androidstudio的monitor抓取首页布局,看看它是怎么做的,下图就是抓取的首页布局信息通过上图知道了这个是用recyclerView做的,并且这个recyclerView...
2019-09-12 15:06:14
1111
原创 Android viewBinding/Databinding 构建BaseActivity和公共标题栏
Android viewBinding/Databinding 构建BaseActivity和公共标题栏
2022-06-16 17:28:09
2013
原创 Android 检查当前wifi是否可以有网,可以访问网络
NetworInfo.isAvailable和NetworkInfo.isConnected只表明网络连接是否已连上,不能表明连接是否可以访问互联网要检查设备是否在线,有以下方法:第一种:@TargetApi(Build.VERSION_CODES.M)public static boolean isNetworkOnline1(Context context) { boolean isOnline = false; try { ConnectivityMa
2022-05-12 17:29:36
4040
4
原创 Android App创建websocket server,App创建websocket服务器,App连接websocket
Android使用Ktor创建websocket server,然后使用okhttp连接websocket
2022-04-08 18:06:40
9114
3
原创 Andrfoid 11 通过Glide下载图片音视频等文件,使用 MediaStore 和 ContentResolver 将文件保存到公共目录,跳过MANAGE_EXTERNAL_STORAGE权限
青春不散场,归来仍少年。。。
2022-01-15 16:36:07
4825
原创 超级简单Android 拦截app崩溃,并且把崩溃写入本地保存文件
引入一个超级牛逼的崩溃拦截库地址:https://github.com/xuuhaoo/Android-DefenseCrash/blob/main/README_CN.mdhttps://github.com/xuuhaoo/Android-DefenseCrash/blob/main/README_CN.mdApplication里面具体实现:class MyApplication : Application() { companion object { lat
2021-11-01 15:27:23
916
原创 Android app调试的时候 app崩溃,logcat闪屏太快,看不到日志输出的原因
现在Android官方机制都会默认app崩溃之后立即重启app的,然后平时我们查看logcat日志输出的时候,往往选择的选项是show only selected application,所以导致崩溃查看日志的时候无法产看到app崩溃的日志,如同所示,只要我们一直滑到最后,选择no filters,就能看到日志了...
2021-03-18 11:52:56
1495
Android四大组件之一ContentProvider自定义Sqlite共享,实现增删查改基本功能
2017-04-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人