Yomii Blog

Time is short!

android 适配相关知识 (一) -- density dpi px dp dip sp 解释

简介 整理一下之前看到的几篇不错的 android 适配相关内容,糅合在一起内容很多看起来不舒服,所以分为三个部分,加上一些自己的验证和理解。 (1) 系统名词解释, 基础知识 (2) 图片加载相关内容 (3) android 分辨率适配方案 长度和大小单位 px(pixel) 表示屏幕实际的像素。例如,1200×1920 的屏幕在横向有 1200 个像素,在纵向有 1920...

Transition 总结

参考: 开始使用 Transitions(过渡动画) (part 1) 使用Material风格的动画,在SDK 21+ 实现更好效果 虽然在上个版本中已经引入Activity 和 Fragment 动画(通过 Activity#overridePendingTransition() 和 FragmentTransaction#setCustomAnimation() 方法),但是动画的...

Mac 下的 Android 开发环境配置

从 windows 转到 Mac Os 进行 Android 开发,对系统不熟,软件配置上遇到很多麻烦事,只能一步一步摸索,开一贴记录历程。 操作环境 MacBook Pro (15-inch, 2016) macOs version: 10.12.4 环境变量配置 mac 下配置环境变量使用 .bash_profile 配置文件,当然还有别的途径不过为了简单只说这一种。 以配置 a...

Android GridLayout 动态添加子控件 + 平均分配空间

有时候会遇到这样的需求: 要求子控件网格布局,平均分布 内容根据接口动态加载 父控件充满界面剩余空间,不可滑动 看到 1 和 2 的时候 GridView 和 RecyclerView 都能胜任,但是不可滑动这个需求就需要对他们做特殊处理,并且不容易做分辨率适配,这时候用 GridLayout 动态加载做起来更简单。 使用GridLayout 导入 v7 包的 Grid...

ScrollView的滑动状态监听

ScrollView没有提供滑动状态的相关监听, 因此可以通过接口暴露一些需要的状态值 public interface ScrollViewListener { /** * 获取滑动增量, 可用于伴随动画等 */ void onScrollChanged(ObservableScrollView scrollView, int x, int y, ...

自定义分享界面 动态创建模糊背景

分享页面要求做一个背景半透明模糊效果, 记录一下过程, 另外分享窗口是需要部分自定义的, 直接改ShareSDK的页面代码 效果 添加gradle支持 在android下的defaultConfig代码块进行如下设置 defaultConfig { ...... renderscriptTargetApi 18 renderscriptSupportMod...

获取网络图片的 ImageSpan

TextView做图文混排时可能用到Html下的ImageGetter工具或者ImageSpan。 ImageGetter获取网络图片的例子很多, 但是如果文本中不包含图片的宽高信息,那么考虑预留多少空间是挺麻烦的事。 本例使用ImageSpan+Glide获取网络图片, 适用于文本内容较短的场景(因为获取到图片后会刷新控件,内容多会卡顿)。图片加载库换成类似的也行, 原理都一样 效果...

使用 PopupWindow 模仿 ActionBar 下拉菜单效果

效果 设置布局 代码 public class PopupOverFlow extends PopupWindow implements View.OnClickListener, PopupWindow.OnDismissListener { public PopupOverFlow(Context context) { // 设置SelectPicPo...

Android 性能优化实例:通过 TraceView 定位卡顿问题

背景 项目中使用了鸿洋大神的TreeView树状结构控件, 但是由于在主线程中使用了注解/反射来定位节点, 内容一多就有点卡顿。因此通过android device monitor中的性能分析工具定位并优化这一问题并记录过程。 树状结构控件看这里 其他优化内容可以看 Android性能优化 准备工作 打开tools菜单 —— android——android device m...

View 绘制流程

View 树的绘图流程 当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做 的工作可简单概况为是否需要重新计算视图大小(measure)、是否需要重...