自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android super.img 镜像解包

简介在 Android 10 及更高版本上支持了"动态分区",所以 ROM 包中看不到了传统的 system.img 等镜像。支持的动态分区包括:SystemVendorProductSystem ExtODM所以在 super.img 都可能包括以上分区的镜像文件。具体信息可以查看官方文档 动态分区具体解包步骤super.img 的解包必须两个工具 simg2img 和 lpunpack。其中 simg2img 可以在线安装,执行命令后可以按照提示自行安装即可。lpunpack 需

2021-08-07 17:15:21 10268 6

原创 Android 自定义 Lint 调试

1. 点击 Edit Configurations2. 点击 + 号 Add New Configuration 按钮3. 选择 Remote4. 没有特别情况,可以直接采用默认模板,填写配置名称即可,这里以 LintDebug 举例5. 选择创建的 Remote 的配置, LintDebug6. 在编写好的 Lint 检查规则里,打好需要调式的断点。在 Teminal 窗口下执行以下命令./gradlew --no-daemon -Dorg.gradle.debug=true :ap

2021-01-21 17:03:51 588 2

原创 Ubuntu 回收站目录

Ubuntu 回收站目录~/.local/share/Trash/files/对于一些无法在桌面清空的文件,可以进入该目录采用 sudo rm 命令删除

2021-01-19 14:24:02 4292

原创 在 Andorid 中为什么要避免「内存抖动」?

内存抖动是指内存频繁的分配和回收,占用内存忽高忽低,内存占用图形上呈现锯齿状在 Android 开发过程中,你一定听说过「内存抖动」这个词,别人肯定也告诫过你要避免内存抖动,但是为什么呢?但是其实初步想,为什么要避免内存抖动呢?频繁创建对象,被 Java 虚拟机的回收机制自动回收了,这不是挺好的吗?开发者为什么还需要关心这个问题呢?下面讲一下原因1.频繁 GC 会导致卡顿在传统的 G...

2020-05-08 10:29:05 330

原创 Android 版本速查表

平台版本Api 级别VERSION_CODEAndroid 8.127O_MR1Android 8.026OAndroid 7.024NAndroid 6.023MAndroid 5.122LOLLIPOP_MR1Android 5.021LOLLIPOPAndroid 4.4W20KITKAT_WATCH...

2019-08-09 14:26:35 294

原创 Glide 如何实现正确加载图片而没有错位

我们在平时的项目使用下面的代码 GlideApp .with(context) .load(url) .into(imageView);当我们在常见的列表界面中(如 recycleview 实现的列表),使用上面的代码,在我们快速滑动中,glide 是如何实现正确加载图片,而没有导致图片内容...

2018-08-26 18:41:34 2258

原创 android:excludeFromRecents 属性需要注意的小地方

在 Android 系统中,如果我们不想某个 Activity 出现在 “Recent screes” 中,可以设置属性 android:excludeFromRecents 为 true。其中有些需要注意到的地方说明下。android:excludeFromRecents 属性并不会仅仅影响被设置的 Activity。由此该 Activity 启动的后续同属一个 “Task” 的一系列 ...

2018-06-12 22:39:59 2302

原创 安卓属性动画小技巧

