android
文章平均质量分 87
qq_36699930
这个作者很懒,什么都没留下…
展开
-
Android 实现流式布局的几种方式和FlexboxLayout的使用
Github地址依赖dependencies { implementation 'com.google.android:flexbox:2.0.1'}什么是FlexboxLayout那么FlexboxLayout 它到底是个什么东西呢?看一下Github对这个库的介绍:FlexboxLayout is a library project which brings the similar capabilities of CSS Flexible Box Layout Module to A原创 2021-01-11 20:02:54 · 2901 阅读 · 4 评论 -
Android 加载进度条,加载成功,数据为空,加载失败,无网络等状态不同界面的切换
https://blog.csdn.net/zhaozhuzi/article/details/73822894https://blog.csdn.net/qq_34115167/article/details/80719219?utm_source=blogkpcl0https://blog.csdn.net/qq_21376985/article/details/52847317原创 2020-11-11 18:39:48 · 1261 阅读 · 0 评论 -
Android RxLifecycle使用详解
简单介绍RxLifecycle使用原因:在使用rxjava的时候,如果没有及时解除订阅,在退出activity的时候,异步线程还在执行。对activity还存在引用,此时就会产生内存泄漏。RxLifecycle就是为了解决rxjava导致的内存泄漏而产生的。RxLifecycle可以做到什么呢?它可以让Observable发布的事件和当前的组件绑定,实现生命周期同步。从而实现当前组件...原创 2020-03-11 23:29:05 · 4823 阅读 · 0 评论 -
android 实现微信分享
微信开放平台创建应用创建应用注意事项应用官网:随便写个正确格式的url。上传移动应用图片大小要符合要求。应用签名。把带签名 的apk文件安装至手机中。安装微信的签名生成工具,打开GenSignature应用程序,填写你App的包名,点击“Get Signature”即可得到签名。点击下载 签名生成工具Android接入指南官方文档1.申请你的 AppID请到 ...原创 2019-12-04 22:51:05 · 1617 阅读 · 1 评论 -
Android Studio的下载,安装,配置,插件
Android Studio下载下面三个地址都可以下载:https://developer.android.google.cn/studiohttp://www.android-studio.org/https://www.androiddevtools.cn/Android Studio安装步骤双击安装包:依次出现以下界面,点击next即可:设置AS安装路径:这里...原创 2019-05-14 22:23:49 · 11839 阅读 · 2 评论 -
Android ViewTreeObserver使用总结
ViewTreeObserver这是一个注册监听视图树的观察者(observer),当视图树的布局,视图树的焦点,视图树将要绘制,视图树滚动等发生改变时,ViewTreeObserver都会收到通知,都会有回调,ViewTreeObserver不能被实例化,可以通过getViewTreeObserver()来获得。ViewTreeObserver提供了查看的多种监听,每一种监听都有一个内部类接口...原创 2019-01-22 14:11:01 · 1550 阅读 · 0 评论 -
Android热修复(2):AndFix热修复框架的使用
AndFix的github地址AndFixAndFix是一个在线修复bug的解决方案,而不是重新发布Android应用程序。它是以Android库的形式发布的。Andfix是“Android热修复”的缩写。AndFix支持Android版本从2.3到7.0,ARM和X86架构,Dalvik和ART runtime, 32位和64位。AndFix补丁的压缩文件格式是.apatch。它从您自...原创 2018-11-30 09:36:17 · 253 阅读 · 1 评论 -
Android多渠道打包
多渠道打包一般应用于向不同应用市场提交app后用来统计不同渠道下载量等一些信息。什么是多渠道包?渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等为什么要提供多渠道包?我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计(这就是添加渠道信息的用处)。实现多渠道打包的原理一般来讲,这个渠道的标...原创 2020-11-10 10:56:08 · 2103 阅读 · 0 评论 -
android应用内多进程的实现
Android应用内多进程的介绍正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中,就需要用到android:process属性了。我们可以为android的基础组件指定process属性来指定它们运行在指定进程...原创 2019-05-20 10:25:17 · 1341 阅读 · 0 评论 -
Android ExpandableListView使用(3): ExpandableListView实现三级列表
ExpandableListView 使用解析(三级列表的实现)在往常的设计中,往往有类似于QQ的二级列表的样式,而使用ExpandableListView变可以实现这种类似的效果。当然,如果ExpandableListView嵌套ExpandableListView便可以实现三级列表,甚至多级条目,而本博客最终的实现效果便是三级条目。效果图: 实体类:package c...原创 2018-03-21 10:47:59 · 1714 阅读 · 4 评论 -
Android常用加密方式
加密解密简介加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。加迷解密分类分为不可逆和...原创 2019-05-16 23:56:10 · 3577 阅读 · 1 评论 -
Fragment懒加载
为什么需要懒加载?我们在做安卓项目的时候,经常会有一个使用场景:ViewPage与多个Fragment组合使用。然而,viewpager有着预加载机制:默认一次加载当前页面前后两个页面,即使设置setOffLimit(0)也没有效果。 虽然预加载优化了app的体验效果,但是这样把我们看不到的页面的数据也加载了,大大降低了性能,浪费初始化资源。这时候,我们就需要懒加载。什么是懒加载?页面...原创 2019-05-16 01:49:27 · 2100 阅读 · 0 评论 -
OkHttp3详细使用教程
OkHttp官网地址:http://square.github.io/okhttp/OkHttp GitHub地址:https://github.com/square/okhttp implementation("com.squareup.okhttp3:okhttp:3.12.0")get同步请求 /** * 放在子线程中执行 */原创 2018-11-22 11:04:20 · 5015 阅读 · 1 评论 -
android线程池工具类
(1)当currentSize<corePoolSize时,没什么好说的,直接启动一个核心线程并执行任务。(2)当currentSize>=corePoolSize、并且workQueue未满时,添加进来的任务会被安排到workQueue中等待执行。(3)当workQueue已满,但是currentSize<maximumPoolSize时,会立即开启一个非核心线程来执行任务。(4)当currentSize>=corePoolSize、workQueue已满、并且curr原创 2018-05-22 10:34:46 · 5358 阅读 · 0 评论 -
ListView的万能适配器和ListView的多布局
CommomAdapter:public abstract class CommomAdapter<T> extends BaseAdapter { private Context mContext; private List<T> mDataList; private int mResID; @Override publ...原创 2018-05-22 08:47:34 · 270 阅读 · 0 评论 -
基于HttpURLConnection 网络请求工具类的封装
HttpUtils:/** * Created by xiaoyehai on 2018/5/21 0021. */public class HttpUtils { //线程池 private static ExecutorService executor; private static Handler mHandler; static { ...原创 2018-05-21 15:17:14 · 3904 阅读 · 2 评论 -
android 原生下拉刷新控件SwipeRefreshLayout的使用
SwipeRefreshLayout是一种下拉刷新的组件,它被放到了V4包中,只允许有一个直接子类。使用SwipeRefreshLayout可以实现下拉刷新,前提是布局里需要包裹一个可以滑动的子控件,然后在代码里设置OnRefreshListener设置监听,最后在监听里设置刷新时的数据获取就可以了。主要方法:1.isRefreshing()判断当前的状态是否是刷新状态。2...原创 2018-05-11 15:28:32 · 1338 阅读 · 0 评论 -
Fragment切换
案例一:MainActivity:package com.xiaoyehai.switchfragment;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;...原创 2018-04-18 11:00:44 · 169 阅读 · 0 评论 -
Android ExpandableListView使用(2):使用集合封装数据
使用集合封装数据:效果图: 上一篇已经详细介绍了ExpandableListView的用法,不多说,直接上代码实体类:package com.xiaoyehai.expandablelistviewdemo.bean;import java.util.List;/** * Created by xiaoyehai on 2018/3/15 0015. */pu...原创 2018-03-21 09:26:11 · 514 阅读 · 2 评论 -
Android ExpandableListView使用(1):使用二维数组封装数据
ExpandableListView 是什么?一种用于垂直滚动展示两级列表的视图,和 ListView 的不同之处就是它可以展示两级列表,分组可以单独展开显示子选项。这些选项的数据是通过 ExpandableListAdapter 关联的。效果图:1.布局文件: <ExpandableListView android:id="@+id/expand_li...原创 2018-03-20 17:30:57 · 727 阅读 · 1 评论 -
ListView嵌套CheckBox滑动时CheckBox选中状态错乱
ListView嵌套CheckBox滑动时CheckBox选中状态错乱解决方法原创 2017-12-30 14:28:31 · 573 阅读 · 0 评论 -
Android使用ShareSDK集成第三方登录和分享(v3.1.2)
一.产品概述ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。二.集成方式1.Maven集成使用ShareSDK maven集成方式,不需要在AndroidMainfest.xml下面配置任何权限和Activity (1)打开项目根目录的gradle原创 2018-01-12 11:42:44 · 8337 阅读 · 4 评论 -
DrawerLayout:安卓原生侧滑控件的使用
DrawerLayout最好为界面的根布局,官网是这样说的,否则可能会出现触摸事件被屏蔽的问题 1.主内容视图一定要是DrawerLayout的第一个子视图 2.主内容视图宽度和高度需要match_parent 3.必须显示指定侧滑视图的android:layout_gravity属性 android:layout_gravity = “start”时,从左向右滑出菜单 android原创 2017-08-14 17:44:56 · 293 阅读 · 0 评论 -
android解决65536问题
第一步,修改主module的build.gradle文件在gradle中依赖multidex,并启用multiDexEnable:android { compileSdkVersion 21 buildToolsVersion defaultConfig { ... minSdkVersion 14 targe原创 2017-08-11 10:30:36 · 262 阅读 · 0 评论 -
LruCache和DiskLruCache
为了保证内存的使用始终维持在一个合理的范围,通常会把被移除屏幕的图片进行回收处理。此时垃圾回收器也会认为你不再持有这些图片的引用,从而对这些图片进行GC操作(garbage collection:垃圾回收)。用这种思路来解决问题是非常好的,可是为了能让程序快速运行,在界面上迅速地加载图片,你又必须要考虑到某些图片被回收之后,用户又将它重新滑入屏幕这种情况。这时重新去加载一遍刚刚加载过的图片无疑是性...原创 2018-05-22 15:00:13 · 1061 阅读 · 0 评论 -
Retrofit2详解
Retrofit框架: 它是Square公司开发的现在非常流行的网络框架retrofit2.0它依赖于OkHttp,在这里我们也不需要显示的导入okHttp,在retrofit中已经导入okhttp3 性能好,处理快,使用简单,Retrofit 是安卓上最流行的HTTP Client库之一github地址使用步骤: 1、定义一个接口(封装URL地址和数据请求) 2、实例化R...原创 2018-11-19 10:21:06 · 19564 阅读 · 7 评论 -
android 反编译
Android的反编译主要又分为两个部分,一个是对代码的反编译,一个是对资源的反编译,我们马上来逐个学习一下。 工具介绍:apktool 作用:主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)dex2jar 作用:将apk反编译成Java源码(classes.dex转化成jar文件)...原创 2018-08-17 09:56:06 · 1075 阅读 · 0 评论 -
android 定位功能的实现
在Android开发其中。常常须要用到定位功能,尤其是依赖于地理位置功能的应用。非常多人喜欢使用百度地图,高德地图提供的sdk。开放API,可是在只须要经纬度,或者城市,街道地址等信息。并不须要提供预览地图,地图界面的应用中。这时,不须要使用百度地图。高德地图。这样做只会添加apk的体积。怎么办呢?事实上LocationManager,Geocoder这些Android API给我们提供的这些...原创 2018-08-22 15:47:25 · 13983 阅读 · 6 评论 -
android学习SeekBar的使用和自定义样式
SeekBar的主要属性和方法(1)setMax — 设置SeekBar的最大数值 (2)setProgress — 设置SeekBar的当前数值 (3)setSecondProgress—设置SeekBar的第二数值SeekBar的事件由于拖动条可以诶用户控制。所以需要对其事件监听,这就需要实现SeekBar.OnSeekBarChangeListner接口,此接口共需监听。...原创 2018-08-16 16:17:50 · 21643 阅读 · 0 评论 -
Android动态申请权限,RxPermissions
android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户。在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予。这样就不需要在安装时被强迫同意某些权限。官网的写法 public void requestPower() { //判断是否已经赋予权限 i...原创 2018-08-13 15:43:04 · 596 阅读 · 0 评论 -
Android实现拍照(兼容7.0)
在7.0以前,调用相机拍照 /** * 拍照 * * @param view */ @Event(R.id.btn_photo) private void takePhoto(View view) { //启动照相机拍照 Intent intent = new Intent(MediaStore.ACTIO...原创 2018-08-09 14:52:38 · 628 阅读 · 0 评论 -
Android多级树形选择列表
项目中有多个地方要用到多级列表的菜单,最开始我用的是ExpandableListView,但问题是ExpandableListView只支持两级列表,于是我就用ExpandableListView嵌套ExpandableListView,但非常麻烦,而且关键的是具体分几级是不确定的,也就是可能一级,可能多级,这要是五六级嵌套ListView,于是我就去学习鸿洋大神之前写的一篇关于实现Android...原创 2018-07-13 16:39:30 · 4074 阅读 · 2 评论 -
EventBus使用详解
EventBus由greenrobot组织贡献(该组织还贡献了greenDAO),一个Android事件发布/订阅轻量级框架。 当我们进行项目开发的时候,往往是需要应用程序的各组件、组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家可以通过Listener进行通信等等。当我们的项目越来越复杂,使用Int...原创 2018-07-13 15:35:00 · 563 阅读 · 0 评论 -
Material Design(一)
1.FloatingActionButtonFloatingActionButton就是一个漂亮的按钮,其本质是一个ImageVeiw。有一点要注意,Meterial Design引入了Z轴的概念,就是所有的view都有了高度,他们一层一层贴在手机屏幕上,而FloatingActionButton的Z轴高度最高,它贴在所有view的最上面,没有view能覆盖它。 &lt;android...原创 2018-07-24 09:49:59 · 954 阅读 · 0 评论 -
使用HorizontalScrollView和ListView实现左右和上下都可以滑动的列表布局
在项目的进行中要用到左右滑动又能上下滑动的列表布局,使用一个HorizontalScrollView嵌套一个ListView可以很好的实现。效果图: 布局:&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;RelativeLayout xmlns:android="http://schemas.android.原创 2018-07-23 14:30:00 · 2575 阅读 · 0 评论 -
Android图表库MPAndroidChart使用教程
github地址集成allprojects { repositories { maven { url 'https://jitpack.io' } }}dependencies { implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'}1.柱状图 BarChartX轴:XA...原创 2018-06-25 15:52:13 · 885 阅读 · 0 评论 -
PopupWindow的使用和封装
PopupWindow,顾名思义,就是弹窗,在很多场景下都可以见到它,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。Android 中的弹窗基本有两种,一种是AlertDialog,另一种是PopupWindow**,AlertDialog的显示位置是固定的,PopWindow 的显示位置是我们可以设置和调整的**,因此,像项目中的一些场景如:某个功能的提...原创 2018-06-15 16:13:39 · 617 阅读 · 0 评论