
Android
JasonAndChen
乐观自信
展开
-
Android Studio 一直 Loading devices
Android Studio 一直 Loading devices, 不能加载设备原创 2025-03-07 18:03:17 · 455 阅读 · 0 评论 -
Android 权限申请框架介绍
step1: 在app工程配置如下代码implementation 'pub.devrel:easypermissions:2.0.0'step2:在Activity 中 implements EasyPermissions.PermissionCallbacks 中重写下面两个方法@Overridepublic void onPermissionsGranted(int requestCode, List<String> perms) { }@Overrid.原创 2020-09-03 18:16:17 · 1648 阅读 · 0 评论 -
RecycleView滚动到中间位置
方法一:fun dwToPostion(position: Int) { val smoothScroller: RecyclerView.SmoothScroller = CenterSmoothScroller(activity) smoothScroller.targetPosition = position linearLayoutManager?.startSmoothScroll(smoothScroller)} class CenterSmoothS.原创 2020-08-28 18:09:48 · 600 阅读 · 0 评论 -
Android 扩展方法,打开与关闭键盘
package com.trading.sdk.extimport android.app.Activityimport android.content.Contextimport android.view.inputmethod.InputMethodManager/** * * close input method */fun Any.closeInputMethod(context: Context) { val inputMethodManager = .原创 2020-08-28 18:04:43 · 242 阅读 · 0 评论 -
Android 打开软件盘监听,方便对页面做处理
package com.trading.sdk.helper;import android.app.Activity;import android.graphics.Rect;import android.util.Log;import android.view.View;import android.view.ViewTreeObserver;import com.trading.base.utils.DeviceUtil;import java.util.LinkedList;i.原创 2020-08-28 18:00:14 · 209 阅读 · 0 评论 -
ViewPager动态设置是否能左右滑动,重写scrollTo方法即可
package com.trading.sdk.views;import android.content.Context;import android.util.AttributeSet;import androidx.viewpager.widget.ViewPager;public class NoSlidingViewPager extends ViewPager { private boolean slide = true; // false 禁止ViewPager左右.原创 2020-08-28 17:57:49 · 488 阅读 · 1 评论 -
Android 处理事件冲突 通过requestDisallowInterceptTouchEvent方法来决定谁处理
/** * 记录起始坐标 */float startX;float startY;// 记录偏移量,然后判断滑动方向int dX = (int) (event.getX() - startX);int dY = (int) (event.getY() - startY);if (Math.abs(dX) > Math.abs(dY)) { getParent().requestDisallowInterceptTouchEvent(true); //左右...原创 2020-08-13 14:14:32 · 513 阅读 · 0 评论 -
为什么官方推荐Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数呢?
为什么官方推荐Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数呢?看上去这两种方式没有什么本质的区别,但是通过构造方法传递参数的方式是有隐患的。根据Android文档说明,当一个Fragment重新创建的时候,系统会再次调用Fragment中的默认构造函数,注意是默认构造函数。即,当你创建了一个带有参数的Fragment的之后,一旦由于什么原因(例如横竖屏切换)导致你的Fragment重新创建。那么,很遗憾,你之前传递的参数都原创 2020-08-12 17:07:59 · 1296 阅读 · 0 评论 -
如何在子Module中引入aar文件到主工程
step1: 在build.gradle的dependencies结点下引入,这与正常的引入aar文件没什么两样implementation(name: 'BaseModule', ext: 'aar')implementation(name: 'KLineChartLib', ext: 'aar')step2:在build.gradle的android结点下引入repositories { flatDir { dirs 'libs', '../SwapMod...原创 2020-08-11 17:42:29 · 1119 阅读 · 0 评论 -
Android 10适配注意的问题
外部存储当target=29时,谷歌临时允许使用老版本的权限来解决储存分区问题方法一:<application android:name=".BaseApplication" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:requestLegacyExternalStorage="true" />方法二:为了使用户更改的管理 Sdcar.原创 2020-08-07 19:01:04 · 292 阅读 · 0 评论 -
用Kotlin 扩展Gson解析数据 类名GsonEx.kt
package com.trading.base.extimport com.google.gson.Gsonimport com.google.gson.GsonBuilderimport com.google.gson.JsonParserimport org.json.JSONArray/** * 转化为对象 */fun <T> jsonToObj(json: String, clazz: Class<T>): T { val gson = Gs.原创 2020-08-07 11:00:15 · 581 阅读 · 0 评论 -
Android 中引入了gson,混淆后出现解析不出model
配置文件中引入了//gsonimplementation 'com.google.code.gson:gson:2.8.6'然后会出现解析不出,数据,这时排查网络框架或是解析,经查发现是是用了gson ,不要混淆用的数据类 bean原创 2020-08-07 10:56:52 · 678 阅读 · 0 评论 -
android studio 忽略git提交
.gradlelocal.propertiesgradle.properties.DS_Storebuild/captures/# built application files*.apk*.ap_# files for the dex VM*.dex# Java class files*.class# generated filesbin/gen/# Local configuration file (sdk path, etc)# Eclipse projec原创 2020-07-16 10:47:23 · 379 阅读 · 0 评论 -
Android 图标规格
原创 2020-06-21 11:27:18 · 218 阅读 · 0 评论 -
Android webview 加载H5时,隐藏掉不需要的元素
h5加载完成时回调override fun onPageFinished(view: WebView?, url: String?) { super.onPageFinished(view, url) view?.loadUrl("javascript:" + loadJs() + ";")}fun loadJs(): String { var js = "var newscript = document.createElement(\"script\");" j.原创 2020-05-30 13:41:29 · 1426 阅读 · 0 评论 -
Android反编译 for Mac
反编译前需要准备的工具apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。 dex2jar:将反编译后的classes.dex文件转化为.jar文件。 jd-gui:用于将.jar文件转换成java代码step1: 去下载apktool, 或是通过命令 open terminal : 然后输入localhost:~ felix$ brew install apktool 然后回车,等就行了然后输入apkto...原创 2020-05-26 16:13:32 · 562 阅读 · 0 评论 -
android Toolbar
1、引入依赖库dependencies { compile 'com.gyf.barlibrary:barlibrary:2.3.0'}2、init ImmersionBar.with(this).init(); //初始化,默认透明状态栏和黑色导航栏3、可以改变顶部和底部状态栏颜色ImmersionBar.with(this) .transparentStatusBar() .statusBarDarkFont(true, 1f)...原创 2020-05-24 14:40:38 · 314 阅读 · 0 评论 -
Switch 改变样式
android 布局引用switch方法<Switch android:id="@+id/add_switch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_ce...原创 2020-05-24 14:26:28 · 1011 阅读 · 0 评论 -
PopupWindow 添加遮罩层
为了实现底部输入密码框,同时添加遮罩效果/** * 底部能用输入密码框 * by Felix */public class InputPasswordDialog { private static PopupWindow popupWindow = null; public interface ClickItemCallback { public void onItemClick(String text); } public void sho.原创 2020-05-16 16:45:14 · 1127 阅读 · 0 评论 -
Android颜色加透明度百分比
100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 2610% — 1A5% — 0D0% — 00...原创 2020-04-16 16:50:05 · 613 阅读 · 0 评论 -
CoordinatorLayout+TabLayout + AppBarLayout + CollapsingToolbarLayout + ViewPager 实现悬停效果
当APP 运行起来这是效果,请看上面 .现在问题来了,我想让TabLayout悬停在顶部,同时让标题栏消失fragment_home.xml布局如下<?xml version="1.0" encoding="utf-8"?><androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="ht...原创 2020-04-15 21:17:50 · 1343 阅读 · 0 评论 -
androidx.core.widget.NestedScrollView 内容显示不全
先看效果吧,在NestedScrollView控件里放布局,显示不全怎么办?<?xml version="1.0" encoding="utf-8"?><androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:a...原创 2020-04-15 20:48:56 · 3805 阅读 · 1 评论 -
Android org.apache.http.legacy
若出现以上错误,不要慌,在APP 主工程的build.gradle里做如下配置useLibrary 'org.apache.http.legacy'同时在主工程的清单里面做如下配置<uses-library android:name="org.apache.http.legacy" android:required="false" />...原创 2020-04-13 16:59:54 · 5425 阅读 · 3 评论 -
Android 实现国际化
目前由于项目需要 我只配置了中文与英文 ,如果还想配置其它,自行配置即可,now,我们来看看实现步骤这里我们不得不说一个重要的方法attachBaseContext(),请自行查阅,我就不介绍了 ,重点介绍实现国际化思路: 一般我们做项目都会用到BaseActivity ,这里面实现如下方法@Overrideprotected void attachBaseContex...原创 2020-03-31 14:14:58 · 8620 阅读 · 4 评论 -
android PickerView自定义日期实现
上面是我们要实现的效果,很多底部弹出来的列表都可以满足,下面我们就开始讲解吧 .最终用法:var builder1= ListPickerView .Builder(activity, ListPickerView.OnItemSelectListener { item, v -> showLog(""+ item) }) .setCa...原创 2020-02-27 14:06:47 · 1087 阅读 · 2 评论 -
Android 自定义实现折线图
这主实现的是拆线图,请先看效果step1:定义BrokeLineView类,并实现package com.bbx.bmtc.views;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Pain...原创 2020-02-26 12:42:18 · 1589 阅读 · 0 评论 -
Android 动态获取文本宽度
package com.bbx.bmtc.helperimport android.content.Contextimport android.text.Layoutimport android.util.Pairimport android.widget.TextViewimport com.bbx.bmtc.ext.isEmptyobject ComputeHelper {...原创 2020-02-25 19:54:56 · 640 阅读 · 0 评论 -
Android 页面指示器 PageIndicatorView
先什么也不说 直接看效果吧 如图现在开始定义流程1、定义一个布局activity_page_indicator.xml<?xml version="1.0" encoding="utf-8"?><RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" androi...原创 2020-02-22 17:17:26 · 1068 阅读 · 0 评论 -
android ProgressBar 设置背影色与进度色
1、在布局文件中有ProgressBar<ProgressBar android:id="@+id/pb_volume" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="match_par...原创 2020-02-19 16:14:41 · 270 阅读 · 0 评论 -
Android 进程保活
1、锁屏时开一个1像素的Activity,骗过系统,在开屏的时候关掉2、加入白名单中一般用户量比较大3、弄一个系统通知4、相互唤醒可以与别人合作如果应用想保活,要是QQ,微信愿意救你也行,有多少手机上没有QQ,微信呢?或者像友盟,信鸽这种推送SDK,也存在唤醒app的功能5、维持一个心跳检测是否还存活6 、多进程...原创 2019-11-26 11:43:46 · 161 阅读 · 0 评论 -
Android架构师必备
原创 2019-11-26 11:30:39 · 125 阅读 · 0 评论 -
Android 架构设计图
分析Andrioid Framework层源码,讲解Binder机制原理,Android系统中按键事件和触摸事件的传递机制,更深入层次的理解Context,熟悉Android窗口的创建过程你需要补一些C++的基础,需要补计算机系统的基础,甚至需要理解设计模式FramentWork Layer need to know,What you need know now?Act...原创 2019-11-21 14:38:29 · 419 阅读 · 0 评论 -
录音语音识别系统功能图
纳米录音、语音系统功能介绍:一、 此系统主要收集催收员与用户的通话记录、收发短信、彩信等信息(数据采集工作),主要用来帮助纳米做数据建模、风险控制、提高决策效率的系统,主要功能包括:1、电话录音(mp3呈现)2、电话记录收集3、短信收集4、彩信收集5、将mp3转化为文本二、实现目的:1、记录催收员的工作(业绩来源于此)2、规范催收员的行为3、让逾期用户...原创 2019-11-21 14:31:38 · 1554 阅读 · 0 评论 -
Handler消息机制
http://ddrv.cn/a/296399Looper.prepare()其实里面是new 了一个Looper,而new Looper里面是创建了一个消息队列Looper.loop() 消息循环记住:一个线程对应一个Looper对象;然后在创建Looper的时候创建了一个MessagQueue消息队列管理消息的入栈和出栈,也是一个线程对应一个MessagQueue;执...原创 2019-11-21 14:11:59 · 165 阅读 · 0 评论 -
自定义View流程
自定义ViewonMeasure 主要是先测量后 取得宽高模式与尺寸,然后判断模式,并设置setMeasuredDimensiononLayout 定位布局 计算相关参数,同时你要设置位置onDraw 开始画图 根据onLayout里面初始化的参数,注意左上角为原点坐标 Canvas PaintonMeasure 时要判断模式:1、MeasureSpec.UNSPECIFIED...原创 2019-08-20 15:57:10 · 88 阅读 · 0 评论 -
事件分发机制
事件分发机制 activity->viewgroup->view一般情况下,事件列都是从用户按下(ACTION_DOWN)的那一刻产生的,不得不提到,三个非常重要的与事件相关的方法。dispatchTouchEvent() onTouchEvent() onInterceptTouchEvent()Activity 的事件分发机制activity->wind...原创 2019-08-20 16:02:27 · 392 阅读 · 0 评论 -
Failed to resolve: com.github.yidun:captcha-android-demo:2.4.3.1
在项目allprojects目录下添加maven { url "https://jitpack.io" }再同步就解决了allprojects { repositories { maven { url "https://jitpack.io" } }}原创 2019-09-05 16:41:06 · 385 阅读 · 0 评论 -
Android 指纹识别注意升级问题
app配置信息如下 androidx依赖项目如下:当配置信息升级到androidx时就会报错,报错如下 :这时需要在主工程的build.xml里添加classpath 'com.novoda:bintray-release:0.9' 具体看下面配置然后在依赖库里添加build.xml一级目录添加节点然后编译apply plugin: ...原创 2019-10-09 19:31:15 · 533 阅读 · 0 评论 -
Android跨进程通讯
Android多进程通讯方式主要有以下几种AIDL功能较强大支持进程间一对多的实时并发通信,并且可以实现RPC(远程过程调用)MessengerBundle四大组件的进程间通信方式目前只能传输Bundle支持的数据类型 ,比如String 、 IntContentProvider+sqlite3太重量级 一般用SharedPreferences来替代Broadcas...原创 2019-10-09 19:43:23 · 288 阅读 · 0 评论 -
A->B 然后又从B->A 这个过程生命周期变化?
A 页面起来 A--->onCreate A--->onStart A--->onResumeA ->B A---> onPause B---> onCreate B--->onStart B--->onResume A--->onStopB---> A B --...原创 2019-08-20 15:50:06 · 234 阅读 · 0 评论