自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 [JavaWeb]一些细节注意点和代码

onsubmit事件支持所有浏览器,同时onsubmit事件支持且仅支持form标签。当在执行登录验证时,如果条件不足可能取消action事件的时候,必须保证声明onsubmit时为“return xxx”方式才能被所有浏览器支持,因此在声明onsubmit时,正确的写法是:onsubmit = “return xxx”...

2018-10-22 18:17:50 150

原创 [Android]一些细节注意点和代码

随时更新一些编写应用中遇到的细节注意点对返回键的处理,如实现长按返回键退出:@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCou

2018-03-21 21:22:43 161

原创 [Android]自定义RecyclerView中View的动画

官方有一个默认Item动画类DafaultItemAnimator,其中 DefaultItemAnimator 继承了SimpleItemAnimator 继承了 RecyclerView.ItemAnimator。

2023-06-27 16:55:42 725

原创 [Android]网络请求中关闭页面造成内存泄漏的解决办法

网络请求导致内存泄漏在执行网络请求的时候,网络不稳定或者超时的时候,获取数据时间比较长,用户可能已经退出这个界面了,这时候肯定会出现一些问题,首先因为Presenter还在请求数据,还持有Activity,就会导致内存泄漏。 public NotPassPresenter(NotPassActivity activity) { mActivity = activity; mRepository = new ExpressRepository(); }

2020-07-30 16:14:09 1176

原创 [Java]String所在的内存位置和长度

