自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (2)
  • 收藏
  • 关注

原创 鸿蒙开发入门

HarmonyOS概述鸿蒙系统是华为自主研发的面向全场景的分布式操作系统。能够将生活场景中各类终端进行整合,可以实现不同终端设备间的快速连接、资源共享、匹配合适设备、提供流畅的全场景体验。技术架构HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。开发工具使用HUAWEI DevEco Studio 界面类似Andro

2021-07-23 10:14:28 853

原创 安卓多版本打包

Android Gradle 多版本多APK打包,图标不同,包名不同, 修改apk名字app build.gradlebuildConfigField 如果是String,字符串要多加单引号android { productFlavors { kaifa { versionCode 2 versionName '1.0.2' buildConfigField("int", "VERSION", '

2021-07-20 16:27:25 235

原创 Uniapp用法小结

1.获取控件高度,屏幕高度<scroll-view scroll-y :style="{ 'height': popHeight + 'px' }"> <view id="lineid" class="listBar"> <view class="listli" :class='{ list_select: item.flag ,list_unselect: !item.flag }' v-for="(item,index) in line

2021-05-27 08:59:09 880

原创 Sonarqube mac中扫码安卓代码和自定义规则

Sonarqube 是代码质量检测工具,可以使用Android studio进行代码上传检测Sonarqube安装下载安装1.Sonarqube:官网链接,下载社区版2.Sonar Scanner:官网链接由于我使用的是gradle的方式其实可以不用配置,但是我也顺便配置了3.下载Jdk,注意一定要下载jdk11以后的,否则sonarqube启动不了,很重要4.网上说下载mysql,已经不需要了,8.6以后的版本自带了sonar启动1.将文件解压缩到目录修改sonarqube的wrap

2021-01-15 13:04:26 393

原创 Dialog外部点击监听

getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); getWindow().setFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);

2021-01-06 20:27:47 948

原创 Fastjson 反序列化替换名称

后台传过来的字段有可能是result,有可能是resultListFastJson进行转换的时候统一转换为resultList注意:必须写在set get方法中public class Bean<T> { public List<T> resultList; @JSONField(name = "resultList",alternateNames = "result") public List<T> getResultList() {

2020-12-24 10:45:26 2185

原创 Kotlin Parcelize BaseObservable遇到的坑

我的数据类要实现Parcelable 和databing的BaseObservable()。在设置完set方法后加上了@Parcelize ,发现数据没有携带成功。单独实现Parcelable 发现并没有将实现了set方法的orgName构造出来,因此必须先实现Parcelable接口再实现BaseObservable ,并且无法使用@Parcelizeimport android.os.Parcelimport android.os.Parcelableimport androidx.datab

2020-11-30 16:05:31 598

原创 TextView自定义边框

实现如下自定义边框,对TextView进行重写,canvas边框即可。重点是弧线的画法画弧度主要是arcTo和addArc两个方法都是从3点钟开始,顺时针画,注意左上角和右下角是两倍的半径ArcTo 有两个传参方法可以通过RectF封装位置forceMoveTo:true 抬起画笔 false保留路径相当于上个点坐标lineTo左上角public void arcTo(float left, float top, float right, float bottom, float start

2020-11-27 13:57:08 204

原创 LinearLayout自动换行自定义View

import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;import com.wttech.gm.R;import java.util.ArrayList;import java.util.List;public class WrapLi

2020-11-25 14:51:49 391

原创 安卓7.0以上打开文件

在网上找的文件,选择文件管理器中的文件_data无法找到,是因为QQ浏览器篡改了包名参考Github这篇文件可以解决package com.wttech.gm.util;import android.content.ContentUris;import android.content.Context;import android.database.Cursor;import android.net.Uri;import android.os.Build;import android.os.

2020-11-24 10:46:03 318

原创 ijkPlayer播放器使用及实现录制截图功能

B站的IjkPlayer播放器使用较为广泛,在使用其demo过程遇到许多坑,记录一下1.从官网下的demo,点击视频直接播放crash,是因为so文件需要自己手动生成,必须按照官网的如下步骤操作生成so文件,直接下载demo操作会有问题2.按照官网进行sh android/patch-debugging-with-lldb.sh armv7a操作会报如下error,无法生成.externalNativeBuild文件夹,这是由于官网.sh文件太老了。所以我直接将生成的so文件考入到ijkplayer目

2020-10-27 14:35:59 2792 4

原创 AspectJ防止按钮多次连击

使用aspectJ方式 AspectJ处理重复点击过快点击事件1.项目的gradle导入 dependencies { classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.8' }2.app的gradle添加apply plugin: 'com.hujiang.android-aspectjx'3.增加ClickGap注解类import java.lang.annota

2020-08-26 10:24:50 343

原创 组件化配置

这篇文件介绍的很好,建议看看Android组件化方案1.创建依赖包 名为test_library2.gradle.properties中添加# true 模块编译isModule=true3.在依赖gradle 添加if (isModule.toBoolean()) { apply plugin: 'com.android.application'} else { apply plugin: 'com.android.library'}android { d

2020-08-19 11:29:55 238

原创 Android内存管理机制

转发Android内存管理机制这篇文章讲解的很详细,我以自己方式进行总结。Java内存分配线程私有:程序计数器,虚拟机栈,本地方法栈线程共享:堆,方法区程序计数器 :当前线程所指向的字节码指示器,Java方法存放虚拟机字节码指令地址,Native方法,计数器值为Undefined,唯一不存在OOM虚拟机栈:当线程每个方法执行时都创建一个栈帧用来存放局部变量,方法出口等,并将该栈帧放在JVM栈中。如果栈深度大于虚拟机允许最大深度,抛出StackOverFlowError,不过虚拟机基本都允许动态扩

2020-08-10 15:28:13 946

原创 自动化测试框架Appium集成及应用

Appium概述这是一款基于selemium的移动端测试框架,支持原生,混合,移动web测试等,同时可以多种语言开发,如Python, Java, C#等,拥有可视化平台,操作便捷Appium Mac安装集成1.安装brew在终端命令行输入如下,安装完成后,brew -v 进行版本查看是否成功curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 12.安装nod

2020-07-31 09:26:49 461

原创 Android 屏幕适配方案

转发安卓适配方案今日头条方案适配原因原生渲染前会将dp转为px,dpi就是导致差异化因素也叫像素密度,根据设备分辨率和尺寸计算得出,出厂时已经决定了density = dpi / 160px = dp * density适配方案1.dimens基于px适配(宽高限定符适配)在res文件中,定义不同分辨率px参数,例如values-480*320 ,但是这种方案由于手机分辨率太多,局限性太高,弃用。2.dimens基于dp适配(smallestWidth适配)这种是根据最小宽度限定符,a

2020-07-30 13:41:07 308

原创 ConcurrentHashMap

ConcurrentHashMap 与hashMap基本相同,只是ConcurrentHashMap是线程安全的,jdk1.8实现原理基本相似,是对Hashmap的改造。高并发编程系列:ConcurrentHashMap的实现原理Java:CAS(乐观锁)JDK 1.7以前使用分段锁,一个Segment数组和多个HashEntry组成,Segment数组是将一个大的table分割成多个小的table来进行加锁,每一个Segment元素存储的是HashEntry数组+链表。JDK1.6 优化二次Ha

2020-07-30 09:21:46 79

原创 正则表达式

注意1:从网上考过来的\d编译器会自动转换成\\d,需要还原成\d"([a-z]+)(\\\\d+)"注意2matcher.find() 需要遍历多次,matcher.group(i)) 0是匹配字符,1是分组开始 public void isNumber() { Pattern pattern = Pattern.compile("([a-z]+)(\\d+)"); Matcher matcher = pattern.matcher("ads12121adf33

2020-07-16 17:11:20 186

原创 自定义view转Bitmap

将自定义view填充数据后,转成bitmap,填充到ImageView中1.自定义布局里面是RecycleView用于填充数据,ConstraintLayout是为了设置宽高生效,多加了层布局test.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schem

2020-06-12 14:19:33 1409

原创 TextView部分颜色展示点击

TextView长文字 ,部分文字颜色不同,并且可以分段点击。使用SpannableString,多个文字不同颜色不同点击,新建多个totalspan实现 SpannableStringBuilder spannableBuilder = new SpannableStringBuilder("TextView 要真是的内容"); ClickableSpan totalspan = new ClickableSpan() { @Override

2020-05-22 14:18:20 174

原创 layout_behavior could inflate subclass

CoordinatorLayout Fragment的layout_behavior属性,添加自定义Behavior报错,引入原生的就没事Could no inflate Behavior subclass原因:1.因为CoordinatorLayout是写着library里的,所以一定要引入全包名app:layout_behavior="com.test.view.BottomSheetBehavior"2.构造方法一定要有两个 public BottomSheetBehavior() {

2020-05-16 17:05:40 324

原创 RecycleView Item显示不全滚动方法

RecycleView 横向滚动实现类似Tablelayout,点击item,实现页面切换,相当于Title点击效果。但是不同item内容长度不一,多个item一行无法显示,item有的无法显示全,想要实现点击不全item,RecycleView自动滚动显示全。注意以下方法是横向滚动RecycleView方案一View为点击的Item,position是点击位置。getLocalVisi...

2020-05-07 13:35:34 1342

原创 Jni 三方so文件集成到自己so文件

这只是个示例,通过静态注册生成的so代表三方的so文件,集成生成一个so文件,提供给Java调用。如果不会静态注册,参考之前文章Jni使用方法1.在jni目录下新建test文件夹,将静态生成so,文件房子...

2020-05-07 09:09:41 549

原创 华为手机Logcat打开方法

*#*#2846579#*#*后台设置->Log设置->AP日志

2020-04-29 10:06:14 566

原创 NestedScrollView fragment覆盖部分RecycleView

NestedScrollView 里面包含RecycleView和Fragment,在加载数据后,后加载的Fragment覆盖了部分RecycleView数据。原因是NestedScrollView 子View设置了margintop和marginbottom,改成padding就可以了问题代码 : <androidx.core.widget.NestedScrollView ...

2020-04-26 16:21:34 252

原创 Jni使用方法

Android stuido创建第一个Hello Jni项目下载NDK,配置ToolAndroid stuido sdk下载ndk包配置环境变量终端输入 vim ~/.bash_profile ,配置NDK和path终端输入ndk-build,显示如下没找到directory为配置安装成功导入 ndk包,project structureAndroid stuido 配置Ex...

2020-04-22 12:09:34 725

原创 跳转白屏问题

使用Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK进行Activity跳转回出现白屏,需要增加windowDisablePreview这个主题属性 <activity android:name=".MainActivity" android:theme="@st...

2020-04-21 09:08:41 606

原创 权限判断

使用三方控件blankj的权限导包:implementation 'com.blankj:utilcode:1.28.0'blankj的权限,只有有一条授权就会调用onGranted(),有一条没授权调用onDenied(),全部授权则不调用。所以判断是否全部授权比较麻烦,通过handler延时方式解决,没有权限结束,全部授权跳转界面 Handler handler = new My...

2020-04-16 09:31:28 492

原创 RecycleView横向滑轮轮实现

RecycleView横向滑动,要求实现如下滑轮蓝条可以随着手势跟随RecycleView界面左右滑动,类似滚轴1.自定义View,单独设置setxoffSet()可实现滚动package com.custom;import android.content.Context;import android.content.res.TypedArray;import android.gra...

2020-04-15 18:55:29 343

原创 GreenDao使用方式

用过litepal,抛弃litepal是因为多层级时数据插入查询太慢了,greendao也没有进项大量数据测试,也是尝试阶段。1.项目gradlebuildscript { repositories { jcenter() mavenCentral() // add repository } dependencies { ...

2020-04-13 10:38:22 217

原创 位置服务判断与开启

动态获取位置权限后,如果不开启位置服务仍然定位不了1.PermissionsUtils 判断位置服务是否开启package com.mcmo.z.baselibrary.util;import android.content.Context;import android.os.Build;import android.provider.Settings;import android....

2020-04-09 15:14:15 799

原创 Flutter 序列化方法

转发 Flutter 常用功能介绍Flutter第二部分(数据)1.pubspect.yaml 添加如下 代码后点击packages get注意缩进不能变dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use...

2020-03-03 22:27:20 398

原创 Elevation阴影使用

elevation属性是design包自带的阴影功能,有几个注意事项1.要设置background,否则无效 android:background="@color/white"若不是设置,则需要设置bound,但是效果不太一样android:outlineProvider="bounds"2.要设置父布局宽高大于当前布局,才能显示阴影 <LinearLayout ...

2020-01-07 18:09:02 1019

原创 BottomNavigationBar使用方法

转发 这篇文章有角标的使用方式使用三方BottomNavigationBargradle implementation 'com.ashokvarma.android:bottom-navigation-bar:2.1.0'xml <com.ashokvarma.bottomnavigation.BottomNavigationBar android...

2019-12-31 16:15:17 361

转载 Android Studio查看总代码行数

查看代码行数

2019-12-30 15:29:56 3601 1

原创 App图标数字Badge实现

使用第三方控件导入第三方角标库ShortcutBadge这个库使用各手机厂商系统的角标展示,比较推荐使用。但是小米手机使用的是notification进行推送,区别其他厂商,三方文档有对小米适配,但是使用demo还是无法在小米手机显示角标。小米手机方案原因是:app在打开状态下进行推送,系统会认为推送完成,所以不展示。解决方案:在app关闭后,进行延时推送。并且点击进入app后,角标会自...

2019-12-25 16:04:25 793

原创 Drawable与TextView第一行对齐,后拼接不同颜色文本

实现左边drawable只与第一行对齐,置顶拼接在文本后方,可随文本输入向后移动1.导入三方框架,实现第一行对齐implementation 'com.github.ithedan:TextViewDrawable:v1.0'2.XML <com.hedan.textdrawablelibrary.TextViewDrawable android...

2019-12-19 09:57:18 1506

原创 动态设置 Shape color

动态设置Shape背景color GradientDrawable gradientDrawable = (GradientDrawable)view.getBackground(); gradientDrawable.setColor(context.getResources().getColor(color));TextView设置右图片 textview.setCompoundD...

2019-12-17 10:23:29 289

原创 腾讯X5实现office预览

该内核只能预览下载到本地的文件初始化X51.SDK下载、2.导入so文件,最后一个3.在app gradle中 defaultConfig { ndk { //选择要添加的对应cpu类型的.so库。 abiFilters 'armeabi','x86' }}implementation files('l...

2019-12-09 11:00:50 1297

原创 ConstraintLayout布局动态设置

记录下布局依赖变更,clone复制原先布局,一定要写,margin只能设置top,downapplyTo应用布局 ConstraintSet set = new ConstraintSet(); set.clone(clDetail); set.connect(divider.getId(), ConstraintSet.TOP, recycl...

2019-11-19 14:56:28 5638

ijkplayer so包.zip

基于ijkplayer,实现了视频流的录制,截图功能,下载so包解压缩后可选用armeabi-v7a作为唯一导入文件,可减少包体积。参考文章https://editor.csdn.net/md/?articleId=109309837

2020-12-16

Babel.js文件

该文件为Babel生产环境javascript文件,可用于ES6转换为ES5,Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中

2018-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除