Android
CodeXiaoMai
这个作者很懒,什么都没留下…
展开
-
实现ViewPager无限循环的方式二
原理:在Adapter中将getCount设置为无限大 package com.xiaomai.myproject.demo;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.view.ViewGroup;import android.widget.Ima...原创 2016-10-10 17:07:59 · 1058 阅读 · 0 评论 -
一款开源的Android极客应用(持续更新)
转载请注明出处: http://www.jianshu.com/p/1abf8f86ad16Android极客 “Android极客”一个专门为Android程序猿打造的极客应用(未完待续….),你们的支持是我最大的动力!!!!更新预告优化GitHub模块的一些细节加入Android进阶文章精选干货(大家可以把想学习的关键技术提交issues或留言给我)以后新版本有哪些更新,你说的算原创 2017-05-08 14:58:41 · 2013 阅读 · 0 评论 -
一款开源的密码管理器
本文同步发布于掘金:https://juejin.im/post/58f58d94da2f60005d434b66 简书:http://www.jianshu.com/p/08c8a0a7320e每个人都有各种各样的账号和密码,出于安全的原因,不建议所有平台使用同样的密码,一旦泄露后果不堪设想。但每个平台都设置不同的密码,如果你能全部记住,并且不记混,我只能说你不是地球人。实际上各种平台使用...原创 2017-04-18 14:17:42 · 2020 阅读 · 0 评论 -
Android 检测设备是否为模拟器
Android 检测设备是否为模拟器 最近有一个新的需求,检测设备是否为模拟器,如果是模拟器就禁用某些功能。市面上的模拟器打开 Google 搜索 “模拟器”,各种模拟器映入眼帘。“逍遥安卓-超强安卓模拟器”、“天天模拟器”、“网易MuMu”、“BlueStacks蓝叠安卓模拟器”、“夜神安卓模拟器”、“海马玩模拟器”、“51模拟器”当然还有功能强大的“Genymotion”……搜索解决办法经原创 2017-07-13 16:17:08 · 5065 阅读 · 2 评论 -
Linearlayout的android:divider属性
这个属性可以在LinearLayout的每个子布局直间添加一个“drawable”作为分割线,这个drawable必须有设定好的高度或者宽度,因此不能之间设置为“@color/….”这个属性要和android:showDividers一起使用才会生效android:showDividers有“begining”,“middle”,“end”,“none”四种值。默认值为“none”,即不显示分割原创 2016-12-27 13:59:22 · 14264 阅读 · 0 评论 -
踢开Android 开发中的绊脚石
在开发过程中,许多并算不上高级技能甚至连基础知识都不算的东西经常被忽略,但这些东西还经常是开发过程中的绊脚石,很长时间都解决不了,一旦找到了解决办法,就茅塞顿开了“原来是这样啊,这不是小菜一碟吗?下次我注意就是了”。但是时间长了真的发现“好记性不如烂笔头”,当再次遇到同样的问题,发现还是一脸懵逼,但可以肯定之前遇到过这个问题。为了避免重走冤枉路,所以将它们记录下来。虚线Scroll...原创 2017-10-24 10:07:24 · 430 阅读 · 0 评论 -
Handler 消息机制
Handler 消息机制是由 Message MessageQueue Handler Looper 共同完成的。Handler 消息机制是用于在同一个进程中的多个线程之间进行通信的。由于工作线程与主线程共享地址空间,即 Handler 实例对象 mHandler 位于线程间共享的内存堆上,工作线程与主线程都能直接使用该对象,只需要注意多线程的同步问题。原创 2017-11-13 14:38:27 · 385 阅读 · 0 评论 -
ViewModel
ViewModel 负责根据生命周期来存储和管理 UI 相关(Activity 或 Fragment)的数据。当配置发生变化时,如:屏幕方向旋转,它可以保证数据不被销毁。翻译 2017-12-25 12:33:22 · 4146 阅读 · 0 评论 -
Android应用屏幕适配
问题Android 设备各种屏幕尺寸和形状,如何做好适配?解决思路和办法Android 系统定义了两种常规属性对设备屏幕进行分类:大小和密度。为了优化应用程序的外观,以适应不同的屏幕尺寸和密度,可以添加一些替代资源(布局和图片)。因此对不同屏幕尺寸、形状以及密度的适配,其实就是对布局和图片的适配。布局适配要优化不同屏幕尺寸的用户体验,应该为要支持的每个屏幕尺寸原创 2017-09-30 15:06:17 · 446 阅读 · 0 评论 -
一键切换Android应用环境(Environment Switcher)
Environment SwitcherEnvironment Switcher 是一个在 Android 的开发和测试阶段,用来一键切换环境的工具。为什么要做这个工具做这个工具是为了方便开发和测试人员在不重新打包的情况下快速切换环境。相信大家都遇到过下面的某些场景。App 在开发、测试、上线等阶段需要频繁切换环境。同一个App中的不同模块,在同一阶段需要配置不同的...原创 2018-08-25 19:32:20 · 2803 阅读 · 0 评论 -
解析 SQLiteOpenHelper
“SQLiteOpenHelper” 是一个用来管理数据库的创建和版本管理的辅助类。它是一个抽象类,要使用它必须创建一个子类继承 SQLiteOpenHelper,并实现 onCreate,onUpgrade 这两个抽象方法。这样,如果数据库存在,它就会打开;如果不存在,就会创建这个数据库,并且如果必要的话会自动升级数据库。为了确保数据库始终处于一个合理的状态,它会使用事务。它便于 ContentP原创 2017-04-21 13:23:10 · 1980 阅读 · 0 评论 -
Android 开发SD卡存储目录的使用
Android 开发SD卡存储目录的使用 最近两天产品收到用户反馈:“下载目录是否可以选择外置SD卡”,用户就是上帝啊,需要什么我们就要实现什么。但是,在真正的开发过程中遇到了不少问题,记下来做个前车之鉴。原创 2017-03-07 18:36:38 · 1398 阅读 · 0 评论 -
安卓开发中,release安装包安装后,打开app后再按home键,再次点击程序图标app再次重新启动的解决办法
安卓开发中,release安装包安装后,打开app后再按home键,再次点击程序图标app再次重新启动的解决办法 在开发中我们一般都是直接AS上的安装(Run)按钮,直接安装到真机或模拟器上进行测试,但是当发布时就要先打包,再拷贝安装。如题目中的描述,这个问题在平时Debug的时候并不存在,只有发布正式版的时候才会出现,(尼玛,隐藏的挺深啊!可坑了我了!)开始发现这个问题,我以为是app被系统原创 2017-02-27 17:37:47 · 5546 阅读 · 4 评论 -
实现ViewPager无限循环的方式一
方式一:实现原理: 假设有3张图片,分别是1,2,3,那么就创建5张图片,这5张图片的顺序为:3,1,2,3,1, 其中1,2,3为我们要实现滑动的图片,最左面的3和最右面的1是我们另外添加的图片, 开始时,显示图片1,当图片向左滑动依次为1,2,3,当从第3张图片继续向左滑动,会出现我们多添加 的图片1,这时,将当前的index设置为真正的图片1所在的位置。package com....原创 2016-10-10 16:58:27 · 1433 阅读 · 1 评论 -
Android加载Gif动画android-gif-drawable的使用
Android加载Gif动画android-gif-drawable的使用概述:android-gif-drawable是通过JNI来渲染帧的,这种方式比使用WebView或者Movie效率要高要求Android 2.3+ (API level 9+)*如果使用GifTextureView, Android 4.0+ (API level 14+) ,支持硬件加速渲染如果使用GifTexI原创 2016-10-20 17:15:15 · 31782 阅读 · 8 评论 -
CircleTextView的实现
“CircleTextView”顾名思义就是带圆边框的TextView,先来看效果图:之前的项目中如果有带圆边框的需求,基本是都是在drawable中创建一个shape,然后将它设置为TextView的background,但是这样有个弊端,就是每次只要边框的颜色、边框的宽度或者填充颜色不同,就要创建一个新的shape文件,这样做显然不是一个有长久之计,想到CircleImageView的效果受到大原创 2016-12-06 14:55:30 · 1454 阅读 · 0 评论 -
Android Studio Gradle的配置使用与解析总结
Gradle 的编译周期在解析 Gradle 的编译过程之前我们需要理解在 Gradle 中非常重要的两个对象。Project和Task。每个项目的编译至少有一个 Project,一个 build.gradle就代表一个project,每个project里面包含了多个task,task 里面又包含很多action,action是一个代码块,里面包含了需要被执行的代码。 > 你还在...转载 2016-10-21 13:17:52 · 5491 阅读 · 0 评论 -
自定义图片轮播(Banner)控件的实现解析
自定义图片轮播(Banner)控件的实现解析图片轮播控件,可以说是每个App基本上都会用到的。它可以用来动态的展示多个图片,之前写过两篇博客:实现ViewPager无限循环的方式一和实现ViewPager无限循环的方式二,在这两篇博客中,分析了两种实现ViewPager无限循环的原理,但是在使用的过程中,代码的解偶性很低,所以就使用自定义View的方式,实现无限循环的图片轮播的封装。我自定义的Ban原创 2016-11-16 18:35:03 · 3432 阅读 · 1 评论 -
打造一个具有弹性滑动效果的TextView
先看效果图实现步骤:自定义ScrollTextView继承TextView实现滑动的方法重写computeScroll()方法代码实现public class ScrollTextView extends TextView { private Context mContent; private Scroller mScroller; public ScrollTextVie原创 2016-12-16 14:44:16 · 744 阅读 · 0 评论 -
修改主题Theme中默认颜色
Android中的许多默认颜色的值是和Theme有关的,就拿超链接的颜色为例。当Theme为“Theme.AppCompat"和"android:Theme.Light"时,超链接的颜色是不一样的。所以,我们要自己配置。 <application .... android:theme="@style/AppTheme"></application&...原创 2015-08-20 18:06:25 · 4353 阅读 · 0 评论 -
图片加载库Android-Universal-Image-Loader关闭Log及源码分析
> 你还在为开发中频繁切换环境打包而烦恼吗?快来试试 Environment Switcher 吧!使用它可以在app运行时一键切换环境,而且还支持其他贴心小功能,有了它妈妈再也不用担心频繁环境切换了。[https://github.com/CodeXiaoMai/EnvironmentSwitcher](https://github.com/CodeXiaoMai/Environment...原创 2016-01-17 16:19:46 · 1020 阅读 · 0 评论 -
Environment Switcher 原理解析(注解、Apt、反射、混淆)
Environment Switcher 是一个在 Android 的开发和测试阶段,运用 Java 注解、APT、反射、混淆等原理来一键切换环境的工具。本周末随着 Environment Switcher 1.4 的发布,在这里为大家奉上 Environment Switcher 的原理解析。如果你还不了解 Environment Switcher,建议先看一下这篇文章《一键切换...原创 2018-09-03 10:59:23 · 751 阅读 · 0 评论