自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (3)
  • 收藏
  • 关注

原创 解决Pixel手机时间不能自动同步

Android

2022-10-15 19:42:06 4440 1

原创 AabResGuard添加依赖总结

aab 混淆

2022-07-24 16:02:35 1112

原创 Git找不到远程库

搜索 凭据管理器点击 Windows凭据往下拉,在普通凭据里面删除GitHub相关的凭据

2022-02-07 11:28:25 1535

原创 Android 利用RadioGroup做个标题选中放大效果

android:button="@null" 用来去除RadioButton小圆圈android:background="@color/transparent" 用来去除点击RadioButton时候出现的水波动画背景<RadioGroup android:id="@+id/rg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientatio.

2021-10-27 12:03:27 732

原创 Android使用registerForActivityResult(ActivityResultContracts.PickContact()) 无法获取联系人问题

报错java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.代码registerForActivityResult(ActivityResultContracts.PickContact()) { // 这里通过Uri获取联系人信息报错

2021-09-23 02:06:38 1416

原创 Android Path API笔记

lineTo(x,y)画直线,参数x,y坐标表示直线的终点坐标,起点坐标为当前画笔所在坐标.画笔初始坐标为(0,0),直接进行画直线效果如下:public class DrawingView extends View { private final Paint mPaint = new Paint(); private final Path mPath = new Path(); public DrawingView(Context context) { s

2021-08-30 11:23:58 149

原创 Android 简单点赞动画

思路找到Activity中DecorView的RootView确定点赞控件位于屏幕中的坐标值将点赞效果View加入到RootView中, 给效果View添加自己想要的动画效果.重复点击时候, 需要将效果View先移除掉再重新加入到RootView中.代码/** * 普通点赞效果, 点击控件后出现一个View上浮 */public class ViewLikeUtils { public interface ViewLikeClickListener { /**

2021-08-18 17:02:26 1004

原创 Android Room使用记录

简单使用笔记MyDatabase@Database( entities = [xxxEntity::class], version = 1)abstract class MyDatabase : RoomDatabase() { // Dao abstract fun getXxxDao(): xxxDao companion object { @Volatile private var INSTANCE: MyDataba

2021-08-13 11:59:06 225

原创 Android 布局, 父容器中一个View被另一个View挤出

Gif中意思是蓝色控件将红色控件挤出父容器了, 要求是不让红色控件被挤出父容器而蓝色控件也能自由的向下扩展.两个View水平,父容器选择LinearLayout.两个View宽度相加, 小于父容器宽度, 就不做处理. 效果和LinearLayout里一样.两个View相加宽度大于父容器宽度, 就要重新计算子View的宽度和高度了.下面是具体代码:public class HotNewsItemView extends LinearLayout { public HotNewsIte..

2021-08-05 16:09:47 791 1

原创 Bintray 替代方案

参考打开 项目点击 tag点击 Releases点击 Draft a new releaseTag version: 0.2.7Release title: 0.2.7点击 Publish release打开网页JitPack输入 rgdzh1/BannerY 点击 Look Up搜索,等待结果网页中就能看到添加依赖的说明,如下:// 1.allprojects { repositories { maven { url 'https://jitpack.io' .

2021-07-04 01:02:58 346

原创 解决 The emulator process for AVD was killed

解决 “The emulator process for AVD was killed”最近我创建一个新的模拟器, Android 11版本, 启动时候发现提示"The emulator process for AVD was killed".我搜了些中文博客, 写的各种设置, 后来在Google上搜索到是因为Android 模拟器版本太低了导致的, 在Studio种更新下Android Emulator就好了.原文链接...

2021-03-22 11:26:07 1153

原创 Fiddler 配置安装

Fiddler 配置安装基本配置下载链接有Window,Linux,MacOs几种安装包安装配置安装比较简单HTTP配置监听,按照图中配置.HTTPS配置监听, 按照图中配置.该勾的勾上.监听Android查看电脑IP地址, cmd中输入ipconfig.手机与电脑链接上同一个Wifi, 进入手机Wifi网络详情,修改Wifi代理,选择手动,主机名: 写电脑ip端口写: Fiddler默认监听的8888在手机浏览器中输入localhost

2021-01-22 18:39:13 134

原创 Kotlin Android缓存库CoroutinesCache

RxJava+Retrofit如果想做缓存以前会用RxCache(停止维护). 迁移到Kotlin后,使用Coroutines+Retrofit请求网络想做缓存的话貌似资料还不是不多.CoroutinesCache 是用来做Coroutines+Retrofit缓存的,这个库Readme有点老,下面记录的是我使用的时候踩坑的笔记.依赖implementation "com.github.diefferson:CoroutinesCache:0.3.0"使用private val co.

2020-12-16 18:31:57 615 1

原创 三 安装Gin框架遇到的问题解决

第一次安装gin,使用go get -u xxxx下载后写了个简单的例子,run之后发现一堆的错误,都是导包的问题.go get -u github.com/gin-gonic/gin然后找到一个网站go(需要梯子),上面可以搜到很多的包有的库使用go get -u xxxx无法下载下来,那就需要手动下载然后将该包的源码放在对应的提示目录下(run后报错提示的路径)有的库已经放弃维护了,github上根本找不到,还需要去历史版本中找到这个库下载下来手动放到gopath对应的目录中...

2020-12-04 21:45:34 890

原创 使用Kotlin协程Channel做一个定时器

// 使用通道创建定时操作,和Go协程一样的.lifecycleScope.launchWhenResumed { // 1.创建通道 val channel = Channel<Int>() // 2.向通道发送数据 launch(Dispatchers.IO) { for (i in 1..100) { delay(150) // 延时0.15秒发送 channel.send(i)

2020-12-01 11:47:42 5481

原创 一 Windows下Go环境配置

下载地址386代表32位操作系统安装包amd64代表64位操作系统安装包下载go1.15.5.windows-amd64.zip安装包解压配置好系统环境变量GOROOT:C:\Software\Go:上面安装包的存放路径GOPATH:C:\Software\GoPath:开发项目的存放目录将%GOROOT%\bin加入Path系统变量中将%GOPATH%\bin加入Path系统变量中(加上这个第三方go工具才能使用)在dos终端检验配置是否成功go env # 查看得到g.

2020-11-27 17:42:20 391

原创 Android BottomNavigationView 添加消息提示(二)

这篇文章中使用的旧版本BottomNavigationView如何设置徽章material-components-android简介依赖implementation 'com.google.android.material:material:1.3.0-alpha03'android:theme="@style/AppTheme"必须使用Theme.MaterialComponents.xxx主题<style name="AppTheme" parent="Theme.Mate.

2020-11-23 17:20:55 291

原创 Android DataBinding 简单封装

以下代码来源JDataBinding作者微信公众号:ByteCodeActivity里封装DataBindingprotected inline fun <reified T : ViewDataBinding> binding( @LayoutRes resId: Int): Lazy<T> = lazy { DataBindingUtil.setContentView<T>(this, resId) }使用private val mB.

2020-11-19 16:56:07 859

原创 Android ImageView自定义BindingAdapter

这是一个很适用的小技巧以下代码都是来自开源项目PokemonGo代码@BindingAdapter("bindingAvator")fun bindingAvator(imageView: ImageView, url: String) { imageView.load(url) { crossfade(true) placeholder(R.mipmap.ic_launcher_round) }}@BindingAdapter("bind.

2020-11-19 16:07:32 585

原创 Jetpack App Startup学习笔记

好文章这个笔记主要是对这篇文章的理解总结.PokemonGo里面代码用的是这个开源项目, 这个作者人很热情.总结某个库使用了ContentProvider来进行初始化,那这个库最好接入App Startup,这样可以让使用了这个库的APP降低启动耗时.一般做APP开发很少能用到App Startup,如果考虑到架构可以将原来Application中初始化的代码移动到App Startup中单独执行,这样可以让代码结构更好.一些库设计者会使用ContentProvider来初始化库, 这样做.

2020-11-17 17:44:25 167

原创 Android ViewPager2导致ScrollView自动滚动到顶部问题

描述ViewPager2+Fragment结构, Fragment的布局ScrollView里有一个Banner轮播图控件.当ScrollView顶部滑出屏幕, 轮播图切换的时候ScrollView顶部就回到0位置了.解决方法貌似没有很好的解决方法, 很多Banner库在这个结构中都会造成ScrollView自动滑动的问题出现.把ViewPager2换成ViewPager这个问题就消失了....

2020-11-13 11:57:35 1057

原创 Android TextInputEditText getBoundsOnScreen()报错

报错日志Process: loanchamp.com.loanchamp.plus, PID: 3104java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.getBoundsOnScreen(android.graphics.Rect)' on a null object reference at android.app.assist.AssistStructure$.

2020-11-09 18:22:36 316

原创 Android 百度定位对接

在控制台创建一个应用,选择好服务,配置APP key的SHA1值.下载开发包后开始配置:库配置libs: arm64-v8a armeabi x86_64 BaiduLBS_Android.jarbuild.gradle配置sourceSets { main { jniLibs.srcDirs = ['libs'] jni.srcDirs = [] }}dependencies { // 百度.

2020-10-19 15:29:13 327

原创 Android-PickerView 定制用法记录

地址英文日期Android-PickerView没有月份用英文的控件,在Issues中有人贴出了方法.继承WheelView实现:public class EnglishMonthWheelView extends WheelView { public EnglishMonthWheelView(Context context) { super(context); } public EnglishMonthWheelView(Context context,.

2020-09-14 15:08:20 274

原创 Android 用Java开发的自定义控件引入到Kotlin项目中的Bug

BUG1环境: Android Studio 4.0Bug描述Java写的自定义控件,每次改自定义控件后都会加到jcenter里,正式项目再从jcenter上拉aar包依赖, 然后缓存里大概有20多个版本aar文件.一次改了自定义控件布局文件后, 同样的操作, Kotlin项目打包用的布局结果依旧是老布局,但是代码是新版本代码,所以就找不到控件id.试过invalidate,clean等操作无效.但相同的依赖方法用在Java项目里面一点问题都没有.解决发现把Studio里面的缓存的arr文件

2020-08-31 16:04:47 335

原创 Android ScrollView滚动到指定子View中的子View

ScrollView中一般嵌套一个LinearLayout,当想用代码操作ScrollView滚到到指定的子View一般操作为ScrollView.scrollTo(0,View.getTop()),但是有没有遇到这种方式无效的时候呢?View.getTop()是获取该View相对于父容器的高度,比如ScrollView包含ALinearLayout,然后ALinearLayout中包含BLinearLayout和CLinearLayout,TextView控件为CLinearLayout中子控件..

2020-08-31 15:54:49 2007

原创 华为真机调试崩溃日志闪过问题

设置AP LOG为打开适用于华为荣耀6P这类老型号手机拨号界面输入*#*#2846579#*#*进入工程菜单->后台设置->AP LOG设置->打开Logcat选择show only selected application设置Logcat适用于华为荣耀9这类手机不要选择show only selected application,选择No Filters....

2020-08-31 15:37:52 744

原创 Android Kotlin KaptExecution错误集合

问题描述:在Module级别build.gradle下引入了apply plugin: 'kotlin-kapt',构建时出现下面的报错提示.public abstract class BaseStateActivity<T extends androidx.databinding.ViewDataBinding, E extends xxxx.BaseVM> extends xxxxx.BaseVMActivity<T> implements xxxxx.IBindVm&l.

2020-08-31 15:32:28 11325

原创 Android release版本java.lang.NoSuchMethodError XmlResourceParser报错

来源APP release包打开报错:java.lang.NoSuchMethodError: No interface method a()Ljava/lang/String; in class Landroid/content/res/XmlResourceParser; or its super classes (declaration of 'android.content.res.XmlResourceParser' appears in /system/framework/framewo.

2020-08-31 15:30:07 446

原创 WebView使用Kotlin时异常IllegalArgumentException

异常出现在为WebView设置监听时候.代码mDataBinding.wb.setListener(this, object : AdvancedWebView.Listener { override fun onPageStarted( url: String, favicon: Bitmap ) { } override fun onPageFinished(url: String) { } override f.

2020-08-31 15:29:01 265

原创 Android自定义View多个declare-styleable节点属性冲突处理

同一个Library中,不同的自定义View需要用不同的declare-styleable,如果两个不同的declare-styleable存在相同的属性就会构建失败,下面就是解决该问题的方法.<?xml version="1.0" encoding="utf-8"?><resources xmlns:tools="http://schemas.android.com/tools"> <declare-styleable name="StepperIndicat.

2020-08-31 15:28:07 1057

原创 Android BottomNavigationView添加消息提示(一)

来源首先要写一个徽章布局notifications_badge.xml,我页面做了适配所以用的pt单位,也可以替换为dp,看项目情况.<merge xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/notifications_badge" android:layout_width="wrap_content" .

2020-08-31 15:25:59 516

原创 Android 自定义View时添加DataBinding双向绑定功能

项目中用到组合控件, 这个控件用的特别的多, 但还想用DataBinding的双向绑定功能, 很多博客有写实现步骤, 这里面涉及了那些逻辑呢, 这篇笔记是我使用时候的总结.控件介绍组合控件中有一个EditText,用户向EditText输入新的内容时,MutableLiveData可以收到输入的内容,通过向MutableLiveData中setValue()新数据能实现主动更新EditText的内容.组合控件代码public class CustomeEditTextView extends.

2020-08-13 12:51:41 2340

原创 AndroidUtilCode AdaptScreenUtils屏幕适配使用笔记及简单分析

头条适配原理Android 屏幕适配终结者一种粗暴快速的Android全屏幕适配方案屏幕适配原理简单说下尺寸单位介绍dpi:屏幕密度,屏幕上每英寸上有多少像素点.屏幕对角线上的像素点总数除以屏幕对角线长度得到.dip:也就是最常用的dp单位,屏幕上每英寸有160个点,每个点如果代表1像素,那么1dp就等于1像素.- 问题来了,假如屏幕上每英寸有320个像素,屏幕宽是1080像素,此时该屏幕宽是多少dp?1. 屏幕每英寸320像素,如果用160个点去覆盖这些像素,每个点可以代表2个像.

2020-07-12 23:12:02 1892

原创 (三) Jetpack LiveData添加Observer立即调用onChanged方法流程

向LiveData中添加Observer,Observer.onChanged()为何被立即调用?调用LiveData.observe(owner,observer)public abstract class LiveData<T> { @MainThread public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<? super T> observer) { .

2020-07-12 23:11:25 1577 3

原创 (二) Jetpack LiveData 源码分析

参考代码示例class MyViewModel : ViewModel() { val myLiveData: MutableLiveData<Int> by lazy { MutableLiveData<Int>().apply { // liveData 中初始赋值为0 value = 0 } }}// 使用viewModels需要依赖 implementation "an.

2020-07-05 20:23:07 165

原创 (一) Jetpack Lifecycle 源码分析

文章一 文章二 文章三 文章四 文章五 文章六 文章七依赖implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'kapt 'androidx.lifecycle:lifecycle-compiler:2.2.0'示例代码生命周期观察者class MyLifecycleObserver : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_CREA.

2020-07-05 20:22:39 231

原创 Android 8.0 启动图标适配

参考和UI设计师商量下,将之前的logo分为前景与背景两张图.之前的logo图如下:现在需要将上图分离为前景与背景图如下: 鼠标焦点放在src目录上,按下Windows:Ctrl+Shift+A 或者 Mac:command+shft+A 快捷键,输入Image Asset.打开Configure Image Asset窗口,如下:配置时候,Preview中有个圆圈表示的是范围,在这个范围内展示logo的主要内容,范围之外的到时候在手机上展示的时候会被自动裁剪掉.Previe.

2020-07-05 20:21:29 789

原创 Toutiao 项目源码阅读

项目地址一款第三方今日头条客户端, MVP + RxJava + Retrofit架构标准的MVP架构IBasePresenter层每个P层都有刷新界面以及显示网络错误需求public interface IBasePresenter { void doRefresh(); void doShowNetError();}IBaseView层每个V层都有展示状态页,设置Presenter,以及解除RxJava订阅防止内存泄漏的接口.public interface I.

2020-06-25 14:13:10 219

原创 Android 9.0刘海屏适配

参考文章Demo地址全屏状态下全屏的状态中,状态栏是不存在的,系统默认DecorView布局不会延申到刘海区域.设置全屏// 去除标题requestWindowFeature(Window.FEATURE_NO_TITLE);// WindowManager.LayoutParams.FLAG_FULLSCREEN: 让window进行全屏显示getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowMa.

2020-06-21 20:12:05 879

Git-2.14.1-64-bit.exe

只为方便大家下载,外去下载有时候还是挺麻烦的。无法改为零分下载感觉太可惜了,希望可以改为零分下载,这样可以方便更多人。

2017-09-04

SourceTreeSetup-2.1.11.0.exe

最新版本的SourceTreeSetup,去外面下载下来的。分享给大家,希望能提供给大家帮助。我想零分下载,奈何没有零分下载。

2017-09-04

gitblit-1.8.0.zip

我想无须积分下载,为什么最低还得1积分才可以下载。希望可以推出无需积分即可下载,我因为没积分还特地出去下载下来的。

2017-09-04

空空如也

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

TA关注的人

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