自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hedong的博客

永无止境

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

原创 这15个好习惯,让您成为一名成功的程序员!

真正优秀的程序员自身都拥有其他人不具备的好习惯,那么一个优秀的程序员该具备哪些好习惯呢?今天为大家整理了15个好习惯 ,如果能坚持下去,能为您今后的工作带来很大的益处,并且能帮助您成为一位真正优秀的程序员。1.编写易于理解的代码   在编码时,要使用明确定义的命名规则,具体包括易于理解的表达式变量以及明确定义的对象和库,同时也要使用正确的缩进和换行符。这将有助于规范代码格式,并

2016-12-29 09:56:05 764

原创 Android 性能优化

关于性能优化的文章,网上很多,觉得自己还是总结一下。一个高性能的应用程序优化必定要到位。Android 中我一般分为两部分,布局和业务代码部分,首先看一下布局方面的一些常用优化方式一、重用布局文件说到重用,那说一下和标签。标签可以允许在一个布局当中引入另外一个布局,那么比如说我们程序的所有界面都有一个公共的部分,这个时候最好的做法就是将这个公共的部分提取到一

2016-12-21 16:49:01 520

原创 底部菜单 BottomNavigationBar 的使用

BottomNavigationBar 是Google官方提供的用以实现底部菜单的控件,使用简单,项目里面也一直在用,想想还是记录下来。首先添加依赖:compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.0'布局:<com.ashokvarma.bottomnavigation.BottomNavigat

2016-11-25 16:06:45 3167 2

原创 修改TabLayout底部导航条Indicator的长短

