
Android
文章平均质量分 94
SunnyRivers
在通信、游戏、互联网、新能源等不同行业从事过多年大数据开发相关工作,想通过博客和大家一起分享大数据技术带来的经验和乐趣。
展开
-
开发常用网址
Android资源下载地址http://www.androiddevtools.cn/ AndroidStudio中文网 http://www.android-studio.org/Eclipse下载网址http://www.eclipse.org/downloads/开源项目集合网站http://www.23code.com/http://a.c原创 2017-10-11 23:30:33 · 522 阅读 · 0 评论 -
API级别官方全解
官网链接:https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element.html本文内容什么是 API 级别?API 级别在 Android 中的使用开发注意事项应用向前兼容性应用向后兼容性选择平台版本和 API 级别声明最低 API 级别针对更高 API 级别进原创 2017-12-19 17:36:42 · 10662 阅读 · 0 评论 -
Toolbar的简单使用和封装
因为Actionbar的扩展性比较弱,所以一般都是自定义一个titlebar,但是现在有了toolbar,完全可以解决任何头布局的显示。简单封装后的效果是这样的:代码:public class MyToolbar { private Toolbar mToolbar; private AppCompatActivity mActivity原创 2017-11-12 00:00:06 · 467 阅读 · 0 评论 -
android design library提供的TabLayout的用法
在开发中,我们常常需要ViewPager结合Fragment一起使用,如下图:1我们可以使用三方开源的PagerSlidingTabStrip去实现,或者viewpagerindicator,我一般都偏向前者。现在我们可以使用Design support library库的TabLayout去实现了。最终的效果图:效果图创建布局转载 2017-11-30 14:46:24 · 308 阅读 · 0 评论 -
Android使用Http访问网络
Android6.0(API23)系统之后,Android上发送HTTP请求的方式只有一种HttpUrlConnection基本用法:通过一个执行路径的URL,获取到HttpUrlConnection对象,然后就可以获取到服务器端的二进制数据,最后将二进制数据转为可以阅读的的数据。public class HttpUrlConnectionActivity extends AppCom原创 2017-11-30 14:37:41 · 1257 阅读 · 0 评论 -
关于HTTP协议,一篇就够了
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信转载 2017-11-30 13:41:27 · 413 阅读 · 0 评论 -
Android数据库框架总结
一:OrmLite简述: 优点: 1.轻量级;2.使用简单,易上手;3.封装完善;4.文档全面。缺点:1.基于反射,效率较低(本人还没有觉得效率低);2.缺少中文翻译文档jar包 地址:http://ormlite.com/releases/集成方法:把jar包复制到as的libs文件夹下,并且引用jar包即可用于学习的相关博客:我的博客转载 2017-11-30 08:51:59 · 1553 阅读 · 0 评论 -
App常用图标使用规范
Android开发中UI切的图标不是随便乱放的,我们需要根据图标的尺寸大小放在对应的目录下。我们可以根据上图中的icon尺寸找出对应的drawable目录,放入即可。下面总结一些常用的图标尺寸:1. 程序启动图标:LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。MDPI (Medium Density Sc原创 2017-11-16 22:59:17 · 3262 阅读 · 0 评论 -
解码Base64并展示图片
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和原创 2017-10-17 14:23:18 · 112500 阅读 · 0 评论 -
清除缓存功能
清除缓存的功能在app中还是经常可以碰到的,虽然实现起来很容易,但每次做的时候都还是得上网搜一把,还是自己总结一下。思路:(额...还真算不上什么思路...就一句话)点击清理缓存,调用清除缓存的方法,并弹清除缓存进度条,当缓存的大小等于0的时候,隐藏进度条,并吐司“缓存清理完毕”。app展示:主要代码:(只展示清除图片的缓存,其他类似)private void sh原创 2017-10-19 15:29:54 · 1105 阅读 · 0 评论 -
Android的Fragment中onActivityResult不被调用的解决方案
Fragment中的onActivityResult不被调用,有几种情况,请大家一一排查。 1.检查该Fragment所属的Activity中,是否重写了onActivityResult方法。如果是该种情况,请确保写了super.onActivityResult:Java代码 @Override protected void onActi原创 2017-12-20 15:26:38 · 5544 阅读 · 0 评论 -
Android调用系统相册、拍照以及裁剪最简单的实现(兼容7.0)
这里我只实现功能,具体Android 7.0 的一些细节参考 http://blog.youkuaiyun.com/lmj623565791/article/details/72859156具体步骤:一、在清单文件中配置provider<provider android:name="android.support.v4.content.FileProvider" android原创 2017-12-20 16:42:38 · 8078 阅读 · 0 评论 -
Activity过渡动画
Android5.0之前我们一般会使用overridePendingtransition(int inId, int outId)来给Activity增加一些切换动画,但效果差强人意。Android5.0中提供了三种Transition类型:进入:一个进入的过渡动画决定Activity中的所有视图怎么进入屏幕。退出:一个退出的过渡动画决定一个Activity中的所有视图怎么退出屏幕。共原创 2018-01-17 10:54:56 · 661 阅读 · 0 评论 -
模仿作业帮、猿题库搜题功能(包含图片文字识别)
项目中需要一个图片识别功能,于是在网上搜了一波,没有想到操作尽然如此的简单。app展示:这里对于详细的知识还没有深入研究,目前只是知道实现的流程而已,下面是应用到的所有资料https://github.com/tesseract-ocr/tessdata 语言https://github.com/rmtheis/tess-two 编译好的字典jar包https:/原创 2018-01-03 17:54:23 · 22101 阅读 · 11 评论 -
PopupWindow正确使用方式
开发模板代码:View view1 = LayoutInflater.from(this).inflate(R.layout.first_pop, null);PopupWindow popupWindow = new PopupWindow(view1, LinearLayout. LayoutParams.WRAP_CONTENT, LinearLay原创 2017-12-27 16:00:16 · 615 阅读 · 0 评论 -
版本兼容解决方法
Android开发过程中,会遇到这样的情况,由于业务需求的改变,接口中的参数有可能也会改变,如果处理不好,会导致旧版本奔溃。客户端处理:强制用户更新:弹出对话框,没有取消按钮,也不允许用户按返回键,这样用户只能更新了(简单暴力,但用户体验差)。服务器端处理:不同的版本给不同的接口(哈哈,比较low,但是好实现)。参考 :https://www.cnblogs.com/dahe0原创 2017-12-19 14:05:26 · 859 阅读 · 0 评论 -
Dialog对话框全解
着重说明(官方):☆☆☆☆☆1.Dialog是对话框的基类,最好不要直接实例化Dialog,而应使用它的子类AlertDialog2.最好的写法就是讲DialogFragment作为容器,搭配AlertDialog使用(因为这样能更好的处理生命周期)3.如果你想自定义对话框,建议不要使用Dialog,而直接使用Activity的对话框(注意:一定要记牢上面三句话,这样你才能灵活自如原创 2017-12-27 09:50:34 · 764 阅读 · 0 评论 -
WebView的详细讲解
WebView详解基本用法清单文件配置WebView<WebView android:id="@+id/wv_news_detail" android:layout_width="match_parent" android:layout_height="match_parent" />WebView加载网页//加载网页链接mWeb原创 2017-12-06 17:05:25 · 447 阅读 · 0 评论 -
Android6.0动态权限
Android6.0对于程序员来说最大的改变就是运行时权限,其目的就是让用户可以直接在运行时管理应用权限。从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的原创 2017-12-22 10:43:14 · 699 阅读 · 0 评论 -
本地广播LocalBroadcastManager简单使用
/** * 由于系统的全局广播可以被任何应用程序接收到,并且我们也可以接收来自任何程序的广播 * 这样很容易引起安全问题,因此Google引入的本地广播LocalBroadcastManager */public class MainActivity extends AppCompatActivity { private Button mBtnSe原创 2017-03-19 16:34:05 · 855 阅读 · 0 评论 -
Retrofit的讲解和使用
Retrofit适用于Android和Java的类型安全的HTTP客户端声明API接口方法及参数的注解用于控制一个请求.请求方法每一个方法必须带有一个HTTP注解, 用于提供相应的请求方法和URL. 目前有5种内置的注解: GET , POST , PUT , DELETE和 HEAD . 注解中指定了相应的URL.@GET("users/list")您还可以指定U原创 2017-04-15 11:59:45 · 1108 阅读 · 1 评论 -
夜间模式(模仿喜马拉雅FM)
经常玩喜马拉雅FM的app,看到它的夜间模式的实现和其他的都不一样,仅仅是通过改变屏幕的亮度来实现。感觉这种方式比起换肤来说更加简洁。实现思路:1.在程序入口后的第一个Activity中:(1)获取系统当前的亮度(2)保存系统当前的亮度(3)如果系统打开了自动调节亮度则关闭,并记录2.在有夜间模式开关的界面中:(1)初始化开关后,先判断之前开关的状态,修改对应的UI原创 2017-10-19 14:04:43 · 2491 阅读 · 2 评论 -
Android程序中回调的讲解和使用
什么是回调:回调函数就是通过函数指针(Android中的引用)调用的函数。如果你把参数指针作为参数传递给另外一个函数,当这个指针被用来调用其指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在待定的事件或条件发生时,由另外的函数调用,对于该事件或条件进行响应。(什么鬼,这是百度百科的解释,作为Android开发人员,如果没有C语言基础,可能看的一头雾水)原创 2017-03-23 16:15:43 · 804 阅读 · 0 评论 -
OkHttp基本用法
public class MainActivity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2017-03-24 10:07:16 · 446 阅读 · 0 评论 -
EventBus全面讲解和案例
EventBus(https://github.com/greenrobot/EventBus)EventBus is a publish/subscribe event bus optimized for Android.(EventBus是Android的发布/订阅事件总线优化。) 1.simplifies the communication between components(原创 2017-03-26 12:35:21 · 529 阅读 · 0 评论 -
JSON全面讲解
JSON全面讲解一、Json简介 概念:JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。 优点: (1)本质就是具有特定格式的字符串 (2)JSON完全独立于编程语言 (3)JSON比XML数据传输的有效性要高出很多,更省流量 缺点:语义性较差,不如XML直观二、JSON原创 2017-04-06 23:48:20 · 3493 阅读 · 1 评论 -
ViewPager使用讲解
ViewPager的使用讲解ViewPager的几个主要逻辑:一、自动轮播逻辑:1.使用Handler发送一个延时消息来启动自动轮播2.在handleMessage方法中,先获取当前页面,然后将当前页面在使用之前设置为下一页(可以切换到下一页)3.在在handleMessage方法中,继续发送一个延时消息,这样就可以不断的轮播了二、手指按下的时候停止轮播,抬起继续轮播逻原创 2017-05-23 12:31:07 · 507 阅读 · 0 评论 -
AndroidStudio快捷键大全
经常用的快捷键:Alt+Enter:快速修复(俗称:万能建)Ctrl+X:剪切当前行Ctrl+Y :删除当前行Ctrl+D :复制当前行Ctrl+Alt+L:格式化(同Eclipse中Ctrl+Shift+F)Ctrl+Alt+M:抽取方法(同Eclipse中Alt+Shift+M)Ctrl+Alt+F: 快捷生成成员变量 (同Eclipse中Ct原创 2017-05-22 23:13:22 · 597 阅读 · 0 评论 -
ListView下拉刷新和上拉加载原理
ListView的下拉刷新逻辑:一、获取ListView的头布局的高度并通过给头布局setPading方法,将头布局隐藏二、重写ListView的onTouchEvent方法计算出滑动的偏移量dy三、通过比较偏移量和头布局的高度,进行UI的修改ListView上拉加载逻辑:一、获取ListView的脚布局的高度并通过setPading方法,将头布局隐藏二、调用ListVie原创 2017-05-22 22:54:14 · 481 阅读 · 0 评论 -
View的滑动方法
基本思想:当触摸View时,系统记下当前触摸点的坐标;当手指移动时,系统记下移动后的触摸点坐标,从而获取到相对于前一次坐标点的偏移量,并通过偏移量来修改View的坐标,这样不断重复,从而实现滑动过程。先看一下简单的app:方法一:layout方法原理:我们知道,View进行绘制时,会调用onLayout方法来设置显示的位置。同样,可以通过修改View的left、top、原创 2017-05-01 20:57:08 · 342 阅读 · 0 评论 -
触控事件MotionEvent
MotionEvent中封装的一些常用的事件常量://单点触摸按下动作public static final int ACTION_DOWN = 0;//单点触摸抬起动作public static final int ACTION_UP = 1;//触摸点移动动作public static final int ACTION_MOVE原创 2017-05-01 19:05:41 · 483 阅读 · 0 评论 -
模仿QQ带侧边栏框架搭建
侧边栏的实现经常使用的两种方法App展示:方法一:SlidingMenuhttps://github.com/jfeinstein10/SlidingMenu在GitHub上下载SlidingMenu文件,解压后,将library库导入到AndroidStudio项目中导入方法:File--New--ImportModule--选择解压完的SlidingMenu原创 2017-05-15 17:59:07 · 1075 阅读 · 0 评论 -
HandlerThread使用
优点:1.制作一个后台异步线程,需要的时候可以丢一个任务给它,使用灵活2.可以避免项目中随处可见的new Thread().start(),增加系统开销3.可以代替Thread+looper+handlerd的写法缺点:1.不要执行太耗时的任务((此种情况就用线程池吧:http://blog.youkuaiyun.com/android_xue/article/details/6289原创 2017-05-29 12:40:34 · 394 阅读 · 0 评论 -
持久化存储技术之本地存储
数据持久化是指:将那些内存中(即程序中)的瞬时数据保存到存储设备中。一、文件存储:把所有数据原封不动地保存到文件中。使用范围:存储一些简单的文本数据或二进制数据。如果想要存储一些复杂的数据,就需要定义一套自己的格式规范,这样方便于之后将数据从文件中重新解析出来。优点:可以存储大数量的数据,比较稳定、存储方便、操作简单、更加安全(因为可以控制访问权限)。缺点:文件更新或是原创 2017-05-30 16:16:33 · 949 阅读 · 0 评论 -
Java中Xml文件的解析
开发中比较常见的解析方式有三种,如下:1. DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。b) 缺点:XML文档过大,可能出现内存溢出显现。2. SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件。(了原创 2017-10-17 20:04:20 · 500 阅读 · 0 评论 -
设置背景透明度
一般UI给你切完图,可能让你自己设置一下背景图片的透明度,比如说他说设置透明度为50%(1)在xml布局文件中设置透明度分为256阶(0-255),计算机上用16进制表示为(00-ff)。透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。比如说UI给你的颜色是#020102然后他说设置60%的透明度,我们先计原创 2017-07-25 10:15:11 · 2069 阅读 · 0 评论 -
底部栏
我只想说BottomNavigationBar太坑了,好多东西都需要修改源码才能使用,底部栏我感觉最屌的就是线性布局,当然也可以是RadioGroup+RadioButton。public abstract class BaseFragment extends Fragment { public Activity mActivity; //给Fragment的子类当做上下文使用原创 2017-08-03 22:48:35 · 460 阅读 · 0 评论 -
Pull解析Xml文件
好久没有解析xml文件了,居然都快忘了,这两天后台居然返回的xml格式的数据,尼玛,好吧,随意在整理整理一、什么是xmleXtensiable Markup Language 可扩展标记语言标记语言:由标签(标记)构成的语言。标记语言不是编程语言 可扩展:所有的标签都是自定义的。没有预定义的二、xml的作用做数据存储作为配置文件作为数据载体,在网络中传输原创 2017-08-01 09:38:35 · 632 阅读 · 0 评论 -
WindowManager添加一个悬浮的Window
最近有这样一个需求,直接看App:点击按钮可以让Activity进入后台(注意:不是finish),然后自己可以在手机上做其他事情,在点击按钮,就可以返回。这个主要的逻辑就是在Appliction中加载这个按钮的布局,然后添加到WindowManager中,直接看代码:public class MyApplication extends Application原创 2017-07-08 22:37:04 · 1035 阅读 · 1 评论 -
手势识别器GestureDetector
手势检测用于辅助检测用户的单击、滑动、长按、双击等行为。当然我们完全可以在View的onTouchEvent方法中实现所有的监听,但有的时候用手势识别器更方便,比如说:监听用户双击行为。它的使用步骤很简单,就两步:1.创建GestureDetector对象并实现OnGestureDetectorListener或者OnDoubleTapListener(监听双击行为)接口2.为了让我们原创 2017-06-23 22:50:14 · 890 阅读 · 0 评论