自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

forLove

你后面的纠结来自于你先前的妥协。你现在正在完成的,不是你一辈子不可能完成之重,其实是你必须承受之轻。什么东西都在放弃,以后你的人生就会给你一个反弹。不想承受攀登的痛苦,就要忍受心灵的屈辱。

  • 博客(138)
  • 资源 (6)
  • 收藏
  • 关注

原创 bugly热更新9.0失败率及loader classes are found in old secondary dex问题

1.确保使用最新版本bugly、tinker参考https://bugly.qq.com/v2/downloads 去配置最新版本号,注意对应关系如下:升级 SDK 包 1.4.2 2019-09-24修复app下载后无法跳转进app安装界面集成crash sdk 3.1.0对应tinker lib 1.9.14,tinker-support版本1.2.0...

2019-10-22 11:17:32 817

原创 WindowManager addView 添加报错 异常关于type类型设置

高版本的系统中设置悬浮窗时候layoutparams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR会报错:android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@d4c6880 -- permissi...

2019-09-10 16:28:46 1455

原创 MMKV替代sp,封装的工具类(kotlin)

使用MMKV替代SharedPreferences,好处:MMKV是微信应用程序中使用的一种高效、小巧、易用的移动键值存储框架。目前在iOS、macOS、Android和Windows上都可以使用。一、在app的build.gradle中引入 implementation 'com.tencent:mmkv:1.0.19'二、在application里初始化 M...

2019-05-17 16:31:36 4720

原创 图片加载引擎框架封装

