- 博客(156)
- 资源 (52)
- 收藏
- 关注
原创 A problem was found with the configuration of task ‘:mylibrary:extractDebugAnnotations‘ (type ‘Extra
去掉这一行配置之后make project之后你会发现在找不到自动生成的DaoMaster、DaoSession、Dao 这些文件,没关系,这些都是自动生成的不可编辑的文件,实际是已经生成了,可以直接使用,只是没有像之前那样直接显示出来而已,具体为什么变成这样了,需要查询官方资料了解。在最新版AndroidStudio和最新版gradle 8.7 下,如果在project里面创建子module,在子module里使用greenDao的话,如果按照上面的写法就会出现最上面的那个问题。重点出问题的地方来了。
2024-07-27 09:28:06 216
原创 Direct local .aar file dependencies are not supported when building an AAR.
在modelu中引入aar包,debug运行没问题,build project的时候就会报错,内容是在构建AAR时,不支持直接的本地. AAR文件依赖关系。最终的AAR将被破坏,因为来自任何本地. AAR文件依赖的类和Android资源不会打包到最终的AAR中。在需要使用此aar包的module的build.gradle下引入LocalAar这个module即可正常使用。,然后把需要的aar包直接拷贝到此文件夹下面,然后再新建一个文件buid.gradle,里面输入内容。gradle版本8.7。
2024-07-26 16:05:32 1058 3
原创 WebView设置播放视频显示全屏切换按钮使用的
Android中使用WebView加载H5页面的时候,如果H5页面里有视频播放器,那么在进行视频全屏切换的时候可能直接在H5页面上操作不管用,那么Android中就需要对WebView进行一些设置FrameLayout mLayout; // 用来显示视频的布局private View mCustomView; //用于全屏渲染视频的Viewprivate WebChromeClient.CustomViewCallback mCustomViewCallback;@SuppressL
2023-07-13 14:14:49 1209
原创 简单易懂的颜色透明度计算
任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 alpha,00 表示完全透明,ff 表示完全不透明。表达式顺序是“AARRGGBB”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00到ff);“rr=red”(00 到 ff)。例如,如果设置字体颜色的透明度为 20% 的红色:透明度计算:20%透明度=255*0.2 =5151转为16进制=0x33
2022-11-16 11:28:22 1671 1
原创 Handler的交互场景
Handler的交互 * (1)单向子线程与子线程交互 * (2)两个子线程互发消息(双向) * (3)主线程发送消息到子线程。 * (4)子线程发送消息主线程。
2022-11-04 11:22:39 459
原创 LinkedList的源码分析(三)
前面两篇通过源码分析了LinkedList的一些基本方法,这一篇将这些方法做一个整体汇总整理,看看哪些方法的作用是相同的,以及他们在使用中的一个分类,因为LinkedList可作为栈、队列、双端队列使用。实际使用中根据需要自行选取使用哪个方法。
2022-10-11 00:00:00 209
原创 LinkedList的源码分析(二)
4)peekLast()方法:检索但不删除此列表的最后一个元素,如果此列表为空则返回{@code null}。方法:用指定的元素替换此列表中指定位置的元素。方法:将一个元素压入由此列表表示的堆栈。换句话说,将元素插入到列表的前面。方法:检索但不删除此列表的头(第一个元素,可为null)。方法:检索并删除此列表的尾(最后一个元素,可为null)。方法:检索并删除此列表的头(第一个元素,可为null)。方法:添加指定元素作为列表的尾部(最后一个元素)。方法:将指定的元素插入到列表的开头,此时的时间复杂度是。
2022-10-10 08:00:00 324
原创 LinkedList的源码分析(一)
通过源码可以看到node(int index)方法遍历查找指定元素索引处的非空节点的时候是分成两部分来遍历查找的,当要查的元素的index索引小于列表大小的一半时候,进行index之前的部分查找;当要查的元素的index索引大于列表大小的一半时候,进行index之后的部分查找,这样可以节省很多时间,否则 会在非空节点之前插入该元素,这是会先通过node(int index)方法遍历查找指定元素索引处的非空节点,此时的时间复杂度是。如果要插入的索引是列表的大小,则将该元素追加到列表的末尾,同1)中的。
2022-10-09 11:49:54 291
原创 ArrayList的源码分析
先要循环遍历列表找到要移除的元素,此时的时间复杂度已为O(n),当找到要移除的元素时,调用fastRemove()方法时,还要考虑到需要复制底层数组,时间复杂度还是O(n),整合在一起就是O(n)*O(n),也就是。如果需要扩容,以确保它至少可以容纳由最小容量参数指定的元素数量,扩容的时候,执行Arrays.copyOf()方法,把原有数组中的元素复制到扩容后的新数组当中,原数组被抛弃,会被GC回收。(8)remove(Object o),如果指定元素出现,则从此列表中删除第一个出现的元素。
2022-10-01 10:00:00 724
原创 HashMap和Hashtable的区别源码对比(二)
HashMap和Hashtable的区别源码对比,常用的一些方法,如:map.put("","");map.get("");map.containsKey("");map.containsValue("");map.remove("");map.clear();
2022-09-23 15:26:02 260
原创 HashMap和Hashtable的区别源码对比(一)
在Java中,可以使用synchronized关键字来标记一个方法或者代码块,当某个线程调用该对象的synchronized方法或者访问synchronized代码块时,这个线程便获得了该对象的锁,其他线程暂时无法访问这个方法,只有等待这个方法执行完毕或者代码块执行完毕,这个线程才会释放该对象的锁,其他线程才能执行这个方法或者代码块。否则,因为我们使用的是2的幂展开,所以每个bin中的元素要么必须保持相同的索引,要么在新表中以2的幂偏移量移动。而hashmap不是同步的,适用于单线程环境。
2022-09-20 14:18:20 210
原创 解决AndroidStudio 提交代码到github失败的问题
获取到token后登录成功,提交程序后报错提示OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10053,然后网上找了一些解决办法,好多解决方案都是通过下面的命令来处理。我使用的是全选,但是后面就又遇到了问题,在这里先防范一下,就是最后一项ssh_signing_key选中导致的,我这个是将ssh_signing_key这项取消选中就好了。1、在github右上角找到当前登录账号的头像,点击边上的倒三角展开,选择下面的Swttings选项。把这项取消,更新token。
2022-09-06 10:53:07 1321
原创 synchronized同步以及双重检索
一、synchronized同步参考两个线程同时执行会出错,那么最简单的方法是让CPU执行完一个线程,再执行另一个线程,那么Java中给出了一个非常简单的解决办法,【synchronized】:是一种同步锁。简单解释一下:就是synchronized修饰的代码,同时只能有一个线程执行,即执行完一个线程,再执行另一个,其它需要执行的线程都要排队 。synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块......
2022-09-01 11:02:48 1164
原创 Android中将页面的某一部分布局转成图片显示,可上传或保存到本地
想要把页面中的某一部分布局转成图片,这里使用了一种比较简单的做法,那就是View组件显示的内容可以通过cache机制保存为bitmap,我们要获取它的cache先要通过setDrawingCacheEnable方法把cache开启,然后再调用getDrawingCache方法就可 以获得view的cache图片了。...
2022-07-28 11:09:00 1123
原创 根据坐标点在图片上标记
根据标记点的坐标在图标上画标记点,效果如下图所示:图上的1和2就是根据坐标画的标记点使用ViewPager实现给多张图标做标记,滑动查看用到的实体类,内容可根据实际情况增加或删除字段:ImgSimplepublic class ImgSimple { public String url;//图片连接 public float scale;//图片显示区域的宽高比 public ArrayList<PointSimple> pointSimples;..
2022-03-31 15:44:27 1292
原创 设置dialog以外的区域,比如dialog下面的activity中的其他控件可以点击
//实现Dialog区域外部事件可以传给Activity //FLAG_NOT_TOUCH_MODAL作用:即使该window可获得焦点情况下,仍把该window之外的任何event发送到该window之后的其他window getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); .
2022-02-28 17:44:20 637
原创 WindowManager全局显示系统级悬浮窗
WindowManager添加系统级悬浮窗windowManager.addView(view,layoutParams);
2021-12-17 14:33:53 3077
原创 Android之远程查看异常崩溃信息——腾讯Bugly的自动集成
当线上应用出现问题,我们为了能快速找到用户使用时候的异常崩溃信息,那么我们可以使用腾讯的Bugly来搜集异常信息,下面就简单记录下Bugly的简单自动集成方式:首先是去Bugly官网注册新账号,使用QQ登录,然后完善开发者信息,之后创建应用Bugly支持JCenter仓库和Maven Central仓库。为了实现更加灵活的配置,Bugly SDK(2.1.5及以上版本)和NDK(SO库)目前已经分开成两个独立的仓库:SDK:com.tencent.bugly:crashreport NDK
2021-11-12 10:45:17 4923
原创 Android热修复之—阿里热修复
如果一个App上线之后发现有重大bug需要紧急修复,那么通常做法是需要修改bug,然后重新打包发布,这样效率会比较低;但是有了热修复,就省事多了,下面就阿里的热修复集成使用做下说明记录,还是比较简单的,主要是对官网的内容做一个整合,看起来更方便一些。1、首先是要去阿里云官网注册一个账号,然后进入移动研发平台EMAS创建一个工作空间。之后进入空间按照提示添加应用。2、上面内容填写完后点击下方的创建应用,进入下面的页面下载配置文件下面这个是配置文件的内容,其中status有1和0,1代表开...
2021-11-09 17:56:58 3820 1
原创 api 和 implementation的不同点
api 和 implementation的不同点:api和implementation两种依赖的不同点在于:它们声明的依赖其他模块是否能使用。api:当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用implementation:当其他模块依赖此模块时,此模块使用implementation声明的依赖包只限于模块内部使用,不允许其他模块使用。api 和 implementation 原因: 网络其他人写的很好了. 借鉴于此: ...
2021-11-08 17:20:27 584
原创 自定义View画仪表盘(可画指针,可在中间写刻度值)
自定义View 画仪表盘,其实很好画,代码里都加了注释了,这里就不多写了,根据实际需要改动就可以,可区分不同刻度区域的,一个是带指针的,一个是不带指针在刻度盘中间写实际数值的,先来张示例图看下:画这个仪表盘的步骤:1、先获取控件区域的宽高,然后找到圆心点以及圆的半径: int minimumWidth = getSuggestedMinimumWidth(); int minimumHeight = getSuggestedMinimumHeight(); m...
2021-10-24 09:09:58 967
原创 自定义进度Button
这个里面包含倒计时器的使用,还有自定义进度Button,效果如下所示:import android.os.CountDownTimer;/** * Created by WJY. * Date: 2021-09-01 * Time: 15:34 * Description: */public class VibrationToAudioActivity extends Activity { private ProgressButton btnProgress;//..
2021-10-14 16:31:03 162
原创 进度条之ProgressBar
<ProgressBar android:id="@+id/myprogress2" style="@style/StyleProgressBarMini" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_.
2021-10-14 16:29:31 91
原创 PopupWindow封装在控件下方弹出下拉弹窗
PopupWindow封装公共弹窗,在控件下方弹出下拉弹窗,加载列表数据。样式如下:package com.android.sdlc.checkterminal.utils;import android.content.Context;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.Gravity;.
2021-09-13 15:09:09 516
原创 Android中的apk通过签名校验防止反编译重打包
Android开发完打包好的apk如果被别人盗取可能会存在被反编译重打包的风险,那么我们如何来保护我们辛苦开发出来的程序不被别人盗取重打包呢,这里我们通过签名文件入手,因为打包时候是需要签名的,别人盗取后如果重打包也是需要签名的,那么如果重打包的签名跟我们原本打包的签名不一样,就可以阻止他使用该apk。我们要在首页MainActivity里来判断重打包的签名文件是否与原签名文件一致:/** * 获取签名文件的第一个签名值 * @param packageName 应用包名
2021-08-31 16:48:05 1988 1
原创 查看APP本地数据库表结构的方法
Android Debug Database is a powerful library for debugging databases and shared preferences in Android applications.一个可以在浏览器中查看的客户端数据库以及Sp文件的插件。怎么使用:1.直接在app–>build.gradle 中引入依赖jardebugCompile ‘com.amitshekhar.android:debug-db:1.0.0’2.build程序.
2021-06-01 18:12:14 2016 4
原创 Android中实现语句中的关键字变色
/** * 实现语句中的关键词变色 * @param context 上下文 * @param name 语句 * @param key 关键字 * @return 得到关键字变色后的语句 */ public static SpannableString setColor(Context context,String name,String key){ //key = "关键字";//关键词 .
2021-05-27 15:05:40 687
原创 自定义 浮动button 自动靠边 附加收缩功能
import android.animation.ObjectAnimator;import android.annotation.SuppressLint;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.view.ViewGroup;import android.view.
2021-05-22 11:45:50 864 3
原创 解决TabLayout设置字体大小不起作用的问题
<android.support.design.widget.TabLayout android:id="@+id/tab_type" style="@style/MyBgTablayoutstyle" android:layout_width="match_parent" an.
2021-04-17 15:19:34 2677 4
原创 Android简单的集成腾讯视频播放器
在build.gradle里加入api 'com.tencent.tbs.tbssdk:sdk:43939'//腾讯视频播放AndroidManifest.xml里加入 <activity android:name="com.tencent.smtt.sdk.VideoActivity" android:alwaysRetainTaskState="true" android:configChange
2021-04-17 15:16:50 1482
原创 Android中获取视频的第一帧图片的三种方法
1、使用Glide获取视频的第一帧图片Glide.with(holder.mCover.getContext()) .setDefaultRequestOptions( new RequestOptions() .frame(0) .centerCrop() )
2021-04-10 11:34:57 12137
原创 解决ScrollView 嵌套RecyclerView出现的问题
ScrollView 嵌套RecyclerView会使RecyclerView列表显示不全,很多人都把ScrollView替换成NestedScrollView,或者重写RecyclerView。其实使用ScrollView并且不用重写RecyclerView也是可以实现的,那就是在RecyclerView外面再嵌套一层布局就可以了。像下面这样: <ScrollView android:id="@+id/scrollView" a
2021-04-10 11:30:39 495
原创 扫描NFC卡,获取卡号存储到本地并可以以Excel形式导出数据
这是一个使用支持NFC的手机扫描NFC射频卡获取到卡号,使用greenDao数据库做本地存储,扫完之后可以将数据以Excel表格形式导出查看数据。不是什么新技术,内容比较简单,这里就主要贴源码了,没有讲解,不过对于有用的人还是比较实用的,方便查看和拿过来就能使用。下面就是整个工程的接入流程,按照步骤就能做出一个实用的工具了。先做一下准备工作:生成Excel文件会用到一个jar包文件,下载地址:https://download.csdn.net/download/u013184970/16155721
2021-03-27 13:45:28 4351
原创 使用RecyclerView实现item拖拽变换位置重新排序
小知识解决大问题,问题处理+经验分享,大家好,我是时代新人!今天给大家分享一个小例子,请往下看:今天用RecyclerView实现一个拖拽交换位置,和编辑删除的功能。先来个效果图看一下1、定义一个ItemTouchHelperAdapter接口import androidx.recyclerview.widget.RecyclerView;/** * Created by WJY. * Date: 2021-03-16 * Time: 10:45 * Description:
2021-03-16 12:34:27 4289 4
原创 设置控件抖动Android
一些输入框如果没用数据内容的时候,一般我们都会给一个提示,那么这次给它来一个更明显的效果就是让它抖动起来,实现也很容易,就是简单的动画首先在res目录下新建一个anim动画文件夹,在里面新建动画文件shake.xml<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta=
2021-03-13 11:55:02 185
原创 解决RecyclerView条数显示不全问题
小知识解决大问题,问题处理+经验分享,大家好,我是时代新人!今天给大家分享一条小经验,请往下看:多个RecyclerView同时使用的时候,比如线性垂直排布三个RecyclerView,那么会出现一个问题就是第一个RecyclerView的数据条数显示不全,只能显示一屏的内容,比如有10条数据,一屏只能显示5条,那么第一个RecyclerView就只显示5条数据,然后就显示下一个RecyclerView的数据了<?xml version="1.0" encoding="utf-8"?>
2021-03-08 15:28:35 2110
原创 Android手机不识别USB数据线,使用adb网络远程连接
在Android开发中,我们平时调试程序都需要把手机用USB线连接到电脑上才能在LogCat中打印日志或者断点调试,有时候我们连接上USB数据线电脑不识别,这个时候我们要怎样调试呢?今天我们用另一种方法,不用使用USB线连接也可以调试的方法,那就是通过adb connect命令实现。1、先把手机用USB线跟电脑连接;2、在电脑上打开cmd命令行程序,输入adb tcpip 5555命令,打开手机的5555端口;3、打开手机5555端口后就可以拔掉USB线了,通过adb connect【手机i
2021-02-22 11:25:58 1713 2
原创 Android的屏幕适配——今日头条
在开发中我们经常会用到屏幕适配,因为市场上的手机型号实在太多了,这里我用到的适配方案是今日头条的屏幕适配,个人觉得用起来很方便,下面就来记录下使用方法:1、在app的build.gradle里加入下面配置//屏幕适配implementation 'me.jessyan:autosize:1.1.2'2、在AndroidManifest.xml里配置:(基准设计尺寸单位dp) <meta-data android:name="design_wi
2021-01-27 15:08:05 645
原创 简单易用的MediaPlayer音频播放器
为方便使用MediaPlayer播放音频,这里封装了一个类,使用的时候直接调用方法就可以了public class MediaPlay { private static MediaPlayer mMediaPlayer = null; private static MediaPlayCallBack mMediaPlayerCallBack = null; private static Timer timer;//定时器 private static int tot
2020-12-22 14:46:55 376
通过USB设备控制佳能或者尼康单反相机remoteyourcam-usb.zip
2020-04-11
MyTBS文件浏览(word/excel/pdf等).rar
2020-02-13
Modbus Tcp/ip
2017-09-19
XCL-Charts 开源图表库
2017-09-07
BaiduMapTest
2017-08-11
ksoap2-3.0.0-jar
2017-05-10
crosswalk的WebView控件(XWalkView)Module包
2017-05-03
MPAndroidChart
2016-08-02
《人月神话》
2015-12-19
网上服装商城
2015-12-19
GridView点击改变图片效果
2015-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人