自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hust_twj的专栏

功不唐捐 天道酬勤

  • 博客(66)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android 开发常用技巧(持续更新...)

原创文章,欢迎转载。转载请注明来源: http://blog.csdn.net/hust_twj/article/details/612003541、防止按钮快速点击的工具类:2、XML中添加点击事件3、创建用于管理所有活动的类:4、扩大点击区域:5、给 ImageView 加遮罩(蒙层):6、定义 Layout布局 时向上转为基类 View7、同时居中和...

2017-03-10 16:54:34 749

原创 Android 10 使用 drawable xml 设置渐变背景的坑

1 背景先说明一下问题的背景。之前项目有个登录按钮,正常时其背景如下图所示,背景颜色为从左到右的渐变色。背景 xml 也很简单(没有设置 angle):<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" ...

2019-12-18 15:32:07 3954

原创 Android 使用Jetpack Lifecycle 创建可感知页面生命周期的Dialog、Banner等

问题背景:场景是这样的:activity A 中有一个弹框,弹框里面有个列表,点击弹框中列表的 item 进入 activity B,再从 activity B 返回 到 activity A 时,列表需要刷新(其实,每次弹框重新可见时都需刷新,如跳转、切后台、屏幕解锁等)。总的来说,弹框需要感知 activity A 的 onResume()生命周期方法。那么,实现这种需求,可以有如下方法:...

2019-11-22 20:32:32 2877

原创 Android消息机制Message的target==null的黑科技

Android的消息机制,就是Handler、Lopper、Message、MessageQueue之间的运作机制。本文不打算介绍它们之间千丝万缕联系,不了解的同学可以参考 之前的博客。这里面有个很细节的问题,估计很多人没有注意到,那就是 Message 的 target == null的情况,这有什么特殊含义吗?与 target 不为 null 的区别在哪里呢?这篇文章的目的就是要揭开 Mes...

2019-08-10 02:11:54 2651

原创 DataBinding错误 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/arch/lifecycle/Observer

在学习DataBinding的时候,App出现奔溃。错误日志信息如下:2019-07-23 23:30:01.033 14075-14075/com.hust_twj.zademo I/art: Rejecting re-init on previously-failed class java.lang.Class<android.databinding.ViewDataBinding$...

2019-07-24 00:05:14 5851

原创 LeakCanary 内存泄露源码分析

