自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (3)
  • 收藏
  • 关注

原创 Gzip压缩与解压

/** * 压缩 * @param unGzipStr * @return */public static String GzipCompress(String unGzipStr) { if (TextUtils.isEmpty(unGzipStr)) { return null; } try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); GZIP.

2020-10-28 10:52:05 220

原创 Android常见技巧---App按返回键退出程序但不销毁

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(false); return true; } return super.onKeyDown(keyC...

2018-09-12 10:44:00 1749

原创 比较App版本大小

// 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0public static int compareVersion(String version1, String version2) { if (version1 == null || version2 == null) { return -1; } String[] ver...

2018-08-02 10:16:04 1061

原创 Android6.0以上动态权限申请

在Android6.0之前只需在AndroidManifest.xml文件写明权限即可。但是在Android6.0之后也就是SDK>=23的时候,一些隐私权限需要动态申请,而且在用户同意授权之后App才能拥有该权限。 private void checkPermission() {    //检查权限(NEED_PERMISSION)是否被授权 PackageManager.PERMI...

2018-07-31 17:03:33 425

原创 使用socket建立长连接

服务端代码:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket; publi...

2018-07-31 16:59:35 1066 1

原创 Android——图片设置为高斯模糊效果(ImageView)

效果图://模糊Resources res = ShowActivity.this.getResources();//拿到初始图Bitmap bmp= BitmapFactory.decodeResource(res,R.mipmap.user);//处理得到模糊效果的图Bitmap blurBitmap = ImageFilter.blurBitmap(this, bmp, 20f);...

2018-02-23 14:51:51 7721

原创 Glide的使用

Picasso是不支持加载GIF图片的!!!依赖dependencies {    compile 'com.github.bumptech.glide:glide:3.7.0'}网络权限<uses-permission android:name="android.permission.INTERNET" />http://www.cndog.net/tpb/2013-12/14/14...

2018-02-23 14:41:23 273

原创 Fresco的属性

依赖: compile 'com.facebook.fresco:fresco:0.11.0'xmlns:fresco="http://schemas.android.com/apk/res-auto "<com.facebook.drawee.view.SimpleDraweeView        android:id="@+id/my_image_view"      android:...

2018-02-23 14:30:56 269

原创 Android——一些常用的自定义View

效果图:自定义ViewMyLinearLayout.javapublic class MyLinearLayout extends ViewGroup { private int marginTop = 50; private int marginLeft = 50; private int initTop = 50; priv

2018-01-18 16:29:30 528

原创 Android————AndFix热修复

AndFix介绍:AndFix,全称是Android hot-fix。是阿里开源的一个Android热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 6.0。依赖:compile 'com.alipay.euler:andfix:0.3.1@aar'MainActivity.javapublic class MainActivity extends A

2018-01-18 15:43:14 335

原创 Android——APP多渠道打包

1.添加友盟统计依赖库compile 'com.umeng.analytics:analytics:latest.integration'allprojects {     repositories {             mavenCentral()         } }2.Manifest中配置权限和Keyuses-permission android:name="android.per

2017-12-29 09:13:09 438

原创 Android——断点续传(下载)

断点续传的原理:断点续传和断点下载都是用的RandomAccessFile, 它具有移动指定的文件大小的位置的功能seek 。断点续传是由服务器给客户端一个已经上传的位置标记position,然后客户端再将文件指针移动到相应的position,通过输入流将文件剩余部分读出来传输给服务器断点下载 是由客户端告诉服务器已经下载的大小,然后服务器会将指针移动到相应的position,继续读出,把文件返回

2017-12-29 09:07:59 706

原创 Android——app的版本更新(强制更新/非强制更新)

1.App版本检测:要实现App的更新下载,我们上面介绍了,前提是服务器要保存一个App的版本号(通常的方式是保存versionCode,当然你要对比versionName也没关系)。当用户去手动检测版本,或者进入首页自动检测时,第一步是需要请求服务器的版本号,拿到版本号之后与当前App版本号(当前版本号可通过PackageInfo获取)进行对比。服务器返回的版本号大于当前App版本号,证明App

2017-12-29 08:45:50 15277

原创 android——本地相机上传头像

添加依赖:compile 'com.facebook.fresco:fresco:0.12.0'compile 'org.greenrobot:eventbus:3.1.1'compile 'io.reactivex.rxjava2:rxjava:2.1.7'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'compile 'com.sq

2017-12-21 08:49:27 508

原创 Android——实现网络下载资源

网络权限:uses-permission android:name="android.permission.INTERNET" />uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>uses-permission android:name="android.permission.WRITE_E

2017-12-20 20:50:08 1270

原创 Android——视频播放器

jiecaovideoplayer的使用说明:这个播放器本身就具有自动记忆播放进度的功能,全屏状态下具有手势快进和快退的功能,以及左边控制亮度,右边控制音量,点击全屏后视频还是竖屏,需要旋转手机才能变成横屏播放,并且使用移动数据时,会有dialog提示。添加依赖:compile 'fm.jiecao:jiecaovideoplayer:5.5'布局文件:

2017-12-20 19:26:22 558

原创 android——悬浮图标(FloatingActionButton)

效果图:添加依赖:compile 'com.getbase:floatingactionbutton:1.9.0'布局文件:com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/multiple_actions" android:layout_width="wr

2017-12-20 19:17:15 7312

原创 android——做一个电影播放的Demo

APP下载地址效果图:    实现要求:1. 项目框架:MVP;注意:最大程度上避免内存泄漏;2. 图片加载:Fresco框架;3.网络加载框架:使用Retrofit+RxJava+okHttp实现网络加载;4. 数据展示使用RecylerView;5. ButterKnife,EventBus业务逻辑需求:1. 使用Mvp+Retr

2017-12-19 13:40:41 3685 1

原创 仿探探图片卡左右滑动效果

效果图:1、实现如图效果2、根据接口请求数据并展示3、实现如效果视频的切换效果4、换一批 可以切换随机切换一批电影数据添加依赖:项目的build.gradle allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } }}...

