zm.blog

select * from learn


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

你可能不知道的 Mac 技巧 - 截图,Gif 制作及 App 推荐

发表于 2018-12-24 | 分类于 工具 | | 阅读次数:

概述

首先要说明的是,我不可能,也不打算把所有快捷键都列出来。写这篇博文的目的是列出来那些我经常使用的,而且我认为可以显著的提高工作效率的快捷键。所以多少会有些主观色彩

Anyway,老规矩,如果大家有任何疑问、意见或者建议,请在下方留言评论

截图

macOS 系统内置了截图功能,每次截图都会发出声音,当然这个声音可以关,后面会提到。基础操作有以下四种(快捷键也可以自定义,后面也会提到):

阅读全文 »

Android基础控件ViewFlipper的使用,垂直滚动广告条

发表于 2018-12-24 | 分类于 Android , View | | 阅读次数:

学习,学习,学以致用
ViewFlipper是安卓自带的控件,很多人可能很少知道这个控件,这个控件很简单,也很好理解。

从源码可以看出,其实ViewFlipper间接的继承了FrameLayout,也可以说ViewFlipper其实就是个FrameLayout,只不过在内部封装了动画实现和Handler实现一个循环而已。

ViewFlipperDemo

阅读全文 »

View获取width和height的四种方法

发表于 2018-12-21 | 分类于 Android , Android Tips | | 阅读次数:

很经常当我们动态创建某些View时,需要通过获取他们的width和height来确定别的view的布局,但是在onCreate()获取view的width和height会得到0.view.getWidth()和view.getHeight()为0的根本原因是控件还没有完成绘制,你必须等待系统将绘制完View时,才能获得。这种情况当你需要使用动态布局(使用wrap_content或match_parent)就会出现。一般来讲在Activity.onCreate(…)、onResume()方法中都没有办法获取到View的实际宽高。所以,我们必须用一种变通的方法,等到View绘制完成后去获取width和Height。下面有一些可行的解决方案。

1、监听Draw/Layout事件:ViewTreeObserver

ViewTreeObserver监听很多不同的界面绘制事件。一般来说OnGlobalLayoutListener就是可以让我们获得到view的width和height的地方.下面onGlobalLayout内的代码会在View完成Layout过程后调用。

1
2
3
4
5
6
7
8
9
10
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mScrollView.post(new Runnable() {
public void run() {
view.getHeight(); //height is ready
}
});
}
});

但是要注意这个方法在每次有些view的Layout发生变化的时候被调用(比如某个View被设置为Invisible),所以在得到你想要的宽高后,记得移除onGlobleLayoutListener:

阅读全文 »

SpannableString之富文本显示效果

发表于 2018-12-19 | 分类于 Android , View | | 阅读次数:

阅读全文 »

Android跳转权限设置界面的终极适配(支持各大定制ROM)

发表于 2018-12-19 | 分类于 Android , Android Tips | | 阅读次数:

前言:

当我们的用户使用App时不小心拒绝了某项必要权限,而导致无法正常使用。这时候希望重新去打开该权限,那么问题来了,Android厂家定制的room五花八门,很多时候却发现找不到权限管理的入口。为了解决这一问题,如果我们应用中直接提供权限管理入口给用户,是不是会很方便的解决用户这一困扰呢?经过一番研究,整理出了大部分国产手机直接打开权限管理界面的方法

权限界面的跳转

一般项目中我们都会通过一个类来管理我们的Permission,即PermissionPageUtils

阅读全文 »

Omniplan 5分钟入个门

发表于 2018-12-19 | 分类于 工具 | | 阅读次数:

https://xclient.info/s/omni-plan.html

00:00 什么要用omniplan?

最近工作当中,对项目交付的要求越来越高了。

这意味着不能像之前那样,做完方案就丢给开发,然后到了指定时间再收获了。

那么怎么掌握项目全部的进度呢,用万能的excel画格子吗?

画格子

当然在产品经理面前,Excel无所不能,上到画原型,下到数据库管理。但是在面对一个较大的项目的时候,仍然会有一些问题:

  1. 我的项目进度到哪了?
  2. 项目瓶颈是什么?
  3. 还有没有更好的项目组织的方案?

这些问题的答案就是 omniplan。

阅读全文 »

Genymotion上不能安装APK软件的问题

发表于 2018-12-17 | 分类于 Android , Android Tips | | 阅读次数:

Genymotion模拟器不能安装APK的原因
官网给出的解释:Genymotion模拟器使用的是x86架构,在第三方市场上的应用有部分不采用x86这么一种架构,所以在编译的时候不通过,报“APP not installed”,可以下载Genymotion提供的ARM转换工具包,将应用市场中的ARM架构的apk转换成Genymotion可以编译的x86架构;

直接安装报错如下图:

An error occured while deploying the file.
This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to x86 or install an ARM translation tool in your device.
部署文件时出错。
这可能意味着应用程序包含本地ARM代码和你的genymotion设备无法运行ARM指令。你可以建立你的原生代码的x86或在您的设备上安装一个臂的翻译工具。

阅读全文 »

完美解决Genymotion无法使用adb命令的问题

发表于 2018-12-17 | 分类于 Android , Android Tips | | 阅读次数:

我在运行Genymotion虚拟机进行android应用调试的时候,无法用Powershell(cmd)进入adb shell,显示的界面是这样的:

导致无法正常进行adb调试,找了很多方法都没用,后来修改了genymotion中的settings 中的ADB选项中的SDK路径,保持跟你当前应用的eclipse或者android studio中的SDK库一致,然后问题就解决了;

阅读全文 »

生活计划

发表于 2018-12-16 | 分类于 随笔记 | | 阅读次数:

阅读全文 »

OkHttp3源码分析二

发表于 2018-12-15 | 分类于 Android , 开源库 | | 阅读次数:

1.前言

  • Android开发过程中,使用第三方的框架库已成家常便饭,使用第三方好处避免重复造轮子、降低成本、提升效率、降低风险等等,当遇到框架库不能满足现有业务、框架库设计缺陷或者漏洞、API使用深度不够时,如果停留只会使用层面,就会增加修改过程的难度,所以对于使用的框架库最好还是有个系统的认识;

  • 本文带大家深入讲解 OkHttp;


2.目录


阅读全文 »
1…222324…38
ZhangMiao

ZhangMiao

Android/Flutter Developer

379 日志
58 分类
143 标签
RSS
E-Mail QQ Github StackOverflow
友情链接
  • Kaisir
  • Liujianhui
  • Leo
  • Hongyang
  • Liuwangshu
  • Jspang
  • Blankj
  • WuXiaoLong
  • Molunerfinn
  • Ofind
  • Gcssloop
© 2024 ZhangMiao
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
本站访客数 人次 本站总访问量 次