首先,最重要的一点也是务必要记住的一点 view 的 getX() getY()方法取得的是以父 view 为参考系的相对坐标很多人第一次看到 view 的 getX getY 方法以为是取得相对于整个屏幕上的坐标,很容易在写一些动画效果出现不是预期的效果。以 getX 方法举例方法的定义如下: /** *返回的是该 view 的视觉上的 x 轴坐标值...

2018-04-15 14:28:09 272

原创 git 恢复被删除的文件

刚接触 git 的时候,当碰到之前删除某个文件(比如图片)后面开发又需要恢复的时候,会采取非常笨的方法。从某一个文件存在的 commit 切换出一个新的分支,再将需要的某个文件拷贝出来。像是图片类的文件有时候会直接叫 UI 设计师再发一份。这种需要恢复文件情况不多时(好像确实也不是太多,目前本人遇到这种情况还是极少的),其实这种操作还好。但情况多的时候,还是挺浪费时间的。 git 其实本身恢复被删除

2017-12-24 14:03:42 13930 1

原创 Android 中 getString() 方法的小知识点

最近经常看到为了获取类似如下的字符串hello %s采用下面的代码String formatStr = String.format(getString(R.string.test), "Android");其实 Android 中 Activity ,Fragment 等中其实已经给我封装了更简便的方法,我们可以直接采用如下方法String

2017-10-21 21:07:21 7793 1

原创 adb 常用命令

这个命令会打印出一些概览信息,如获得的权限。

2017-09-18 14:11:00 962

原创 关于通知的一些小问题

最近做下载,有一个通知显示进度的需求。这个过程中碰到一些问题,这里总结下,方便大家排查。1.通知中下载完成后,进度条没有正确关闭掉。我们先看官网教程中显示通知的代码:int id = 1;...mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);mBuilde

2017-08-06 12:52:29 489

原创 一个简单的图片选择器

ImagePicker 一个简单的图片选择器。为了配合头像选择,写了一个简单的功能。自己写图片选择器的目的也是不言而喻的,使界面风格保持整体的一致性。虽然可以用系统的相册和裁剪功能,但各种系统的界面风格不统一,和自身 app 界面也很难统一。所以使用自己的图片选择界面还是很有必要的。第三方的图片选择器有很多,而且很强大。但是有时候我们并不需要这么多功能,写一个自己的所需的最小功能一定程度上可以缩减整

2017-06-16 09:13:05 387

原创 androidstudio 自动生成一些模板注释

之前在 Android代码规范(自用) 提到给新建的类注明作者和创建时间等简要信息,这里提下针对不同场景下一些简便的生成方法。普通类文件在 andoridstudio 设置目录下 File and Coede Templates 选项作如上配置,新建一般类文件后,便在顶部有自动的模板注释。Activity以 Activity 为例,这个需要修改 Activity 的模板文件,在 androidstu

2017-05-04 17:04:44 4515 2

原创 android 圆角图片的实现和封装

最近被人问起圆角图片的实现,花了一点时间鼓捣了下,下面简单分享下。完整例子: RoundImage先上效果图全部圆角: 顶部为圆角: 底部为圆角: 只有左上角为圆角: 下面为主要源码,实现了 Picasso 中的 Transformation 接口。public class RoundCornersTransformation implements Transformation { p

2017-04-18 11:57:29 1894

原创 利用 CollapsingToolbarLayout 完成联动的动画效果

最近项目中需要实现个动画效果,研究了下这里做下简单的分享.效果图如下:最初的想法是自己去利用 Android 的嵌套滚动机制,去实现上面的嵌套滚动效果.但最后为了开发效率直接利用了 CollapsingToolbarLayout 和 CoordinatorLayout 的效果. 实现效果的原理十分简单,监听 CollapsingToolbarLayout 收缩和扩展的距离,换算成你想要的一个范

2017-04-07 16:27:00 6413 4

原创 结合 MultiType 实现加载更多

MultiType 是一个分发管理类,帮助我们轻松实现复杂布局.建议大家阅读源码,作者的思路并不复杂但很巧妙.下面附上主要源码:public class LoadMoreDelegate { private Items mItems; private MultiTypeAdapter mMultiTypeAdapter; private OnLoadMoreListener mO

2017-03-31 16:21:02 1425 1

原创 图片库的封装

关于图片库的封装相关的文章早已经看到过.图片库的封装可以使得调用者不知道,底层的具体实现,即使我们换了图片加载库,上层处的代码感知不到无需修改.如果不做封装的话,像下面这样直接使用的话: Glide.with(iv.getContext()) .load(carSeries.getPicurl()) .placeholder(R.dra

2017-03-29 09:37:34 397

原创 Material Design Button 的 disable 效果

针对 Material Design Button 的 disable 效果这里提一下. 我们经常有这样的需要,在按钮在 disable 状态下,背景色会呈现深色提醒用户不可点击. 但是目前,如果你像下面这样设置, disable 状态下背景色是没有什么变化的. <style name="BlueButton"> <item name="android:layout_h

2017-03-05 21:08:57 1409

原创 一个可以在界面顶部展现的自定义 View

这个源码十分简单,没啥可说的.只有一点提一下,看到有些控件达到背景色的效果,是动态填加一个带背景色父布局实现的.我这里是在画布上动态绘制的.GitHub 地址: TranslationView源码如下:public class TranslationView extends FrameLayout { private static final String TAG = "Translation

2017-02-14 17:47:48 417

原创 Android 代码规范(自用)

java成员类基础类型优先排在上方java相关类排在基础类型下方android相关类排在java相关类下方整体排序按照访问权限:private->default->protected->public 由低到高排序以上的模块间以一个空行隔开所有成员类命名均以小写m开头,采用驼峰命名静态成员变量放在以上模块最上方封装的bean类成员变量不需要以小写字母m开头,采用驼峰命名即可类方法a

2017-01-23 15:13:08 383

原创 关于 CheckBox 你或许不知道的一些知识点

CheckBox 的默认效果是文字在右边,如下所示但是我们经常是有文字在左边的需求.可以按照下面的方式进行处理 <CheckBox android:text="CheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" androi

2017-01-07 17:09:49 1289

原创 SwipeLayout一个展示条目底层菜单的侧滑控件

由于项目上的需要侧滑条目展示收藏按钮,记得之前代码家有写过一个厉害的开源控件 AndroidSwipeLayout 本来准备直接拿来使用,但是看过 issue 发现现在有不少使用者反应有不少的 bug ,而且代码家现在貌似也不进行维护了.故自己实现了一个所要效果的一个控件.因为只是实现我需要的效果,所以大家也能看到,代码里有不少地方我是写死的.希望对大家有些帮助.而且暂时也不需要 Android

2016-12-06 09:23:02 554 1

原创 更改TabLayout选中的背景色

项目中有这种需求,google了下发现了解决方案,摘录如下方便大家排查. 原文链接原理是利用selector第一步 在drawable文件夹下建立文件 tab_background.xml

2016-12-01 17:16:16 18623 2

原创 SwipeCardView有点类似于stackview的控件

业余时间写了一个类似stackview的控件,可以循环抽取.还不是很完善,算是给有需要的朋友提供个基本思路吧.有更好的建议请告知.github地址:https://github.com/X-FAN/SwipeCardView先上效果图源码作了简单注释public class SwipeCardView extends ViewGroup { private int mInitX = 0;//最

2016-11-01 10:47:54 1323

原创 FragmentPagerAdapter 滑动过后界面不显示的解决方案

最近工作中UI给出如图设计,心里这个结合viewpager,fragment,FragmentPagerAdapter就能构建出来.说干就干,写出如下代码(部分代码省略) @Override public Fragment getItem(int position) { AllNewsFragment result = null; Bundle bundle

2016-09-30 17:29:20 1887

原创 android界面背景键盘弹起被压缩

android键盘弹起时,若界面设置了背景图有被压缩的情况.如果的界面布局采用了ScrollView可以设置属性android:scrollbars=”horizontal”,或者在manifest文件中设置 android:windowSoftInputMode=”adjustPan|stateHidden” ,这样图片背景就不会被压缩变形,但是图片仍会被稍稍整体推上去的效果.

2016-09-18 10:21:48 2645

原创 PullBezierZoomView 一个具有贝塞尔曲线下拉效果的自定义view

该控件效果基于PullZoomView源码改动的而来,感谢Frank-Zhu的开源代码.该控件具有下拉放大背景图和贝塞尔曲线的效果.github:https://github.com/X-FAN/PullBezierZoomView 欢迎star我主要写了一个自定义的贝塞尔曲线的效果的控件并整合到了Frank-Zhu的项目中的一个子项中.这里面有个小数学知识的求解,因为效果要贝赛尔曲线的曲线顶点要恰

2016-09-13 14:45:02 851 1

原创 用path画一个抽象的树叶

源码地址:https://github.com/X-FAN/LeafViewpublic class PathTestView extends View { private int mWidth; private int mHeight; private int mDuration = 5000; private int mState = 0;//当前状态;

2016-09-06 15:46:01 704

原创 小trick之tools

以前写布局时为了观看布局效果,会写些静态的测试数据,以便在androidstudio中观察布局的效果.等到写完布局的时候在进行擦除.当布局很多的时候,这确实也是很费劲的事.其实官方早就为我们考虑到这点了. 我们在实际开发中可以使用tools. tools可以覆盖我们的属性,但是运行时这些属性是被忽略的如:<?xml version="1.0" encoding="utf-8"?><Linear

2016-09-04 17:13:09 325

原创 一个简单的ReactNative demo

本人非前端,请轻喷 ReactNative版本:0.31 github:https://github.com/X-FAN/reactnativelearn代码做了一些简单的注释,下面是源码import React, { Component} from 'react';import { AppRegistry, Navigator, ToastAndro

2016-08-24 15:42:09 1559

原创 ZoomLoadView 自定义view 可以做app的启动首页效果

虽然这个控件类似的功能github上也有,但还是自己实现了下. 这个控件可以保持图片的比例去填充view,如果按图片比例计算出的大小超出view的大小,会展示图片的中心对称的中心区域.github地址: https://github.com/X-FAN/ZoomLoadView 欢迎startest1的原始图片test2的原始图片效果图

2016-08-16 15:01:00 314

原创 WebView进行post请求

大多数情况下我们一般用WebView去加载一个界面就行了,但是有时候你想要进行post请求,比如你抓取到提交参数,想模拟一些pc端浏览器的请求,比如123306火车票.那要怎么做呢?抓取的参数如下:代码类似于下面:StringBuilder builder1 = new StringBuilder();try {//拼接post提交参数 builder1.append("interfaceNa

2016-08-02 11:55:18 11069 1

原创 FruitLoadView 一个自定义view可用来做加载view

闲暇时自己做得一个自定义view,后续如果还有时间的话再去增强功能。Github地址:https://github.com/X-FAN/FruitLoadView 欢迎star 源码在此就不贴出来了,大家可以去github看下效果图 博客上的图片文件不能太大,github效果图要清晰些,大家将就下 2016.8.5: 新增fruitDrawableArray属性,可以在跳动中变换

2016-07-22 12:18:40 302

原创 仿googleMVP设计模式示例demo,结合rxjava,retrofit2.0

这是模仿Google官方mvp示例的小demo,结合Retrofit2.0,rxjava加上自己的一点理解所写. 感谢干货免费开放的API.github地址:https://github.com/X-FAN/GankAPP 欢迎大家star.google官方的mvp设计模式,比较不同的一点是加上了一个契约类,把逻辑层和视图抽象发在一起.不过这样也的确一目了然,值的借鉴一下.代码类似于下面:publi

2016-07-19 18:04:55 692

原创 AutoScrollTopBottomView

这个自定义控件是用来展示底层view的,当顶层的view滑动到底层view的中间时,顶层view会自动滚动到底层view的顶部或者底部,顶层view可以是scrollview,listview等. 希望对大家有帮助.github地址:https://github.com/X-FAN/AutoScrollTopBottomView下面附上源码,代码思路很简单利用Scroller进行滚动处理.publi

2016-07-11 11:01:40 371

原创 android平移动画闪烁问题

当我们应用android平移动画时,一般会给动画一个监听,当动画结束时,会将view的位置重新绘制到我们想要的位置,因为平移动画并没与真的改变控件的实际位置. 代码如下:

2016-06-14 13:58:56 3478

原创 利用Gson将对象转换成json,忽略某些字段的方法

有时我们将对象转换成json格式的字符串时,并不希望里面所有的字段都转换,我们可能希望忽略某些.默认的gson是全部转换的,为此要给gson做一些配置.其实Gson的官方已经给出示例,如下:官方的示例说明 public @interface FooAnnotation { // some implementation here } // Excludes any field (or clas

2016-05-18 00:05:09 14519 1

原创 TableLayout实现均匀布局(条目横向1:1排列)

像下面的布局效果,我们经常使用LinearLayout实现,其实也可以使用TableLayout去简单的实现代码如下: <TableLayout android:layout_width="match_parent" android:layout_height="match_parent"

2016-04-05 10:49:36 3029

原创 Android 5.0 Button 按钮水纹效果的适配问题

从5.0开始,一些控件的点击时候默认是有水纹效果的如下图以Button举例可以按照如下使用: 注意是android:theme&lt;Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" andr...

2016-03-24 17:28:17 10325 4

空空如也

空空如也

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

TA关注的人

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