Android开发工程师
前言: 项目APP有时候会出现Crash,然后就是弹出系统强制退出的对话框,点击关闭APP。 有的APP进行了处理,会发现,当程序出现异常的时候,会Toast一个提示“程序出现异常,3秒后将退出程序”。
前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意。 当然,项目中我们也许只会用到二维码的扫描和生成两个功能,所以不必下载完整的jar包,使用简化版的即可,下文可见。
前言: 项目中必定用到的数据填写需求。比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等。现总结一下,方便以后使用。 注: 先写实现过程,想要学习的同学可以看看,不需要的同学可以直接拉到最下面复制代码使用。
前言: 最近接触蓝牙开发,主要是通过蓝牙连接获取传感器硬件设备的数据,并进行处理。 网上学习一番,现整理出一套比较标准的 操作流程代码。 如果大家看得懂,将来只需要改下 硬件设备的MAC码 和 改下对接收数据的处理 即可。
前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep。-keep class com.hyphenate.** {*;} -dontwarn com.hyphenate.** 即:混淆规则。
前言: 关于.jar文件: 平时我们Android项目开发中经常会用到第三方的.jar文件。 其实.jar文件就是一个类似.zip文件的压缩包,里面包含了一些源代码,注意的是.jar不包含资源文件(res、图片等) --------------------------------------...
前言:项目用到蓝牙开发,具体蓝牙获取硬件传感器中的数据。 因为没有蓝牙开发的相关经验,决定先了解一些蓝牙开发的知识,再去看之前同事写的蓝牙相关代码。 --------------------------------------------------------------------------------------------------- 一、蓝牙开发相关类 1、BluetoothAdapter 显而易见,蓝牙适配器。
前言: 项目是基于平板开发的,设计的界面是要求横屏展示界面。所以我将所有的Activity都强制设置为横屏 android:screenOrientation="landscape" ------------------------------------------------...
可以使用的功能: 1、获取手机系统版本号 2、获取手机型号 3、获取手机宽度 4、获取手机高度 5、获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID. 6、获取手机sim卡号 7、获取手机号 8、判断sd卡是否挂载 9、获取sd卡剩余空间...
一、介绍 这个类是继承自ImageView的,所以对于这个控件我们可以使用ImageView的所有属性 android.support.design.widget.FloatingActionButton 二、使用准备, 在as 的 build.grade文件中写上 compile 'com.android.support:design:22.2.0' 三、使用说明 xml文件中,注意蓝色字体部分 可以看到我们使用了app属性,则需要在根容器中添加这个属性。
1、短信验证码 当注册用户的时候,会发现收不到短信验证码,打印e : That operation isn't allowed for clients. 含义 - 该操作无法从客户端发起。
一、项目需求: 因为产品对象用于中老年人,所以产品设计添加了APP全局字体调整大小功能。 这里仿做QQ设置字体大小的功能。 QQ实现的效果是,滚动下面的seekbar,当只有seekbar到达某一个刻度的时候,这时候上部分的效果展示部分会改变文字大小, 但是在拖动过程中字体不会改变。
一、启动另一个APP 目前公司项目需求,一个主APP,需要打开某些小APP,这些小APP是整合了Unity的,但是还是android程序(所有小APP的包名是已知的)。 以前没做过,查询了一下实现方法,其实还是挺简单的,测试也可以。
先看下效果:需求是 滑动列表 ,其中一部分视图(粉丝数,关注数这一部分)在滑动到顶端的时候不消失,而是停留在整个界面头部。 我们先分析要解决的问题: 1、如何实现列表ListView顶部视图跟随ListView一起滑动 2、如何实现滑动过程中需要停留在顶部的视图 解决: 第一个问题,实现ListView与顶部视图一起滑动,ListView提供一个方法,addHeadView(View); 意思就是在ListView顶部添加一个View。
DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果。 实现效果如下: 因为是官方提供的,所以使用起来也相对的比较简单。 DrawerLayout 提供 1、当界面弹出的时候,主要内容区会自动背景变黑,当点击内容区的时候,抽屉布局会消失 2、在屏幕边缘手势滑动 会拉出...
Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Generat...
Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Generat...
这是一张QQ空间说说详情的截图。 分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外的部分,该区域消失,灰色界面变回亮白色,并执行点击的按...
大家都玩QQ空间客户端,对于每一个说说,我们都可以评论,那么,对于某一条评论: 白雪公主 回复 小矮人 : 你们好啊~ 我们来分析一下: 1、QQ空间允许我们 点击 回复人和被回复人的名字就可以进入对于用户的个人主页(即点击文字“白雪公主”/“小矮人”,就可以进入到这俩用户相应个人...
实际项目中有这么一个问题,用户进入详情界面,那么我们就要网络加载数据并展现在UI上,这个加载用线程或者异步。 这里就拿项目中统一用异步任务来获取网络数据把。 用户可能会有这么一个操作,它在一个商品(说说等)列表中,点击一个列表项,进入到相应的详情界面,这时候,我们会开启一个异步任务来获取网络数据,但是网络差的情况下, 用户可能就不愿意等了,立马按后退按钮回到列表,点击下一个别的列表项进入详情界面,发现加载太慢,又按后退键,如此反复,那么就导致此时有多个异步任务在执行,或者出现OOM问题,或者出现异步任务等待问题。
不可滑动的ListView (RecyclweView类似) public class NoScrollListView extends ListView { public NoScrollListView(Context context, AttributeSet attrs) {...
先看这段源码介绍: /** * Called when a view created by this adapter has been detached from its window.
ListView是有addHeaderView和 addFooterView两个方法的. 但是作为官方推荐的ListView的升级版RecyclerView缺无法实现这两个方法。 那么如果使用RecyclerView实现这两个方法的效果该怎么做呢? 网上查询了很久,试过各种各样的实现方式,终于让我发现一个还不错的实现方法,那么就给大家推荐一下。
超文本:http://www.baidu.com 这么一个效果:一行文本当中 前面显示黑色颜色的“超文本:”,后面显示红色颜色的“http://www.baidu.com” 并且要求红色字体的部分可以点击,有响应的点击事件进行处理,你该如何实现? 最简单的实现方法,两个TextView ,第一个显示黑色字体的“超文本”,第二个显示红色字体的“http://www.baidu.com”,然给给第二个TextView添加一个点击事件。
google发布了的Android Support Design库中提供了TabLayout 通过TabLayout+ViewPager实现导航栏效果,点击Tab ,ViewPager跟随变化,滑动ViewPager,Tab跟随变化 看效果图: 通过一个Demo来了解TabLayout的简单使用(Android Studio开发),代码中都有注释了 ,很简单 1、build.
项目需求: TextView显示一段文字,格式为:白雪公主(姓名,字数不确定)向您发来了2(消息个数,不确定)条消息 这段文字中名字和数字的长度是不确定的,还要求名字和数字各自有各自的颜色。 一开始我想的是用(转) SpannableString与SpannableStringBuilder来实现,因为它可以实现一段文字显示不同的颜色 但是貌似它只能固定哪些位置的文字显示什么样式,于是乎放弃。
概述: EventBus是一款针对Android优化的发布/订阅事件总线。 主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service。 线程之间传递消息.优点是开销小,代码更优雅,以及将发送者和接收者解耦。
SparseArray 是官方推荐的用来替代 HashMap 的一个工具类,相比来说有着更好的性能(其核心是折半查找函数(binarySearch))。 通过源码来看下SparseArray的一些使用特点: --------------------------------------------...
在程序的manifest文件的application节点加入android:largeHeap=“true” 即可。 对,只需要一句话! 那么这行代码的意思是什么呢? 简单的说就是使该APP获取最大可分配的内存,以便解决OOM问题、 但是、OOM问题出现的原因总得来说有两点: 1、某个手机的内存真的很少 2、代码问题,比如没有处理好Bitmap图片的大小 可以说,出现OOM的情况基本都是第二种情况,那么就需要修改代码,看看哪里没有处理好。
Android 4.0 布局-->GridLayout 网格布局 以行列单元格的形式展示内部控件排列,可以实现类似计算机键盘效果 ,也可以实现可自动变行的标签群效果 使用GridLayout ,有效减少了布局的深度,渲染速度也是很快的 类似于LinearLayout 的使用,额外添加了一...
当你开发的程序被按后退键退出的时候, 你肯定不想让他就这么被finish()吧,那么就想把程序退置到后台就可。 (类似于PC端,你关闭一个浏览器和你最小化一个浏览器的区别) 参看方法:public boolean moveTaskToBack(boolean nonRoot) 参数是一个布尔值...
出现原因,自己把项目地址父层目录文件名修改了,导致原来打开的项目位置不对,代码全部消失。这样就只要关闭项目,打开一下你修改路径下的项目即可。因为原来的项目还在原来的路径下寻找,但是原来的路径发生了改变
出现此错误原因大都为:手机上原来APK存在残留,即没有卸载干净,导致不能安装新的APK 解决办法: 1、手机上手动卸载出现问题的APP,再重新安装 2、如果apk无法卸载,则将apk相关文件和相关内容删除(必须是有root权限的手机)。
前言: 项目中图文混合使用的太多太多了,但是绝大部分都是静态图片。 然而项目开发中有这么一个需求:显示一个出一个简短的动画(一般都不超过3秒)演示 比如说:一个功能提供很多步骤来教用户做广播体操,那么第一步就显示一个3秒钟的动作图,第二步显示一个几秒钟的动作图。
项目总结 -------------------------------------------------------------------------------------------- 有这么一个需求: 我有一个ListView,每一个列表项 布局如上图,顶部一个大图片展示,中部一个音频播放,底部一个描述文字。
首先,众所周知,ListView是Android最常用的控件,可以说是最简单的控件,也可以说是最复杂的控件。 作为一个Android初级开发者,可能会简单的ListView展示图文信息。 作为一个有一定项目开发经验的Android开发者来说,可能会遇到ListView的列表项中存在各种按钮的需求。
项目总结 --------------------------------------------------------------------------------------------------------- 有一个功能模块,需要播放音频,画一个简单的界面 一个例子: 我们都...
一个两年前出来的第三方类库,具有不限于圆形ImageView的多种形状ImageView,项目开发必备 github下载地址:https://github.com/MostafaGazar/CustomShapeImageView 1、首先源码中有一个第三方类库 :library 先要把Library导入到项目中, 不会的可以看下导入方法:关于Eclipse 和 IDEA 导入library库文件 的步骤 2、源码中res文件夹下有一个raw文件夹 复制到自己的项目中(选择性复制,是一些特殊的图形) 可以看到这里有一堆.svg格式的文件。
想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择。 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大小将以内容的宽高来决定 可以看到设置为Theme.
Android RecyclerView 是Android5.0推出来的,导入support-v7包即可使用。 个人体验来说,RecyclerView绝对是一款功能强大的控件。 首先总结下RecyclerView的特点: 1.
开发中,接口回调是我们经常用到的。 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行。 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A可以继续先做别的事情。
Android使用MediaRecorder类进行视频的录制。 需要注意,使用MediaRecorder 录音录像 的设置代码步骤一定要按照API指定的顺序来设置,否则报错 步骤为: 1、设置视频源,音频源,即输入源 2、设置输出格式 3、设置音视频的编码格式 一、首先看布局文件,...
圆形图片相必是项目开发中也是不少用的一个知识点吧。 那么这里学习一下简单的制作圆形图片,主要运用 BitmapShader 类的知识来实现 一、首先,了解一下 BitmapShader 类 BitmapShader是Shader的子类,可以通过Paint.
首先,我们需要知道,悬浮窗分为两种:Activity级别的悬浮窗,系统级别的悬浮窗 Activity级别的悬浮窗跟随所属Activity的生命周期而变化,而系统级别的悬浮窗则可以脱离Activity而存在。
Android为intent提供了两种传递对象参数类型的方法 分别需要使实体类实现Serializable接口、Parcelable接口 首先我们要知道,传递对象,需要先将对象序列化 一、那么为什么要对象序列化 1、永久性保存对象,保存对象的字节序列到本地文件中; 2、用过序列化对象在网络中、进程间传递对象; 二、序列化对象什么时候实现Serializable接口,什么时候实现Parcelable接口接口 1、Parcelable不能使用将数据存储在磁盘上,因为Parcelable在外界有变化的情况下不能很好的保存数据的持续性。
一、什么是非对称加密 1、加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2、密钥分为:公钥,私钥 公钥:可以对外给任何人的加密和解密的密码,是公开的 私钥:通过私钥可以生成公钥,但从公钥被认为无法生成公钥(被推导出的概率小到不考虑) 3、当将要加密的内容用公...
这里我们以PullToRefresh(上拉刷新下拉加载)组件的library为例 下载地址: https://github.com/chrisbanes/Android-PullToRefresh 现在我们需要把library文件夹导入到Eclipse或者IDEA中去 一、IDEA...
一、DES加密算法介绍 1、要求密钥必须是8个字节,即64bit长度 2、因为密钥是byte[8] , 代表字符串也可以是非可见的字节,可以与Base64编码算法一起使用 3、加密、解密都需要通过字节数组作为数据和密钥进行处理 二、对称加密 DES加密算法属于对称加密。
一、为什么要用URLEncoder 客户端在进行网页请求的时候,网址中可能会包含非ASCII码形式的内容,比如中文。 而直接把中文放到网址中请求是不允许的,所以需要用URLEncoder编码地址, 将网址中的非ASCII码内容转换成可以传输的字符 不会被编码的内容 1.
一、什么是Hex 将每一个字节表示的十六进制表示的内容,用字符串来显示。 二、作用 将不可见的,复杂的字节数组数据,转换为可显示的字符串数据 类似于Base64编码算法 区别:Base64将三个字节转换为四个字符,Hex将三个字节转换为六个字节 三、应用场景 在XML,JS...