一、新建接口编写加载方式public interface IImageLoader { void load(@NonNull ImageView imageView, @NonNull Object imageUrl); void load(@NonNull ImageView imageView, @NonNull Object imageUrl,int width, int ...

2019-05-16 18:05:57 340

原创 Android 全局弹出对话框

方案一 :使用系统弹窗权限1.1 .先加权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />1.2 创建alertDialog时候设置类型为 alertDialog.getWindow().setType(WindowManager.LayoutParams.TYP...

2019-05-16 10:44:30 2830

原创 androidstudio修改包名

AndroidMainfest文件中包名进入 Androidmanifest.xml 文件,找到 package 名称,选中需要修改的部分。比如原包名为 package=“com.github.tianmu.diskcacheutil”, 如果需要修改中间的 tianmu ,那么我们就选中 tianmu文字 ,依次进行 右键 - > Refactor -> Rename然后选...

2019-05-14 10:58:33 187

原创 Android软键盘(输入法)隐藏问题

有时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘。网上常见的方法有:1、 InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);imm.toggleSoftInput(...

2019-05-10 11:21:46 934

原创 androidStudio去除无用、多余、未引用、未关联的资源的方式

我们知道,当版本经过多次迭代,项目中多多少少会存在一些无用的资源,不仅会造成我们打包的APK体积过大,还会造成项目资源的冗余,下面说说如何找到清除这些无用资源。1. 打包时去除无用的资源buildTypes { debug { versionNameSuffix "_debug" //versionName的后缀 minify...

2019-05-07 16:34:08 6814 2

原创 lint检查会报警告信息:(onTouchListener warning: onTouch should call View#performClick when a click is detecte

lint检查会报警告信息:(onTouchListener warning: onTouch should call View#performClick when a click is detected)–>onTouch在不执行touch时候应该断掉view的touch事件错误使用:findViewById(R.id.fl_container).setOnTouchListener(n...

2019-05-07 15:33:01 1028

转载 Activity中添加多个Fragment切换,透明状态栏后顶部进入状态栏问题

stackoverflow网站解决方法转载自:安久哲(翻译产生的原因,当第一个Fragment添加到Activity中的时候,Activity寻找出有fitsSystemWindows的子布局为其预留出状态栏的空间,其实就是设置一个padding,而其他Fragment添加到Activity中的时候,因为状态栏空间的适配已经被消费过一次了,Activity并不会再次去添加这个padding。...

2019-04-19 11:01:39 734

原创 记录安卓手机 刘海屏判断及获取信息

object NotchSupportUtil { //----------------------huawei fun hasNotchAtHuawei(context: Context): Boolean { var ret = false try { val classLoader = context.getClass...

2019-02-20 15:42:41 2455

原创 首次进入app,退到桌面在进入会重启启动页问题(首次装app,点击推送会重启app)

在launch活动页面的onCreate()方法的setContentView()方法前面添加if (!this.isTaskRoot()) { Intent mainIntent = getIntent(); String action = mainIntent.getAction(); if (mainIntent...

2019-01-29 10:20:05 1157

原创 activity执行onDestroy后最大化回收内存

public class ActivityReleaseMemoryUtil {private static final ActivityReleaseMemoryUtil ourInstance = new ActivityReleaseMemoryUtil();public static ActivityReleaseMemoryUtil getInstance() { retur...

2019-01-23 11:38:52 747

原创 去除recyclerview的notifydatasetchanged动画

public class RecyclerViewAnimUtil { private static final RecyclerViewAnimUtil ourInstance = new RecyclerViewAnimUtil(); public static RecyclerViewAnimUtil getInstance() { return ourIn...

2019-01-23 11:35:03 3743

原创 优化大量图片加载recyclerview列表的滑动效果

通用的几种方式viewHolder复用机制图片异步加载、缓存、压缩(使用glide等解决,最好后台反2套:缩略图和原图)根据滑动状态处理加载情况这里就主要处理:1.如果在滑动的过程中且没没被加载过,那么就不加载2.(加载)2.1在滑动的过程中且加载过2.2不在滑动中主要是监听列表滚动,把状态传入adapter中,然后设置图片bean的是否加载过状态,然后根据图片状态和滑动状态确定是否...

2019-01-23 11:32:02 4999

原创 安卓改变searchview字体的颜色等

这里要针对2种searchview进行操作,通常的 - SearchView SearchView mSearchViewInclude;int id =mSearchViewInclude.getContext().getResources().getIdentifier(&quot;android:id/search_src_text&quot;, null, null);TextView text...

2018-08-14 14:49:23 2161

原创 GreenDao遇到PRIMARY KEY must be unique (code 19)

错误如图: 这里可能有以下几个原因:1.如果主键标记时没有添加autoincrement , 那么就是传的id重复了, 传的时候获取最新id然后++id即可, 这里不讨论@Id(autoincrement = true)2.我明明标了autoincrement , 按理不用传id的, 也确实没传, 还爆not unique的话, 就是踩坑了GreenDao的主键必...

2018-08-13 10:34:47 1025

原创 新建项目运行遇到java.lang.NoSuchMethodError: No static method getFont

如图所示 这是由 com.android.support:appcompat版本不一致遇到的BUG 解决方法是: build.gradle中的 compileSdkVersion 26 buildToolsVersion "27.0.0"引入的类库 compile 'com.android.support:appcompat-v7:27.0.0'的版本要和b...

2018-08-10 14:59:36 1794

转载 transformDexArchiveWithExternalLibsDexMergerForDebug 问题的完美定位[转载]

地址:transformDexArchiveWithExternalLibsDexMergerForDebug – double Shift:全局查找,这个查看和Alt+H稍稍有些不同,这个是全局文件查找,到文件名称层面。exclude 剔除掉多余的包场景一要移除的jar包不在aar包中的classes.jar中直接把aar包里的Jar打包的时候给去掉,就像下面这这样。...

2018-08-10 13:07:52 616

原创 自定义notification点击跳到web或者指定页面,回退到main页面

重要的就是添加回退栈TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); // 添加返回栈 stackBuilder.addParentStack(WebCommonActivity.class); // 添加Intent到栈顶 stackBuilder.addNextI...

2018-07-26 14:49:05 994

原创 安卓开发web中打开原生app

**一:采用android_scheme方式可以实现webview、大部分浏览器从网页跳到app中,(百度浏览器拦截了此功能)、(微信无法跳转,会找不到网页)** 1.需要在你要打开的页面中配置过滤器(注意:如果在你app主launch页面配置,需要单独设置一个过滤器哦,不然打开app后桌面图标就消失了) 2.网页中需要在顶部悬浮框显示打开app,链接:&amp;lt;a href=&quot;...

2018-07-10 11:38:05 2332

原创 安卓开发监听键盘的弹出动作

使用起来很简单只需判断键盘高度是否为0 就可以知道键盘是否弹出了。getDecorView() 获取的是整个应用的view 包括标题栏,但是不包括状态栏,r.top就是状态栏的高度。// TODO: 2018/7/2 mEtSign.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.O...

2018-07-02 14:44:18 496 1

转载 Lambda表达式的使用实例(转载)

1、首先介绍下什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果你想把“一块代码”赋给一个Java变量,应该怎么做呢? 比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量: 在Java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了。 为了使这个赋值操作更加elegant, 我们可以...

2018-06-13 14:55:20 1647

原创 安卓WebView上传 拍照选择的图片问题

1首先 配置动态权限:理解onShowFileChooser或openFileChooser //变量 private ValueCallback&lt;Uri&gt; uploadMessage; private ValueCallback&lt;Uri[]&gt; uploadMessageAboveL;webView.setWebChromeClient(ne...

2018-05-28 14:45:21 1960

原创 bugly热更新、多渠道集成及加固问题

Bugly Android热更新使用指南–》大部分步骤按照文档即可:官方文档========================================================================= 第一步:添加插件依赖 工程根目录下“build.gradle”文件中添加: ===========================================...

2018-05-16 23:21:35 1592

原创 安卓全面屏适配方法

随着越来越多的全面屏手机的发布,尤其是千元机也上了所谓的全面屏,即18:9广义的全面屏,还有一些异形屏幕-刘海屏幕,我们也要加快适配,不然就出现拉伸变形的启动图怪像。 适配方法: 1.在应用配置文件AndroidManifest.xml中显式声明支持的最大屏幕高宽比(maximum aspect ratio)。其中 ratio_float 为高宽比: 传统屏幕:ratio_float = 1...

2018-04-08 14:54:19 9177 1

原创 安卓软键盘弹起时的各种问题

首先是要在清单文件里对目前的activity设置输入法属性activity android:name=".ui.activity.my.AdviceActivity" android:screenOrientation="portrait" android:theme="@style/otherPageStyle"

2018-01-18 15:17:21 1458

原创 ToolBar修改返回按钮图标,CollapsingToolbarLayout修改文字居中

在根节点加上这几句就可以了:xmlns:app="http://schemas.android.com/apk/res-auto"app:navigationIcon="@drawable/navigationIcon"android:navigationIcon="@drawable/navigationIcon"Menu菜单文字的颜色修改:使用ToolBar时,需要右上角的菜单按钮,菜单的文

2017-12-28 18:45:08 4268

原创 Material Design之CollapsingToolbarLayout使用

CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承至FrameLayout,给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。 使用Co

2017-12-28 18:43:01 208

原创 Android WebView 与OkhttpClient登录状态保持一致,建立SESSION会话

这里我用的是okhttputils工具https://github.com/hongyangAndroid/okhttputils 如果你用okhttpclient,获取session如下,Cookie cookie = ((AbstractHttpClient) client).getCookieStore().getCookies().get(0);

2017-11-15 13:13:30 2166

原创 Android WebView重定向问题的解决方案

当WebView在加载网页时,有时会有重定向问题,返回键回退怎么也回退不掉,怎么办?WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的链接的类型,返回一个extra的信息,如果打开链接不是一个url,或者打开的链接是JavaScript的url,他的类型是UNKNOWN_TYPE,这个url就会通过requestFocusNodeHre

2017-11-14 09:27:26 918

原创 The specified child already has a parent错误(子只能有一个父)

错误信息:java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

2017-11-09 15:15:04 6355

原创 Android全屏切换到非全屏界面的视觉问题

常见场景:客户端从闪屏页(全屏模式)进入app主页(有状态栏)时查看大图页面(全屏沉浸)返回上个页面(有状态栏)时问题:在页面切换过程中,会出现先显示页面内容,然后由于状态栏的出现,整个界面下移一个状态栏高度的问题。造成整个页面闪一下,下沉一下的感觉,非常不爽的体验。解决方法:错误方法: getWindow().setFlags(WindowManager.LayoutParams.F

2017-10-28 00:35:18 4918

转载 Android ConstraintLayout布局详解

解析ConstraintLayout的性能优势 https://mp.weixin.qq.com/s/gGR2itbY7hh9fo61SxaMQQAndroid新特性介绍,ConstraintLayout完全解析 http://blog.csdn.net/guolin_blog/article/details/53122387布局详解: http://blog.csdn.net/qq_34

2017-10-24 14:56:37 299

原创 Android textview 代码中设置粗体效果

在xml文件中使用Android:textStyle=”bold” 可以将英文设置成粗体,但是不能将中文设置成粗体。 将中文设置成粗体的方法是: 1.TextView tv = (TextView)findViewById(R.id.TextView01); TextPaint tp = tv.getPaint();tp.setFakeBoldText(true); 2.要取消加粗效

2017-09-25 21:04:09 5605

原创 Android常用内存泄漏学习

java gc概念: 在大部分虚拟机(包括Android的ART)中,Java都采用了“可达性分析”算法来进行内存回收,原理是:会有几个引用作为root节点,对于任意对象来说,如果从root层层遍历,如果找不到对于他的引用链,那么这个对象就被标记为无用,就会在gc时被销毁。 何为泄漏 内存泄漏,即部分对象虽然已经不再使用,但是因为有root持有引用,所以并没有被销毁,所占用的内存一直没有被释放

2017-09-22 10:27:43 255

转载 java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁

转载自:http://blog.csdn.net/le_le_name/article/details/52348314java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。 java内置锁是一个互斥锁,

2017-09-21 18:07:19 2919

原创 Android 本地服务通知

服务代码:public class NotificationService extends Service { // 获取消息线程 private MessageThread messageThread = null; // 点击查看 private Intent messageIntent = null; private PendingIntent messa

2017-09-20 12:24:16 2361

转载 Android Notification自定义通知样式你要知道的事

转载自:http://www.mamicode.com/info-detail-1522854.html什么是通知(Notification)通知是一个可以在应用程序正常的用户界面之外显示给用户的消息。通知发出时,它首先出现在状态栏的通知区域中,用户打开通知抽屉可查看通知详情。通知区域和通知抽屉都是用户可以随时查看的系统控制区域。作为安卓用户界面的重要组成部分,通知

2017-09-20 12:18:42 552

原创 Spinner的使用

1.最简单的Spinner在布局文件中添加Spinner控件<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Spinner

2017-09-15 11:11:11 514

谷歌RecyclingImageView加载图片示例

谷歌RecyclingImageView加载图片示例,可回收的Imageview,可以根据图片显示状态进行bitmap的回收,进而避免oom的问题

2019-03-29

安卓加载状态的布局

安卓加载状态的布局,有四种布局,放到最外层,下级布局只能有一个方向,像scrollview一样使用

2017-01-19

安卓超高仿微信上传图片

安卓超高仿微信上传图片,可定义几张图片,设置选择格式

2017-01-19

上传图片代码,

安卓上传多张图片代码

2017-01-19

安卓H5交互代码

安卓调用h5方法,h5调用安卓选择图片,js交互等

2017-01-19

gifView显示gif图片

一个可让gif图片显示的jar包,

2016-06-04

空空如也

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

TA关注的人

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