Java运行时内存分五部分:线程共享:堆内存、方法区(包括常量池)线程私有:栈内存(虚拟机栈)、本地方法栈、程序计数器String不是基本数据类型,那么一个string的内存位置是什么呢?一共有两种情况:String直接赋值:String s = “haha”;s的引用存在栈内存中,引用指向的haha存在方法区的常量池中(先判断常量池中是否有一个haha,存在则直接指向,不存在则...

2020-01-09 19:33:38 281

转载 [Android]inflate解析

常用inflate方法: inflate(int resource, ViewGroup root, boolean attachToRoot)第一个参数xml布局资源索引,第二个参数指的是加载布局的rootOptional view to be the parent of the generated hierarchy (if attachToRoot is true), or else...

2019-05-09 21:53:36 628

原创 [Android]自定义ReplacementSpan实现带背景色的圆角SPAN

某些情况下会使用到SpannableStringBuilder构建特殊样式的字符串比如带有标签的标题:使用自定义的ReplacementSpan,实现:/** * 〈带背景色的圆角span〉 */public class RadiusBgSpan extends ReplacementSpan { private int mSize; private int mBg...

2019-01-30 14:48:40 3693 1

转载 [Android]ImageSpan与TextView同一行图片居中

在开发中常常会遇到标签(图片)+文字的需求,实现方式一般采用SpannableString的方式来实现。 这时候会遇到图片ImageSpan没有办法居中的问题。在解决这个问题之前,先学习字体属性Paint.FontMetrics。通过上面的示意图,再看下FontMetrics 类: public static class FontMetrics { /** * The m...

2019-01-30 11:23:14 628

转载 Mac系统 安装 JDK 并配置环境

第一步 : 下载 mac 版的 JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html// 同意协议并点击下载 第二步 : 下载完成后, 按提示完成安装.打开Finder,可以在下图所示的路径中找到安装好的jdk: 其中Co...

2018-11-15 18:46:08 678

原创 [Android]屏幕适配相关

记录屏幕适配相关注意点设置字体,使app字体不受系统设置字体大小影响:Resources res = getResources();Configuration config = new Configuration();config.setToDefaults();res.updateConfiguration(config, res.getDisplayMetrics());...

2018-09-30 12:01:28 94

转载 [Andriod]监听键盘,控制布局向上的缩进

<div class="article-title-box"> <span class="article-type type-1 float-left"&am

2018-06-13 20:21:34 176

转载 [Android]Maven 仓库的使用与私有仓库搭建

本文为“拥抱Android Studio”系列第四篇。作者何畅彬,现任BugTags技术总监,关注移动SDK研发、后端服务设计与实现,个人博客: http://kvh.io/。 使用 Android Studio,必然要与 maven 仓库频繁打交道,在创造和分享自己打造的 Android library 的时候,maven 仓库的知识更是必不可少。本章将为开发者系统梳理这...

2018-05-18 11:58:28 1558

原创 [Android]自由添加Head和Foot对RecyclerView的Adapter

该Adapter能达到给RecyclerView自由添加Head和View的目的,且添加的Head和Foot不受LayouManager干扰,代码如下:public class BaseHeaderAndFooterAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> { priva...

2018-05-08 10:49:18 325

原创 [Android]RecyclerViewAdapter的封装

现在项目中基本都使用RecyclerView了,因此对RecyclerView对Adapter的封装就显得很有必要。 具体的实现逻辑:将数据集合中对Bean规定为泛型通过抽象方法在子类中传入布局动态初初始化ViewHolder通过抽象方法将Bean和ViewHolder绑定具体代码如下:public abstract class BaseRecyclerAdapter&l...

2018-05-08 10:41:53 1050

原创 [Android]关于TextView颜色选择器到正确使用——动态添加带有ICON的TextView到TabLayout中

做小项目到时候需要自建TabLayout并且自定义TabItem,折腾了一下午,实现了功能,遇到两个坑予以记录:1.添加自定义View到TabLayout中TabLayout自带到TabItem拓展性太差,图片和文字到位置不能自由定制,导致显示效果不佳,因此最好自己动态添加Tab。本次是添加了一个带有Icon的TextView到TabLayout中,具体实现代码如下:for (in...

2018-05-04 11:07:53 467

转载 [Java]public <T> void method,此地泛型的意思

今天项目中遇到这样一个方法: public &lt;T&gt; void method(T var) 不太明白什么意思,后来搜索下几篇文章,自己总结一下,和大家分享。 先看例子:static void fromArrayToCollection(Object[] a, Collection&lt;?&gt; c) { for (Object o : a) { ...

2018-04-03 17:43:20 1670 1

原创 [Android]使用SharedPreferences存取对象

通常情况下SharedPreferences只用于存取基础数据类型或者String类型的键值对,但某些情况下需要存取一些复类型的对象,如集合对象,此时可以通过往SharedPreferences中存取对象的方式使用。存时,把对象写入ByteArrayOutputStream中(外套ObjectOutputStream),然后将byte数组通过Base64编码为String结构,作为值存入。取时...

2018-03-22 09:53:50 336

转载 [Java]Java中的transient关键字

关键字介绍一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。但是有种情况是有些属性是不需要序列号的,所以就用到这个关键字。只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化...

2018-02-02 10:32:58 96

原创 [Android]自定义控件主动测量自己尺寸的方法

自定义控件有时需要主动测量自己的尺寸。如ListView、RecyclerView等列表控件在ScrollView或ExpandableListView中需要保持自己的尺寸,此时比较快捷的办法是写一个自定义的控件类继承与该被包裹的控件类,然后重写其onMeason方法,让其返回默认大小而不是适应的宽高,代码如下:@Overrideprotected void onMeasure(int

2018-01-15 20:16:02 1333

原创 [Android]配置Gradle的productFlavors构建项目用于多渠道打包或多环境运行

productFlavors对象可以用来分别定义产品不同的特性,使用它可以用一套代码创建不同的项目。productFlavors的使用有以下几种。为产品设置不同的applicationId而编译出不同包名的APK,在app(module)目录下的build.gradle文件中加入productFlavors结构,代码如下:productFlavors{ productA{

2017-11-29 17:28:31 1922

原创 [Android]透明状态栏

实现透明状态栏,使状态栏和标题栏融为一体,是现在应用的主流要求。下面就是实现这个功能的代码:super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorVie

2017-11-22 14:24:20 148

原创 [Android]通过ViewDragHelper实现滑动关闭Activity

首先来看ViewDragHelper的构造方法:create(ViewGroup forParent, float sensitivity, ViewDragHelper.Callback cb)需要三个参数:第一个 ViewGroup 是承载可以被拖动的控件的第二个是灵敏度第三个是拖动回调。我们需要实现拖动效果,主要就是依靠重写回调方法实现ViewDragHelper.Callback 中

2017-11-09 21:35:01 1646 2

原创 [Android]Fragment进行show和hide时候刷新数据

项目用到Fragment管理不同的列表信息,在切换Fragment的时候需要重新刷新数据,然而使用show()和hide()切换Fragment的时候,Fragment并不会执行onResume()和onPause()的生命周期方法,而是执行了onHiddenChanged()方法。onHideentChanged方法的源码:@Overridepublic void onHiddenChange

2017-11-04 10:16:04 3226

转载 [Java]Javassist基本用法

Javassist是一个能够操作字节码框架,在学习的过程中存在了一些问题,用博客的方式记录下来,希望对大家有所帮助。一、实例功能    学习的实例来自于 IBM developer   主要功能实现计算一个方式具体的执行时间. 二、代码实例  [java] view plain copypack

2017-09-15 18:16:01 396 1

原创 [Java]一个简单的对象池

当程序中经常需要创建对象,而对象本身又可以被重复利用的时候。可以使用创建一个对象池的方式,保存一定数量的对象,避免反复创建对象。下面就是一个简单的对象池的代码示例,其中实现了简单对象池和线程安全对象池。public final class Pools { /** * Interface for managing a pool of objects. * * @pa

2017-08-19 17:08:52 583

转载 [Android]查看代码混淆后的日志

APP混淆已经是APP发布时的标配技术了,但是我们经常需要去看用户使用APP时的崩溃日志,这个时候,看到的日志确是被混淆了,比如a.b.c.c()!就要狂了。所以,Google当然会为我们考虑到这种情况。下面对具体的使用进行说明。代码混淆生成apk之后,项目下面会多出来一个build\outputs\mapping\release文件夹,下面分别解释release文件夹中四个文件的作用。dump.t

2017-07-21 10:26:30 2214

转载 [Android]Splash界面解决启动白屏/黑屏问题

我相信很多Android开发的同学都遇到过这样的需求:实现一个Splash界面,界面上有应用相关的背景图片和一个开始按钮 点击按钮之后进入主页,以后用户再打开应用就不显示这个Splash界面了也相信很多同学都遇到了这样的困惑: 第二次进入应用,尽管你在Splash界面已经直接跳转到首页了,但是还是有个白屏或者黑屏或者带ActionBar的白屏闪现一下如果你也遇到这个问题,那就继续阅读这篇文章,我

2017-06-20 21:23:25 669

原创 [Android]一个简单的对象池

由于需要经常性创建某类对象,所以制作了一个对象池:public final class Pools { /** * Interface for managing a pool of objects. * * @param <T> The pooled type. */ public static interface Pool<T> {

2017-06-08 14:16:29 365

原创 [Android]依赖了包含aar包的库后出现Failed to resolve库aar包问题的解决办法

在Android Studio中创建一个module或者导入一个module的时候,如果这个module中依赖了aar库,当build工程的时候,会出现failed to resolve这个错误这时候,只要在app的build.gradle中加入下面代码就可以完美解决了:[java] view plain copyrepositori

2017-05-25 20:13:09 8048 1

转载 [Android]Collections.unmodifiableList方法的使用与场景

在公司接触到Collections.unmodifiableList(Listpackage com.readonlylist;import Java.util.ArrayList;public class Student{ private String name; private ArrayList<String> courses; public Student(String

2017-04-19 15:30:41 368

原创 [Android]继承上下文类和利用meta-data实现默认对象

继承上下文类 前端时间重构代码需要设置一个类为上下文,在此记录:public class MyContext extends ContextWrapper { public XContextWrapper(Context base) { super(base); } public void attach(Context base) { attac

2017-02-27 16:29:42 393

原创 [.bat]一个简单的批处理文件

@echo offset ReleaseDir=releaseif exist %ReleaseDir% rmdir /s/q %ReleaseDir%md releasemd release\aarmd release\jarmd release\jnilibsmd release\libsset ReleaseAARDir=%~dp0release\aarset Relea...

2017-02-08 13:33:41 1293

原创 [Android]Android Studio导入aar包

Android Studio导入aar包有两种方式,分别为本地加载以及网络加载,由于网络加载涉及到发布到mavenCentral托管的问题这里不做讨论;另外eclipse很久没有使用了也不做讨论;在这里给大家说一种本地加载的方式,简单快捷。这里演示的aar文件为: ”genius.aar“第一步:拷贝到:libs目录第二步:Module 的 build.gradle 配置文件中更改为reposito

2017-01-10 15:28:15 2234

原创 [Android]Android Studio上的NDK开发

Android Studio上的NDK开发刚刚学了Android的NDK开发,但是教程是基于Eclipse的。为了赶上节奏,马不停蹄的在Android Studio上做实验,鼓捣了半天,也踩了不少坑,这里做个记录!:基本流程给app的gradle和本地local的配置文档配置使用NDK需要的配置在app的build.gradle中的defaultConfig里加入NDK生成.so文件需要的字段

2016-12-29 13:29:59 324

转载 [Android]从BroadcastReceiver到Activity的通信

此实例实现功能为在不打开新的Activity的前提下,从BroadcastReceiver传递数据给Activity实现很简单,但使用到了自定义广播,以免遗忘在此记录:代码以通过广播读取短信再传递给前台Activity进行显示为例AndroidManifest文件 <uses-permission android:name="android.permission.RECEIVE_SMS"

2016-12-02 16:40:20 2132

转载 [Android]通过广播读取短信

此实例实现功能为通过接收广播读取短信:代码AndriodMainfest文件 申明权限 <uses-permission android:name="android.permission.RECEIVE_SMS" > </uses-permission>配置广播 <receiver android:name="activity.SMSBroadcastReceive

2016-12-01 10:58:26 2138 3

空空如也

空空如也

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

TA关注的人

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