2017-12-14 15:59:36 2531 2

原创 Android——自定义View实现9宫格解锁

自定义View1.实现一个子类继承View 2.覆盖onDrow()函数,渲染图像 3.覆盖onTouchEvent()函数 4.监听按下、移动,松开手指的动作 5.重新在onDrow()中渲染对应的的图像效果图:这是一个仿京东金融的一个九宫格解锁,最上面的日期显示使用的Time()获取到当前的时间,我们得到日期对其赋值就好了。九宫格解锁有两个模式:CREATE_MODE...

2017-12-14 14:50:29 1096 1

原创 android——顶部导航栏滑动变换背景色

效果图:当鼠标向下滑动的时候,顶部导航栏会设置一个距离顶部的值进行判断,滑动的时候,当滑动距离的值大于我们设置的这个值就改变导航栏的背景颜色,当滑动距离小于这个值的时候,不会发生改变,会恢复初始的背景颜色。在API 23以上的版本,ScrollView会有一个onScrollChanged()方法,这个方法会监听到我们滑动的高度,从而进行一些判断。在API 23以下的版本我们想要对...

2017-12-14 14:19:50 2907

原创 Android——沉浸式

Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚沉浸模式到底是什么东西的情况下,就张冠李戴地认为一些系统提供的状态栏操作就是沉浸式的,并且还起了一个沉浸式状态栏的名字。京东的顶部栏就是一个沉浸式,它就是将状态栏给隐藏掉了,实现一个沉浸的效果。public class ImmersionUt

2017-12-14 13:50:11 424

原创 MVP+Retrofit+RxJava(Flowable)结合使用

MVP流程图: 添加依赖:compile 'io.reactivex.rxjava2:rxjava:2.1.7'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'compile 'com.squareup.retrofit2:retrofit:2.3.0'compile 'com.squareup.retrofit2:conver...

2017-12-07 08:18:40 3397 2

原创 Android——MVP+xRecyclerView+Retrofit+OkHttp+RxJava结合应用

一、效果图:      二、技能要求:1. 如上图,使用 MVP+xRecyclerView+Retrofit+OkHttp+RxJava   接口:APIKEY=‘71e58b5b2f930eaf1f937407acde08fe’http://api.tianapi.com/nba/?key=APIKEY&num=10三、实现思路 1. 主页面显示一个xR...

2017-12-06 08:11:44 1184 1

原创 Android——Fresco、EventBus、GreenDao、Butterknife、Retrofit综合使用

一、案例效果图      二、技能描述 通过Retrofit进行网络请求数据,要求后两个参数(下方接口地址中的10和1)通过注解方式传进去,使用RecyclerView进行列表展示,请求到数据之后,使用GreenDao进行数据缓存,当进入页面时,先从数据库中取数据,进行展示,再进行网络请求,有数据就更新,没有网络情况下只显示数据库中数据。进入页面后判断网络状态,通过Ev...

2017-12-03 20:18:27 523 1

原创 Android——Greendao封装进行

 关于GreenDao greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。关于greenDAO的概念可以看官网greenDAO greenDAO 优势 1、一个精简的库2、性能最大化3、内存开销最小化4、易于使用的 APIs5、对 Android 进行高度优化 GreenDao 3.0使用GreenDao 3.0采...

2017-12-01 20:25:39 4490

原创 Core Java——IO流的分类

一:IO流的分类1:从方向上分:输入流 / 输出流2:从处理的单元上分:字节流 / 字符流3:从处理的效率(介质):节点流 / 处理流 二:流类基本结构:三:一般操作文件流的步骤:  1:使用File类来找到一个文件  2:通过File类的对象去实例化字节流或者字符流的子类  3:进行字节流或者字符流的读写操作  4:关闭文件流四:System.in和S

2017-11-29 10:42:22 331

原创 Android——仿京东秒杀

效果图:京东秒杀是两个小时一个场次,判断本机的时间进行场次定时,然后在这两个小时里面进行倒计时。MainActivity import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;...

2017-11-23 09:41:29 1426

原创 Android——仿京东垂直滚动广告栏

效果图:实现仿京东垂直滚动广告栏,它是一个动态的无限自动轮播图,让我们看看它是怎么实现的:先看一看布局文件:activity_main.xml <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a...