关于Tablayout,使用的应该很频繁了,但是底部导航条长短是固定死的,需要自己来改动长短,找了半天没找着方法,看了下官方建议,可以通过映射来修改自己想要的长短,其实也就几行代码的问题,看代码: public static void setIndicator(Context context, TabLayout tabs, int leftDip, int rightDip) {

2016-10-30 14:45:08 13111 24

转载 Kotlin Flow响应式编程,基础知识入门

现代化Android开发技术栈里面涉及到的方方面面的新知识,几乎已经全面Kotlin化。如果还守着Java不放,那就意味着像协程、Compose等未来主流的Android技术栈都将完全与你无关。而现在随着Kotlin的普及率越来越高,我也终于打算去写一些基于Kotlin语言的进阶技术内容了。目前的计划是把Flow和Compose的相关内容都写一写,先从Flow开始写起。那么我们的Kotlin Flow系列就此正式展开了。

2022-12-02 14:22:44 216

转载 Google 为何把 SurfaceView 设计的这么难用?

如果你有过 SurfaceView 的使用经历,那么你一定和我一样,曾经被它所引发出 层出不穷的异状 折磨的 怀疑人生—— 毕竟,作为一个有理想的开发者,在深入了解 SurfaceView 之前,你很难想通这样一个问题:为什么 Google 把 SurfaceView 设计的这么难用?不支持 transform 动画;不支持半透明混合;移动,大小改变,隐藏/显示操作引发的各种问题;

2022-12-02 14:08:27 246

原创 如何绕过 Android 8.0 startService 限制

如何绕过 Android 8.0 startService 限制文章来源于Android 面试官

2021-03-19 09:47:13 511

原创 为什么我们能在主线程直接使用 Handler,而不需要创建 Looper ?

为什么不需要创建 Looper ,就能在主线程直接使用 Handler ?每个Handler 的线程都有一个 Looper ,主线程当然也不例外,但是我们不曾准备过主线程的 Looper 而可以直接使用,这是为何?通常我们认为 ActivityThread 就是主线程。事实上它并不是一个线程,而是主线程操作的管理者。所以把 ActivityThread 认为就是主线程无可厚非。下面通过代码来看...

2019-02-21 11:02:23 2075

转载 为什么你做的H5开屏那么慢?H5首屏秒开方案探讨

来自:蚂蚁金服高级无线开发专家 bang随着移动设备性能不断增强,web 页面的性能体验逐渐变得可以接受,又因为 web 开发模式的诸多好处(跨平台,动态更新,减体积,无限扩展),APP 客户端里出现越来越多内嵌 web 页面(为了配上当前流行的说法,以下把所有网页都称为 H5 页面,虽然可能跟 H5 没关系),很多 APP 把一些功能模块改成用 H5 实现。虽然说 H5 页面性能变好了,

2018-02-06 09:44:27 690

转载 Android 开发的17个建议,紧跟Google官方,进阶必看!

摘要使用 Gradle 和它推荐的工程结构把密码和敏感数据放在gradle.properties不要自己写 HTTP 客户端,使用Volley或OkHttp库使用Jackson库解析JSON数据避免使用Guava同时使用一些类库来避免65k method limit(一个Android程序中最多能执行65536个方法)使用 Fragments来呈现UI视图使用 Activities 只是为

2017-12-01 15:38:16 2635

原创 中国 2017 Google 开发者大会来了!

Google 开发者大会再度来袭!2017 Google 开发者大会为期两天,将于 12 月 13 日和 14 日在上海举办,主题将涵盖机器学习 (Machine Learning)、Android、移动网络(Mobile Web)、Firebase、云服务 (Cloud)、AR/VR、设计 (Design) 以及更多。我们非常高兴与您分享我们关于创新技术的想法,鼓励广大开发者着手构建下一个精彩的移

2017-11-08 11:12:51 3017 2

原创 Kotlin 一统天下?Kotlin/Native 开始支持 iOS 和 Web 开发

KotlinConf 大会宣布了 Kotlin 1.2 RC 版,并宣布 Kotlin/Native 已支持用于开发 iOS 应用和 Web 应用开发。首届官方举办的 Kotlin 专题会议 KotlinConf 于昨天正式开幕,来自世界各地约 1200 名与会者齐聚旧金山,在这场盛大的 KotlinConf 大会主题演讲中,Kotlin 的首席语言设计师 Andrey Breslav

2017-11-07 15:56:21 657

原创 Google Developers 认证团队推出 Mobile Web Specialist 认证

如果您是一名网络开发者,就一定知道这是一个鱼龙混杂的市场,而您也想让自己从其他网络开发者中脱颖而出。想要展示您具备构建自适应和灵活网络应用的技能吗? Google Developers 认证团队荣幸地宣布推出 Mobile Web Specialist 认证。这项新认证基于我们对市场的完全分析,面向需要掌握移动网络开发者必备技能的开发者。(不过别担心,认证考试中展现的技能也适用于桌面设备和所有浏

2017-09-16 09:54:47 457

原创 Android Oreo 可下载字体

Android 8.0(API 级别 26)和 Android Support Library 26,现在允许 API 从一个字体供应程序里请求字体,而不需要绑定字体文件到 APK,或者由 APK 自行下载字体。该功能可通过 Android Support Library 26 运行在 Android API 14 及其更高的版本。可下载字体功能具有以下优点:减

2017-09-16 09:47:06 2664

原创 Android 自定义Toast

某些时候为了响应业务需求,原生的Toast满足不了需求,唯一的办法就是自定义,一起来看一下自定义Toast,其实很简单,它自身提供了setView这样一个方法,看代码: public static void showToast(Context context, String message) { View rootView = LayoutInflater.from(context)

2017-05-05 17:41:46 620 1

原创 汉诺塔问题

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 那么算法怎么实现呢? 我们把盘子从上到下一次编号:1,2,3,….n.当只有一个盘子的时候,只需要从将A塔上的

2017-05-03 14:46:36 440

原创 Android 中配置方法数超过 64K 的应用

随着 Android 平台的持续成长,Android 应用的大小也在增加。当您的应用及其引用的库达到特定大小时,您会遇到构建错误,指明您的应用已达到 Android 应用构建架构的极限。早期版本的构建系统按如下方式报告这一错误:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xff

2017-04-27 16:55:24 686

转载 从源码的角度理解Glide的执行流程

转自:http://blog.csdn.net/guolin_blog/article/details/53939176在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API。还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 。在多数情况下,我们想要在界面上加载并展示一

2017-04-21 12:30:10 477

原创 Android 中记事本动态添加行

先看效果图: 这是昨天在群里面有人在问这个问题,在这里顺便记录一下,这个效果我们可以自定义EditText,实现起来也不难,看乳腺步骤: 第一:初始化Paint,这里肯定要用到画笔的 this.paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setColor(getResourc

2017-04-21 11:21:14 619

原创 Android O 预览版推出啦!

Android O的开发者预览版终于出来了。但是官方称适用的一般注意事项:该版本尚处于早期开发阶段,我们将会提供更多功能,并仍会进行大量工作以保证其稳定性和性能。但是,它正在起步:)。在未来数月里,将发布更新的开发者预览版,并将在五月份的 Google I/O 上深入探讨 Android 的所有动态。一起来了解一下O 的新增功能:后台限制:在 Nougat 中便开始致力于延长用户的

2017-04-19 14:44:34 600

原创 Android 自定义View之PorterDuffXfermode的使用(刮刮卡的效果实现)

回想一下,在刮奖的时候的那个效果,怎么实现的呢,我们来看一下简单的实现方法。 这里我们要用到画笔特效处理中的PorterDuffXfermode来实现这个效果。在学习PorterDuffXfermode之前,先看看看这张图: 图来自API demo。基本上讲PorterDuffXfermode的文章都引用了该图,类似于取并集,交集的概念。 它控制了两个图像之间的混合现实模式。注意:Porter

2017-04-17 11:33:11 759

原创 假如Google真的回来了

在流量昂贵,大公司长期霸榜、甚至不少人靠刷榜耍流氓的环境下,Google Play 可能为中国的开发者带来一丝希望。在离开 7 年以后,Google 这次可能真的要回来了。The Information 透露,网易正与 Google 接洽,打算成立合资公司,来负责运营 Google Play 应用商店和谷歌的一些 APP,借此,Google 可以重返中国。不过文章中也提到,网易只是 Google 潜

2017-03-01 11:05:50 794

转载 Android-如何开发一个功能强大的ImagePicker

图片选择器是Android开发中会经常用到的一个功能,特别对于社交类的应用,比如头像设置,比如发图片。自然ImagePicker的轮子很多,今天介绍一个功能强大的轮子SImagePickerhttps://github.com/martin90s/ImagePicker介绍首先功能强大之处首先基本的图片读取显示,以及图片更新监控超大图片预览,比如一张19M,1000

2017-02-27 17:35:03 813

原创 微信小程序之自定义Toast

之前有篇文章是写的Toast使用,但是有时候官方的样式并不能满足业务要求,怎么办呢,当然有解决办法了。有一个插件可以直接帮我们完成,WeToast。先来看一下效果图: 怎么用呢,我们来看一下: WeTaost插件源码位于src目录下,包含3个文件。wetoast.js: 脚本代码 wetoast.wxml: 模板结构 wetoast.wxss: 样式 使用时只需要加入以上3个文件即可第一步

2017-02-23 11:28:18 1386 1

转载 20个很棒的android开源项目帮助你提升开发技能

对程序员来说,最好的学习也是阅读,多看别人优秀的代码,加以总结学习应用。如果你想成为一个更好的开发者,就必须阅读大量的代码。书本,博客,论坛在一定程度上都是比较好的,但是比不上一些功能完整详细的开源项目。所以你要做的就是喝着咖啡看代码。O(∩_∩)O哈哈~下面列出来一些比较好的开源项目,每个项目都标注有难易程度。希望可以帮到你~LeafPic(Github | P

2017-02-21 10:05:25 855

转载 2017年,你需要尝试的25个Android第三方库

Lottie这是一个动画库。通过Adobe After Effects做出动画效果,然后通过Bodymovin(AE的插件)导出JSON数据,然后通过该库生成原生动画效果。在Google Play Store上可以下载demo。该项目在Github上已经由超过8000个star。猴赛雷~~ ***Airbnb***公司出品。效果图如下:Github地址:h

2017-02-21 09:57:52 578

原创 微信小程序之map地图

微信小程序地图操作比较简单,api也很少,使用map组件来展示。说到地图,那就先来看基础定位: 定位用到wx.getLocation(OBJECT)函数,代码如下:wx.getLocation({ type: 'wgs84', success: function(res) { var latitude = res.latitude var longitude = res.l

2017-02-15 10:33:25 61685 18

转载 微信小程序开发之『侧边栏滑动』特效

侧边栏滑动是很常见的功能,但是小程序出来不久,很多特效还没有成熟案例,只能原生重写,所以今天为大家带来4个漂亮的侧边栏特效~~ 侧边栏特效一 先看效果: Wxml:<view class="page"> <view class="page-bottom"> <view class="page-content"> <view clas

2017-02-09 17:36:27 792

原创 微信小程序之toast等弹框提示

微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showToast(OBJECT)。 看下有关参数说明: 代码很简单: wx.showToast({ title: '成功', icon: 'succes', duration: 1000, mask:true

2017-02-09 16:19:25 157887 5

原创 微信小程序之相册选择,拍照

小程序中获取图片可通过两种方式得到,第一种是直接打开微信内部自己的样式,第一格就是相机拍照,后面是图片,第二种是弹框提示用户是要拍照还是从相册选择,下面一一来看。 选择相册要用到wx.chooseImage(OBJECT)函数,具体参数如下: 直接来看打开相机相册的代码:Page({ data: { tempFilePaths: '' }, onLoad: function

2017-02-09 11:07:08 17430 7

原创 微信朋友圈的实现(图片查看,手势放大、缩小)

效果图: 简单的就这样,实现效果的方法有多种,可以使用ListView嵌套GridView,也可以直接使用RecycleView,这里只说RecycleView的实现方法。 难一点的地方就是每个item添加图片,这里使用的是自定义LinearLayout,LinearLayout里面主要做图片点击处理,设置图片布局,行数列数的排列。代码不多,直接贴代码了:public class Mult

2017-02-07 16:51:06 10898

原创 微信小程序之页面跳转、传参

年前最后一天上班了,公司几个人在上班,没事做,还是来学习一下小程序吧。 本博客说一下页面跳转,页面跳转又分为三种:跳转新页面,当前页面跳转及tab跳转。 先来看看navigator相关属性: 直接代码说话: 主页面:<!--index.wxml--><view class="btn-area"> <navigator url="../navigator/navigator?title

2017-01-24 14:12:08 23623

原创 微信小程序之滚动选择器(时间日期选择器)

微信小程序自己封装了很多控件,用起来确实很方便,如果这是Android里面,还需要自己去定义,不废话,效果图: 一起来看看怎么实现的呢?看完你应该就该说,尼玛,这就行啦…. 这个效果呢,要用到picker组件,动画从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器。 看下相应的属性: 具体的来看看代码,布局:<view

2017-01-23 17:33:59 58922 7

原创 微信小程序之滑块视图容器(swiper)

看图: 实现起来特别简单,看看代码是怎么写的呢:<swiper class="swiper" indicator-dots="{{indcatorDots}}" autoplay="{{autoPlay}}" interval="{{interval}}" duration="{{duration}}"> <block wx:for="{{imgUrls}}" wx:for-index="

2017-01-23 11:37:31 5568

原创 微信小程序之scroll-view

scroll-view 可滚动视图区域。 使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。 实例代码如下:<view class="section"> <view class="section__title">垂直滑动</view> <scroll-view scroll-y="true" bindscrolltolower="lower" bindscrol

2017-01-23 10:52:43 13784 3

原创 微信小程序基础组件之视图容器

什么是组件? 组件是视图层的基本组成单元,组件自带一些功能与微信风格的样式,一个组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之内。 注意:所有组件与属性都是小写,以连字符-连接共同属性类型 基础组件分为以下七大类,分别是:视图容器(View Container),基础内容(Basic Content),表单(Form),导航(Navigation),多媒体(Media)

2017-01-22 17:45:39 2200 1

原创 微信小程序之程序、页面注册及生命周期

程序注册App() App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。 object参数说明: 前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。 示例代码:Ap

2017-01-22 12:42:29 3140

原创 微信小程序常用快捷键

格式调整  Ctrl+S:保存文件  Ctrl+[, Ctrl+]:代码行缩进  Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块  Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行  Shift+Alt+F:代码格式化  Alt+Up,Alt+Down:上下移动一行  Shift+Alt+Up,Shift+Alt+Down:向上向下复制一行  Ctrl+

2017-01-20 16:57:37 1259 1

原创 微信小程序之项目结构与配置

每个平台项目都有相应的项目结构与配置,一起来看一下微信小程序的项目结构。 文件结构 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 一个小程序页面由四个文件组成,分别是: 项目结构如下: 项目配置 一个项目的大体结构就如上所示,下面来看看具体配置: 使用app.json文件来对微信小程序进

2017-01-20 16:33:36 2628

原创 小程序入门简介

1. 获取微信小程序的 AppID登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID 。注意:如果要以非管理员微信号在手机上体验该小程序,那么我们还需要操作“绑定开发者”。即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号。本教程默认注册帐号、

2017-01-20 10:33:39 1301

Android aac录音

能同时兼容iOS播放的aac录音格式,录音,播放录音,同时兼容6.0以上版本能同时兼容iOS播放的aac录音格式,录音,播放录音,同时兼容6.0以上版本

2018-11-17

Zxing二维码扫描

这是一个经过修改的Zxing,可自动修改样式的,扫描速度极快

2018-07-30

仿淘宝下拉显示浏览记录

仿淘宝下拉显示浏览记录

2017-04-21

自定义微信小程序Toast

自定义微信小程序Toast,实用、通用工具

2017-02-23

WeToast 插件

WeToast 插件

2017-02-23

仿微信头像剪切

仿微信头像剪切,满足你的需求

2017-01-18

com.example.donghe.maptest.apk

实例

2017-01-08

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

TA关注的人

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