自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁超杰

不积跬步无以至千里

  • 博客(13)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android高能下载库FileDownloader

我们的App中可能会提供给用户下载文件或者图片的场景,然后你可能就会考虑以下名词了 多任务下载 多线程下载 断点续传 高并发没错,如果你自己手写下载库的话需要考虑这四个名词,接下来我们学习一下FileDownloader库,该库的作者对这四点已经封装的很好了,5000人Star的开源库你怎可错过呢?老规矩,引用别人的库的时候一定要放别人的github地址 FileDownl

2017-08-29 21:01:16 16828 6

原创 Android Studio中的TODO和FIXME

人是容易健忘的,所以我们会使用很多备忘录软件避免错过一些重要的事情与之类似,当我们在敲代码的时候如果遇到下面这些情况1 UI妹妹还没有给我图,这个A界面暂时先写逻辑等有了图再继续写2 B界面这块的代码太混乱了,我一定要找时间修复一下那么问题来了,你怎么记录下来AB两个界面都需要待完善的操作呢? 写在笔记本里? 记录在App备忘录里?即使你记在了备忘录中,那么你重新打开IDE的时候还是得重新找到A

2017-08-29 17:07:54 1760 1

原创 SmartRefreshLayout+CommonAdapter打造上拉加载下拉刷新界面

2018年1月9日更新我之前的文章提及过万能适配器万能适配器(一)万能适配器(二)我们当时提及过这个万能适配器要是能搭配刷新库一起使用就更好了,现在最热的刷新库要属SmartRefreshLayout了,附上SmartRefreshLayout的github地址SmartRefreshLayout github前期准备已经做完了,现在要看下我们的效果1 导入三方库

2017-08-26 11:42:11 1397

原创 TabLayout+ViewPager使用

直接上效果图首先看布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientatio

2017-08-19 10:12:16 453

原创 Plugin Error: Android ButterKnife Zelezny threw an uncaught ArrayIndexOutOfBoundsException. Disable

因为布局文件命名id的时候使用了两个下划线: android:id="@+id/week_book_date" //这是错误的 android:id="@+id/week_bookdate" //这是正确的

2017-08-15 09:41:00 1130 1

原创 Android判断是否安装某App

当我们的app需要使用第三方应用时,需要判断是否安装(比如你想分享到微信朋友圈,需要判断是否安装了微信) public static final String PACK_NAME = "com.tencent.mm";//微信包名public static boolean isInstallApp(Context context) { final PackageMana...

2017-08-13 17:50:53 5298

原创 Android 中 %s %d %f占位符使用

我们在写布局的时候常常会遇到下面的TextView里面包含人名,游戏名和时间,假如这三个属性是固定死的,那么这个很好写,如果这三个属性是从后台取出来的,而且还有可能随时变化,怎么做?首先你可能会想把“我叫”写成一个tv,把 “贼6”和“不信可以”“一起玩!”再写成三个tv,抛去写布局要求对齐方式这个恶心的地方不说,假如这里面的变量不是三个而是十个二十个,那你得写到吐,所以这个时候就需要占位符登场了1

2017-08-13 14:25:26 20866 3

原创 ViewPager+Fragment(二)装修房

上节课我们使用VF(ViewPager+Fragment)搭配使用做出了底部导航栏的效果,既然效果已经出来了为什么还需要写这篇文章呢?1 毛坯房缺点我们在每个Fragment中打上如下的log,然后点击导航菜单栏切换Fragment @Override public View onCreateView(LayoutInflater inflater, ViewGroup container

2017-08-10 22:02:34 383

原创 ViewPager+Fragment(一)毛坯房

(先放代码,之后再完善文字) MyAdapter类public class MyAdapter extends FragmentStatePagerAdapter { private List<Fragment> list; public MyAdapter(FragmentManager fm,List<Fragment> list) { super(fm);

2017-08-08 16:29:00 393

原创 本地仓库上传到github

我们在本地是可以使用git命令的,但是只能在本地使用,换一个机器就不能看到代码了,想要在其他机器上也能看到代码就必须要将代码传到云服务器上(也就是这里的github)git remote add origin your_urlgit push -u origin master

2017-08-06 21:39:19 480

原创 实时更新UI

众所周知,Android子线程无法修改UI界面,但是一些耗时操作又必须放到子线程中进行,所以有一个概念叫做“异步更新UI”,什么意思呢? 耗时操作放在子线程去做,当耗时操作做完之后我把结果传给主线程,然后让主线程修改UI界面关于如何进行异步更新,下面这篇博客写的很详细也很好android进行异步更新UI的四种方式在我们项目中,有时候会遇到这种需求:异步实时更新UI异步更新: 一般是指开线程处

2017-08-06 14:17:02 923

原创 LayoutInflater

自我开始学习安卓,这个LayoutInflater就一直困惑着我,Inflate翻译成中文是膨胀的意思,但是翻译成布局膨胀器倒不合理,而我一直叫它“布局解析器”,今天就要揭开这个LayoutInflater的神秘面纱,在揭开面纱之前希望大家先看下这篇文章,了解一下基础知识LayoutInflater-使用1 LayoutInflater源码说明Instantiates a layout XML fi

2017-08-06 00:02:35 1085

原创 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo

写demo的时候遇到了这个运行时异常,一般遇到这种情况都是包名或者Activity名字写错了,参照了这篇博客写错名字出的问题尝试了这几种方法都不解决问题,苦寻良久,其实是因为文件缓存解决办法Clean一下项目,重新buid一次就好了。

2017-08-05 11:29:45 431

channelApk.zip

下载这个channelApk 文件夹,然后将release apk拷贝进src_apk文件下并命名,随后执行buildChannels.sh脚本,等待一会就可以看到output中就是你的渠道包文件啦。

2019-08-13

Android实现快速发送电子邮件

最近有朋友有需求是通过apk发送邮件,我心想这怎么可以实现?然后就研究了一番,最后得出结论是可行的! 确实可以自己的手机上定义主题和内容或者附件,然后发送给对应的邮箱!详细步骤倾听我一一道来

2018-10-31

android扫码登录

Android 快速实现扫描识别二维码(即扫码登录功能) 扫码登录现在很流行,淘宝,京东,熊猫直播各大网站都有扫码登录功能,其实呢对于客户端来说扫码登录很简单,因为难点都集中在了前端身上,我简单讲下扫码登录的流程:

2018-10-27

通讯录字母列表索引

相信大家对这个列表字母索引已经不陌生了,在很多app中也随处可见,像没团的城市地址选择,微信联系人列表,手机通讯录…等等。既然是个这么nb这么实用的功能我们怎么能不Get到来呢,下面就让我们一起造一个出来吧

2018-02-26

CheckUtils

判断用户输入的字符串是不是身份证号,邮编号,手机号,银行卡号和日期

2016-12-30

空空如也

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

TA关注的人

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