2017-11-23 09:17:42 2681

原创 Android——EventBus实现一级购物车

效果图:实现接口: 公共请求参数:source=android参数名称:source参数值:android类型:String http://120.27.23.105/product/searchProductskeywords=笔记本&page=1参数说明:keywords 关键字字段 String类型 必传page  页码数  Str...

2017-11-23 08:49:32 522

原创 Android——仿京东淘宝分类页面

效果图:json在assets下添加依赖: compile 'com.squareup.okhttp3:okhttp:3.8.1'compile 'com.facebook.fresco:fresco:0.11.0'compile 'com.alibaba:fastjson:1.1.46.android'MainActivitypublic class MainA...

2017-11-22 15:57:31 14730 1

原创 Android——二级列表实现购物车

效果图:添加依赖:compile 'com.squareup.okhttp3:okhttp:3.9.0'compile 'com.google.code.gson:gson:2.8.2'compile 'com.github.bumptech.glide:glide:3.7.0'compile 'org.greenrobot:eventbus:3.1.1'项目清单中添

2017-11-22 14:43:59 2452

原创 自定义ScrollView实现图片下拉放大(弹性效果)+ 悬浮框

效果图:MyScrollViewpackage com.bwie.com.wangruixin1509c20171121;import android.content.Context;import android.graphics.Rect;import android.os.Handler;import android.util.AttributeSet;impo

2017-11-21 09:30:07 505

原创 Android——自定义拦截器实现OKHttp网络请求

示例图:一、技术选型:1. 项目框架:MVP;注意:避免内存泄漏;2. 图片加载: Universal-Image-Loader或Glide图片加载框架3.网络加载框架:OkHttp4. 自定义应用拦截器,封装公共请求参数(注意:必须通过拦截器封装公共请求参数,否则无法请求数据)公共请求参数,在我们项目研发过程中,作用非常大。封装公共请求承参数之后,那么所有的接

2017-11-13 15:45:01 4920

原创 Android——第三方QQ登录

现在的第三方登录很普遍如QQ,微博,微信,今天我们就来实现如何接入QQ登录到我们的项目中 要想使用QQ登录我们需要到腾讯开放平台注册账号获取开发者资格地址:http://open.qq.com/ 注册完成后点击我们右上角的管理中心,然后选择Android平台就会获取APPID和APPKEY。创建完成后我们需要到 http://wiki.open.qq.com/wiki/mobile/S

2017-11-12 19:57:15 923

原创 Android——MVP架构OkHttp的二次封装以及RecyclerView的使用

MVP框架:MVP架构是当前比较成熟的Android架构,还有其他架构比如最初始的MVC和MVVM。MVC相对于较为落后,MVVM使用DataBind,普及性不如MVP。所以最终决定自己设计的框架是基于MVP思想进行总结的框架。选择MVP框架的原因之一也是google官方的示例中MVP sample已经是完成,证明google官方对于MVP的承认度。MainAc

2017-11-10 13:38:34 974

原创 Android——OKHttp的使用

添加依赖:compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'POST请求MapString,String>params =new HashMapString,String>();params.put("name","tsy"); MyOkHttp.get().post(this,

2017-11-10 13:28:38 326

原创 Android——BottomTabBar实现底部导航栏

示例图:首先在build.gradle添加依赖compile 'com.hjm:BottomTabBar:1.1.1'activity_main.xml中定义一下该控件xml version="1.0" encoding="utf-8"?>RelativeLayout xmlns:android="http://schemas.android.com/

2017-11-06 18:31:00 1738

原创 Android——Banner无限轮播图

示例图:在build.gradle中添加依赖compile 'com.youth.banner:banner:1.4.9'compile 'com.github.bumptech.glide:glide:3.7.0'在项目清单中添加权限uses-permission android:name="android.permission.INTERNET"/>u

2017-11-05 20:16:29 477

原创 Android——实现二维码扫描

首先在build.gradle添加依赖compile 'com.journeyapps:zxing-android-embedded:3.3.0'然后在项目清单中添加权限uses-permission android:name="android.permission.CAMERA" />uses-permission android:name="android.permi

2017-11-05 19:47:53 439 2

桌面悬浮窗

360手机卫士我相信大家都知道,好多人手机上都会装这一款软件,那么我们对它的一个桌面悬浮窗效果想必都不会陌生。

2018-07-19

京东分类页面

来分析这个demo的主体构成吧,顶部为搜索栏,左侧是scroview,不要担心优化问题,因为scroview里面的TextView是动态生成的,完全不用担心优化问题,右侧是viewPager,Scroview可以控制viewPager的滑动,反之ViewPager也可以控制scroview的滑动。

2017-11-22

XlistView view包

XListView 下拉刷新 上拉分页加载更多 布局文件 XListView中我们经常用的就是下拉刷新和上拉加载这两个功能,我们可以在此基础上进行扩展和自定义。它的实现原理也比较简单,在此也感谢这位大神给我们提供的这个开源的ListView,使我们在开发中节省了不少时间。 下面分别分析其下拉刷新与上拉加载的实现过程。

2017-09-11

空空如也

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

TA关注的人

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