写在前面本文分析的 LeakCanary 的源码版本为 v1.6.3 。现在最新的版本为 v2.0-alpha-2,已经全部用 Kotlin 重写了(网络库 okhttp 同样也用 Kotlin 重写了),这也从侧面反映了 Kotlin 是大势所趋。开始在 github 的官方指南链接中,我们可以看到,LeakCanary 检测程序内存泄露的入口是:LeakCanary.install(...

2019-05-28 19:01:41 869

转载 视频码率,帧率和分辨率的联系与区别

转载自:https://blog.csdn.net/ameyume/article/details/7308504视频码率、帧率和分辨率到底哪一个影响电影的清晰度码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。也就是取样率(并不等同与采样率,采样率的单位是Hz,表示每秒采样的次数),单位时间...

2019-04-17 17:23:32 1103

原创 Mac 下配置 Gradle 环境

先说两个常用命令,分别是打开和保存配置文件:打开:open -e .bash_profile保存:source ~/.bash_profile1、查找Gradle路径右键最后面黑色图标的gradle并查看简介,可以得到其路径:因此路径为:/Applications/Android\ Studio.app/Contents/gradle/gradle-4.10.1/bin2. 配...

2019-04-13 12:42:41 454

原创 Android消息机制之 Looper 消息循环

哈哈

2019-02-28 13:05:26 1036

原创 Android消息机制之HandlerThread

概述严格来说,HandlerThread 与Android 的异步消息机制关系不是太大,但毕竟 HandlerThread 里面包含了 Handler 以及 Looper,姑且放在这里吧。其实,HandlerThread 本质是一个线程,它继承自 Thread,内部使用了 Handler 和 Looper 来进行消息的分发、循环以及处理。示例这个例子中,展示了利用 HandlerThrea...

2019-02-22 22:39:11 1852 1

原创 Android消息机制之ThreadLocal浅析

概述ThreadLocal 不是 Thread,它是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,对数据存储后,只有在指定线程中才可以获取到存储的数据,对于其他线程来说则是无法获取到数据的。日常开发中用到 ThreadLocal 的场景不多,但是在 Android 系统中的 Looper、 ActivityThread、 AMS 等源码都用到了ThreadLocal。一般来说,当...

2019-02-21 18:49:03 426

原创 Android 消息机制之 MessageQueue 消息队列

ss

2019-02-20 18:45:51 2404

原创 setLayerType 解决自定义Dialog 嵌套腾讯 WebView 后显示不出来

项目中有一个需求,客户端提供一个容器来承载 H5, 展示的内容全部交给前端。 于是,选择用 Dialog 里面嵌套 WebView 的方式。由于我们项目中使用的腾讯 X5,所以就没有用系统的 WebView了。 项目上线后,测试反馈说在某 4.4.2 的机型上,WebView 显示不出来,如下图所示(打了一下码),这就很尴尬了┭┮﹏┭┮ 可以看到,activity 的上覆盖了灰色透明...

2018-07-06 18:09:31 2288

原创 SparseLongArray 和 LongSparesArray 的区别

SparseArray 是 Android 平台特有的,引入 SparseArray 的目的是替代 HashMap 从而节省内存空间,其用法与 HashMap很类似。由 SparseArray 又可以派生出 SparseLongArray 和 LongSparesArray。要说 SparseLongArray 和 LongSparesArray 的区别,先来说一下 SparseArray。...

2018-06-01 15:06:38 4574

原创 Kotlin 不再使用 findViewById 的原理探析

在Kotlin中,一个非常好用的特性是:可以直接使用控件 ID 对控件进行操作,而不需要像 Java 中先使用 findViewById() 来找到某个控件,然后才能操作该控件。举个栗子, activity_main.xml中有个TextView,其 ID 为 tv_name 的,将布局像下面这样引入进来后: 就可以直接使用tv_name: 可以看到,利用tv_name可以直接使用...

2018-05-12 12:22:11 12802 1

原创 Android 利用 xml 文件实现 ImageView 的加载转圈动画

在请求数据返回之前,为了减少用户等待的焦虑感,经常需要有转圈加载等待的过渡效果。加载转圈动画效果如下(录屏软件有点问题,忽略上面部分,只看下面部分的转圈动画): 1、在 res/anim/ 文件夹下新建anim_circle_rotate.xml:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;set xmlns:androi...

2018-04-07 14:46:46 6920 1

转载 activity 的四种启动模式和 onNewIntent()

Android中Activity启动模式详解  在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。  Android中Activity的启动模式分为四种:Activity的四种启动模式:1. standard 默认启动模式,每...

2018-03-06 12:01:11 797

原创 三天学会 Kotlin 笔记

第一天 Kotlin 基础常量变量if表达式when表达式ranges 范围懒属性延迟加载函数字符串模板集合类型Lambda第二天 面向对象面向对象数据类枚举类空判断错误处理类型检查与转换第三天 接口泛型扩展接口interface泛型Generics扩展Kotlin 与 Swift 很像,接口、扩展、泛型写法相似,面向...

2018-02-23 15:49:05 2611

原创 Android 颜色透明度百分比转换为 十六进制

将 UI 小姐姐给的透明度百分比转换为十六进制:透明度百分比对应的十六进制:(说明:百分比计算出来会有小数,按照常规的四舍五入处理) 百分比:0% HEX: 00 百分比:1% HEX: 30 百分比:2% HEX: 50 百分比:3% HEX: 80 百分比:4% HEX: A0 百分比:5% HEX: D0 百分比:6

2018-01-15 16:50:31 3198 1

原创 使用抓包工具 Fiddler 或 Charles 修改后台接口返回数据

在客户端调试中,经常需要和后台接口打交道,有时候我们想修改后台返回的数据来验证客户端某些功能是不是完好的,抑或有时候后台返回的数据并不是我们所想要的,我们就可以使用抓包工具 Fiddler 来肆意修改后台返回的数据了。首先确定要修改哪个接口,比如我这里需要修改接口:XXX/psyapi/recommend/recForYou.do 未修改时该接口的返回结果如下图所示: lis...

2018-01-05 21:55:17 19252 9

原创 解决 Android 中 View 的 setPivotX 和 setPivotY 不生效的问题以及设置缩放中心的方法

背景是这样的:有一个需求要对下方的关注按钮实现如下动画,动画的最后要根据滑动位置对关注按钮进行缩放,缩放结束时整体大小为控件原始大小的90%,最终效果图如下所示: 如图,关注按钮向上滑动到某临界位置时,按钮需要缩小;同样,向下滑动到相同的临界位置时,需要放大。在布局文件中,关注按钮整体布局为RelativeLayout,爱心ImageView和文字TextView居中。由于动画需要根据滑动位置

2017-12-22 21:47:39 20282

原创 Android 之 LayoutParams

原创文章,欢迎转载。转载请注明来源: http://blog.csdn.net/hust_twj/article/details/78857739LayoutParams 是用 Java 代码来实现动态布局,它是 子控件 告诉 父控件 自己要如何布局时用的。LayoutParams 类简单的描述了位置,宽和高,它们可以设置成下面的这三种值: 1. 一个确定的值; 2. MAT

2017-12-21 10:15:36 545

原创 Android Studio 升级后 APP 按钮出现红叉出现的解决方法

原创文章,转载请注明来源: http://blog.csdn.net/hust_twj/article/details/78855444将 AS 从 2.3 升级到 3.0 后,编译以前的项目,在运行按钮处出现 红叉,项目也不能运行,异常如下图所示: 点击红叉处按钮,选择 Edit Configurations,最下方出现红色的提示文字:please select An...

2017-12-20 17:16:47 9282 6

原创 Android 中 EditText 的 inputType 属性及其他常用属性详解

一、xml里面调用:<---输入数字->android:inputType="number"/> 二、Activity里的调用:EditText editText=(EditText)findViewById(R.id.edittext);intinputType=InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_VARIATION_NORMAL

2017-12-19 14:55:26 8126

原创 Android 屏幕适配相关知识

1、几个概念 (1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。 (2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某手机为“5寸屏手机”,就是指对角线的尺寸,5寸×2.54厘米/寸=1

2017-12-12 11:22:30 1509

原创 Android 防止多次重复点击的三种方法

在项目中经常会遇到对按钮、自定义控件的 Item 等防止多次重复的点击的问题,下面做一个小结。方法1:使用 RxJava 的 throttleFirst()具体代码如下: /** * 防止重复点击 * * @param target 目标view * @param listener 监听器 */ public static void pr

2017-12-07 16:02:00 46701 9

原创 用 bat 批处理命令启动 Android Studio 自带模拟器

在 Android 动画中,缩放动画(scale)和旋转动画(rotate)均有 android:pivotX 和 android:pivotY 这两个属性,其值可以有多种形式,并不是很好理解。本文就用一个小 Demo 来展示这两个属性的含义,相信看了之后会有很直观的感受。android:pivotX 表示缩放/旋转起点 X 轴坐标,可以是整数值、百分数(或者小数)、百分数p 三种样式,比如 50、

2017-11-25 13:05:49 2774

原创 Android 通过 shape 实现三角形气泡效果

需要实现 UI 给出的下面两种图中带三角形气泡的效果:如果使用 .9 图,一方面会增加安装包体积,另一方面,拉伸后可能变形。将气泡分解可知,气泡由 正/倒三角形 和 圆角长方形 组成,于是可以通过组合来形成三角形气泡的效果。参考 这篇博文 绘制三角形。正三角形的 triangle_up.xml 如下:<?xml version="1.0" encoding="utf-8"?><layer-list

2017-11-22 11:08:04 27806 4

原创 图解 Android View动画中 android:pivotX 和 android:pivotY 属性的含义

在 Android 动画中,缩放动画(scale标签)和旋转动画(rotate标签)均有 android:pivotX 和 android:pivotY 这两个属性,其值可以有多种形式,并不是很好理解。本文就用一个小 Demo 来展示这两个属性的含义,相信看了之后会有很直观的感受。android:pivotX 表示缩放/旋转起点 X 轴坐标,可以是整数值、百分数(或者小数)、百分数p 三种样式...

2017-11-21 11:07:02 29908 6

原创 Android 4.3(API 18)及以下调用 RelativeLayout.mesure() 时出现 NullPointerException 异常

负责的一个新手引导的需求,友盟上报 Android 4.3(API 18) 的机型(公司APP 最低支持的安卓版本即为 4.3)中会出现 NullPointerException 的 bug。百度后知道了原因:http://blog.csdn.net/chengxu_hou/article/details/74940938。原来,只要是在 4.3 及以下的系统中调用 RelativeLayou

2017-11-15 16:36:41 2504

原创 Android 在 Fragment 中集成 React-Native(RN)步骤

1、创建 package.json 和 index.android.js 文件:package.json 代码如下,其中RN版本为 0.48.4:{ "name": "FragmentWithRN", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-nati

2017-10-17 10:57:17 7103 6

原创 自定义Drawable实现圆形和圆角Drawable

圆形package com.customview.widget;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.ColorFilter;import android.graphics.Paint;

2017-09-27 10:02:05 5983

原创 Android 自定义水平渐变进度条的几种实现

先看进度条的效果:具体实现:新建类,继承自View,在onDraw中进行绘制:import android.content.Context;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Paint;import android.graphics.Rec

2017-09-22 15:30:02 10335 3

原创 Android Studio中使用adb shell查看SharedPreferences文件

在 Android Studio 最下面的 Terminal 中,输入:adb shellrun-as com.example.android //com.example.android:对应项目包名 可以ls查看当前目录下的所有文件,然后找到 shared_prefs,cd进入该文件:cd shared_prefs再ls查看 shared_prefs 目录中所有的文件,并用cat查看具体的S

2017-08-30 09:44:18 11389 2

原创 解决ToolBar中的menu无法同时显示图标和文字的问题

在使用ToolBar时,虽然在menu.xml文件的 item中 设置了 icon 属性,但是当设置 showAsAction=“never”时,默认只显示文字的 title,而不会显示图标 icon。可以在 Activity 中重写onMenuOpened()方法,通过反射使 icon 和 title 同时可见。将如下代码复制到Activity 中即可: @Override public

2017-08-26 16:52:22 7855

原创 Android之uri、file、path相互转化

1、uri转file:file = new File(new URI(uri.toString())); file转uri:URI uri = file.toURI(); 2、uri转path:private String getPath(Uri uri) { String[] projection = {MediaStore.Video.Media.DATA};

2017-08-04 10:23:29 48987 7

原创 Android报错:Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)'

项目中遇到空指针异常java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference具体如图: 再看下面具体的错误定位在RegisterActivity.java:31:这一行是

2017-07-27 10:27:40 23686 4

原创 Casting 'findViewById(R.id.XXX)' to 'XXX' is redundant

最近写代码发现控件初始化的时候不需要类型强转了,强转后会出现Casting 'findViewById(R.id.XXX)' to 'XXX' is redundant的提示,如图所示:代码如下: private void initViews() { mUserNameEt = (EditText) findViewById(R.id.et_username); //redunda

2017-07-20 10:58:41 17496 2

原创 PC版 有道云笔记无法同步,红色感叹号,无法登陆的解决办法

打开 ie,点击右上角的工具 –> internet选项 –> 高级 –> 重置 –> 重置 –> 关闭 然后重启 有道云笔记 就可以了。

2017-07-16 09:42:01 2481

原创 Android从一个APP跳转到另一个APP的主界面或某页面,并传递数据

1. Android 从一个 APP 跳转到另一个 APP 主界面 Intent intent = new Intent(Intent.ACTION_MAIN); //前提:知道要跳转应用的包名、类名 ComponentName componentName = new ComponentName("com.example.hust_twj.sec...

2017-06-19 21:45:13 72364 21

Android模拟器启动器ADV

启动Android模拟器.bat文件。用记事本打开文件,“D:\AndroidSDK\tools\”对应SDK路径,“Nexus_5X_API_24”对应模拟器名称,对应修改即可双击运行。

2017-10-13

sqlite3文件(sqlite3:not found 解决方法)

sqlite3文件(用于解决安卓真机中sqlite3:not found的错误) http://blog.csdn.net/hust_twj/article/details/52212558

2016-08-16

Glide-3.6.1

glide的jar包,3.6.1版本,直接复制放在项目lib下即可。 用法见:http://blog.csdn.net/hust_twj/article/details/52137235

2016-08-06

MySQL必知必会PDF 高清晰中文书签版

MySQL必知必会PDF文档, 高清晰中文书签版。用过的都说好。

2016-06-14

图书管管理系统

图书管管理系统

2016-06-12

MATGPR_R3探地雷达数据处理MATLAB程序

MATGPR_R3 探地雷达数据分析、处理程序。基于MATLAB的雷达波探测处理分析,开源程序。

2016-06-12

ICP算法,实现点云配准问题

ICP算法,实现点云配准问题~方便实用~daung~~

2015-03-23

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

TA关注的人

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