- 博客(27)
- 资源 (3)
- 收藏
- 关注

原创 查看系统应用命令/卸载系统应用2021-02-07
查看系统应用命令/卸载系统应用adb shellcd system/appls -l卸载系统应用pm uninstall +"包名"
2021-02-07 11:27:48
214
原创 kotlin开发经验-弹窗与viewModel
一个用户菜单的需求,本来是想单独做成一个活动的,不过由于需要在按菜单键时显示在视频活动的上层,最终决定是做成一个PopupWindow,依托于视频活动的上下文对象。弹窗中的网络请求放在协程中,通过viewmodel中的方法调用。initView()中设置可获焦,设置背景以响应返回键。设置UI,初始化adapter和设置监听。
2023-01-28 14:09:39
452
原创 AIDL的使用小结
有些服务端的服务可能需要一些权限,去manifest里添加activity里//人脸识别服务链接 public boolean isAIFaceBind = false;/**死亡代理, 重连***/ private final IBinder . DeathRecipient mAIFaceDeathRecipient = new IBinder . DeathRecipient() {
2022-11-01 16:23:30
147
原创 kotlin协程小结
runBlocking:不是 GlobalScope 的 API,可以独立使用,区别是 runBlocking 里面的 delay 会阻塞线程,而 launch 创建的不会。viewModelScope :是在ViewModel KTX扩展中已定义的CoroutineScope(协程作用域),所有的协程都必须在一个作用域内运行。用的结构化并发机制能帮助追踪运行在协程中的任务,比如在不需要协程的时候取消任务,协程运行时追踪任务,协程执行失败时传播错误信号。某些库还提供自己的协程作用域,可用于结构化并发。...
2022-08-17 11:18:57
950
原创 安卓初始化页面时view的异步加载
Rxjava 2-导入io.reactivex.rxjava2:rxjava:${Version.rxjava2}在初始化页面时 inflate耗时较久的view1. 可以先用as的 *和去检测中间代码的耗时时间;initView()中复杂页面的加载放到 AsyncLoadView() 中 , initView()可只放整体框架界面,便于快速进入此页面(活动或碎片等);因为原来R.layout.search_left 处的布局被异步加载了,所以原来的位置用一块纯色view填充,等异步加载成功之后替换掉
2022-06-28 18:21:20
712
原创 一个“自带焦点”的跑马灯效果的alwaysfocusTextView 及 手动控制跑马效果的实现
首先,普通情况下TextView*聚焦状态下显示跑马灯文字效果需要android:focusable=“true”android:ellipsize=“marquee”android:marqueeRepeatLimit=“marquee_forever”android:scrollHorizontally=“true”有时是不需要textview能获取焦点的,但同时要实现跑马灯效果这个时候可以继承一下textview,重写isFocused()方法使其返回true使用时max.
2021-07-23 17:24:39
270
1
原创 VerticalGridView的焦点无法出界的问题2021-07-19
前提1.给View整体设置了点击事件但未设置onkeylistener2.给View中的子控件设置了点击事件和onkeylistener3.其中View的根布局中,设置了状态addStatesFromChildren="true"但未指明focusable的值;子控件设置为focusable为true在设置View的根布局为focusable="false"后,VerticalGridView的焦点可以移动到VerticalGridView之外了。问题点在于未设置View的根布局为foc.
2021-07-19 10:51:11
615
1
原创 安卓checkbox的基本使用
属性设置初始选中状态android:checked="false"设置勾选框button的样式不指定就是安卓默认的,但是默认的自带内边距,ui效果不理想 android:button="@drawable/check_box_bg" 再在drawable/check_box_bg里设置checked的状态对应的drawable 在Java代码里初始化之后可以监听勾选状态:非常好用 checkBtn.setOn
2021-07-15 18:16:42
857
原创 recycleview中实现item间距的技巧性方法&&圆形背景框shape
在item根布局自由指定左边距或右边距,上下边距同理根布局里面是一个整体的relativelayout实现图片的圆形背景框可以先指定imageview的矩形,宽高相等,一定要相等再设置背景为一个宽高相等的oval椭圆shape形状...
2021-07-15 18:08:55
140
原创 Android XML各种不常见但有用的标签属性
android:addStatesFromChildren="true"设置此ViewGroup的可绘制状态是否还包括其子级的可绘制状态。例如,这用于使组在其子EditText或按钮处于焦点状态时显得处于焦点状态
2021-03-18 10:15:15
132
原创 AS删除旧包引入新包时依赖冲突-2021-3-8
build时报错:Program type already present:com.xx.xx应尝试 clean projectAndroid开发之——依赖冲突Program type already present
2021-03-08 17:21:21
173
原创 接口在activity的子view/自定义控件中的妙用--2021/3/8
一个activity中存在嵌套子view/自定义控件,可以在子view利用接口实现返回表层视图;以view pager的子view为例:```bash在view pager的pager adapter里的instantiateItem()方法中初始化子Item,这里的子item调用v.getId()发现返回-1,即无id;在这个类声明一个接口及抽象方法,并且增加一个setCallBack(你的接口)方法,以便调用类设置自己的接口实现;在instantiateItem()方法中调用item的set.
2021-03-08 12:26:08
128
原创 easyocr开源ocr使用心得
前提条件配置好anaconda以及pip 导入ocr库最终命令第二句只需第一次初始化使用import easyocrreader = easyocr.Reader(['ch_sim','en'], gpu = False)reader.readtext('chi.jpg', detail = 0)1.在图片对应目录下shift+右键打开windows PowerShell;2.输入jupyter notebook在浏览器打开notebook打不开可尝试防火墙未拦截anaconda的.
2021-03-04 18:01:56
2111
1
原创 安卓8以后Notification使用 2021/2/23
int progress=0;//通知可以带进度条指示下载进度等NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE); //需添加的代码 String channelId = "default"; String channelName = "默认通知"; if (manager != null) {
2021-02-23 16:59:13
162
原创 日期时间格式
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d1 = new Date(mStartTime);//可以用空构造方法获取即使时间 String startTime = format.format(d1);
2021-02-19 18:33:24
307
原创 判断安卓videoview在线播放卡顿(5s)的方法
/** * 针对在线广告 * 判断在线广告是否缓冲超时5s;是则跳过广告 */ public void isBufferingTimeOut() { Timer timer = new Timer(); timer.schedule(new TimerTask() { int old_duration = 0; long lastTime = System.currentTimeMilli.
2021-01-25 17:20:24
429
原创 TV焦点监听-焦点处动画放大-焦点框
TV焦点监听-焦点处动画放大-焦点框为要实现动画放大的View实现自定义的View.OnFocusChangeListener;要放大的倍数可以通过View的setTag(…)设置,也可以直接在自定义的焦点监听类设置常数;最后,如果要焦点处放大后还能显示焦点框,View如果是xml,则设置android:background="@drawable/task_fc_itemborder"这个drawble文件如下:亲测用selector/item/shape有效显示焦点框;<?xml ve
2020-12-24 18:38:13
206
1
原创 模板NetworkChangeReceiver
NetworkChangeReceiver一个通用的监听网络状态的广播接收器:可以在Application类中onCreate注册:private void registerNetReceiver() { IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); NetworkChangeReceiver networkReceiver=new NetworkChangeRecei
2020-12-22 11:57:49
1094
1
原创 几个linux命令
几个linux命令su :切换用户 但环境变量未变su - :su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。以此类推,
2020-12-21 17:46:48
116
原创 toArray()的带参方法
toArray()的带参方法List rePermissions=new ArrayList<>();String[] reAskPermissions= rePermissions.toArray(new String[0]); //加具体数组类型的实例参数的toArray会返回参数类型的数组
2020-12-18 18:32:02
587
1
原创 AS导包失败 Warning2020-12-17
AS导包失败 WarningWarning:project ‘:app’: Unable to build Kotlin project configurationDetails: org.gradle.internal.resolve.ArtifactNotFoundException: Could not find annotation.jar (androidx.annotation:annot。。。解决办法您可能会收到错误,因为您已在google()存储库之前声明了jcenter()存储
2020-12-17 15:16:59
2077
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人