自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

追梦人的博客

技术成就梦想

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 VIewPager 通用配置

package com.ixuea.courses.mymusic.adapter;import android.content.Context;import java.util.ArrayList;import java.util.List;import androidx.annotation.NonNull;import androidx.fragment.app.FragmentManager;import androidx.fragment.app.FragmentStatePag

2021-03-15 23:34:35 179

原创 网络日记log打印和抓包

0.如何显示网络请求日志** 为什么要显示网络请求日志?**开发中,经常会查看网络请求的信息,因为这样才能查看到网络请求错误,包括开发的时候,测试的时候,项目上线了可能都需要查看网络请求日志。有哪些方法?程序内部打印到控制台这种方式,一般是开发中使用,就是通过网络请求框架打印,如果网络框架提供了这样的机制,那么实现就比较简单。抓包一般是开发中使用,还需要配置环境,稍微有点麻烦。程序内部打印到手机一般是测试,正式版中使用。1.实现程序内打印网络日志如何实现?OkHttp提供了拦截器功能

2021-03-15 23:22:30 1381

原创 配置Retrofit网络框架及其使用

**1.配置service接口网络请求需要哪些信息?**一般网络请求,会需要如下这些信息:请求的网址请求方式;是GET请求,还是POST请求请求参数参数传递方式;是通过表单方式传递,还是通过JSON方式传递请求头如何配置?将这些信息写到一个接口中。创建Model/** * 歌单详情包裹对象 * <p> * 只是用来测试 */public class SheetDetailWrapper { /** * 歌单详情 */ pr

2020-10-21 23:19:15 606

原创 网络请求相关依赖库

网络相关依赖库 //请求网络相关 //okhttp //https://github.com/square/okhttp implementation 'com.squareup.okhttp3:okhttp:4.2.0' //用来打印okhttp请求日志 //当然也可以自定义 implementation("com.squareup.okhttp3:logging-interceptor:4.2.0") //retrofit //

2020-10-07 17:08:33 128

原创 开发环境和测试环境(配置网络请求相关地址)

我们这里项目用到的接口,就和大家访问Google一样,也有一个网址,同时在真实项目中,不同的环境,可能有不同的地址;目的是开发,和测试。我们这里只有一个,但我们会给大家演示如何配置两个。企业开发中通常都有三个环境,分别是dev,qa,prod分别代表开发环境,测试环境,正式环境;部分企业还有一个预上线环境。对于我们App来说他们最大的不同就是端点(endpoint)不同,所以我们这里要配置多个环境,配置有多种方法,可以使用注释,但这样容易出错;也可以将所有API,图片资源地址,一些配置Key放到一个常量类

2020-10-07 16:57:50 2627

原创 如何允许HTTP请求

如何允许HTTP请求在Android新版中,默认不允许HTTP请求,我们可以通过如下配置开启HTTP请求,因为HTTPS的基础使用,客户端不用做任何处理,但还有一些特殊的用法,但这些方法就需要深入学习了。<application ... android:usesCleartextTraffic="true">测试确认能运行。...

2020-10-04 17:52:00 741

原创 网络框架OKhttp Retrofit Gson等

网络底层框架Okhttp网络上层框架 (封装了Okhttp)RetrofitJSON解析框架使用Google的 Gson。响应式编程框架RxJava(使用了基础的响应式编程,Java项目也可以使用),RxAndroid(实现了Android上特有的响应式编程),前面已经讲解了响应式编程,和该框架的简单用法,后面还会在合适场景讲解他的使用方式。...

2020-09-24 18:03:34 108

原创 集成RxJava/RxAndroid框架

为什么要集成rxandroid?因为Java语言不是响应式编程,或者函数式编程语言(可以简单理解为,和响应式差不多),所以要实现响应式编程,就需要集成一些框架;但也可以自己写。添加依赖这里使用rxandroid框架。//使用了Android响应式编程//RxJava和RxAndroid区别?//简单来说:就是RxAndroid在RxJava的基础上//优化了一些功能//增强了Android特有的功能//https://github.com/ReactiveX/RxAndroidimpl

2020-09-24 17:51:40 255

原创 什么是响应式编程框架

什么是响应式编程?如果要直接理解,可能比较抽象,但我们可以引用百度百科的例子;例如:a = b + c; 这句代码将b+c的值赋给a,而之后如果b和c的值改变了不会影响到a,然而,对于响应式编程,之后b和c的值的改变也动态影响着a,意味着a会随着b和c的变化而变化。响应式编程过程中,一般有以下几个组件,Observable/Operator/Subscriber;对应到代码中就是不同类。这个流程,可以简单的理解为:Observable -> Operator1 -> Operator2 -&

2020-09-24 17:47:58 1346

原创 如何解决Dex方法数问题(解决单个dex里面的方法数不能超过65535个的问题)

问题背景在Android中,所有的Java/Kotlin文件编译后,会放到一个后缀为dex的文件,但Google有一个规范是,单个dex里面的方法数不能超过65535个,但真实项目中,特别是我们这个项目,后面会集成很多的依赖,所以肯定会超过这个数量,如果不解决,后面就会报错,对于这个问题,Google官方提供了解决方法,一般情况下这个问题,都会在创建完项目后,配置完成,但因为要写到Application中,所以我们这里才实现,因为正好前面添加了AppContext。如何解决集成官方提供的MultiDe

2020-09-24 17:38:19 759

原创 ToastUtil工具类

在Android开发中,有些时候,可能要求定制Toast,例如:前面显示一个图标,或者正确操作显示绿色,错误操作,显示红色;这时候可以自己定义,可以使用第三方框架。//toast工具类//https://github.com/GrenderG/Toastyimplementation 'com.github.GrenderG:Toasty:1.4.2'项目的根目录build.gradle 文件buildscript { repositories { google()

2020-09-22 20:34:27 2087

原创 Apache通用工具类(commons-lang3 包含:字符串工具类,文件工具类等)

什么是commons-lang3?他是Apache下面的一个Java工具包,提供了常用的方法,例如:字符串工具类,文件工具类等。有必要引用第三方工具包吗?大家可能有疑问,就是这么简单的功能,还有必要引用第三方工具包吗?我们想说的是:如果你的项目对体积没有严格的要求,那么完全可以引用;同时这些工具类都是经过时间考验的,所以说稳定性是有保证的;如果有些功能,要自己实现,我们认为大部分人写的可能都没有该工具类稳定。添加依赖//apache common lang3工具包//提供了StringUtil

2020-09-22 18:32:18 1125

原创 Button的技巧使用

Button透明后去掉边框的阴影 <!-- android:background="@color/transparent" (只写这个的话,边框会有阴影) 去掉边框的一些阴影 style="?attr/borderlessButtonStyle" 可能有些系统没有这个属性,所以可能找不到,所以加上上面的透明色 --> <Button styl

2020-09-22 18:13:46 167 1

原创 EditText的背景选择器 Selector(包含复用style)

<!-- 这里不能使用maxLength限制最长字符数 因为我们这里用户名还有邮箱 这里不能使用maxLength限制最长字符数 因为我们这里用户名还有邮箱所以用textEmailAddress textEmailAddress:用这个可以输入邮箱和手机号, 后面可以在代码中判断是手机号还是邮箱 --> &...

2020-09-22 16:33:35 669

原创 Toolbar(去除默认的actionBar主题,使用Toolbar)

前面说了,Android默认每个界面都有ActionBar,而我们项目使用Toolbar,所以要给Activity配置去除ActionBar的主题,前面我们已经配置了,如果大家还没配置要配置了,才能使用Toolbar,不然会因为冲突,而崩溃。如果没有这个依赖,则需要添加 //material design依赖 //AppBarLayout在这里面 implementation 'com.google.android.material:material:1.0.0'/** * 通用

2020-09-22 15:53:10 861

原创 界面全屏和隐藏状态栏和亮色状态栏

/** * 全屏 */ protected void fullScreen() { //设置界面全屏 //获取decorView View decorView = getWindow().getDecorView(); //判断版本 if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 19) {...

2020-09-22 11:06:28 563

原创 将源码兼容版本设置为Java 8(Butterknife需要1.8)

app下的 build.gradleandroid { //编译版本 compileSdkVersion rootProject.ext.compileSdkVersion //默认配置 defaultConfig { //应用唯一标志 applicationId "com.ixuea.courses.mymusicold" minSdkVersion rootProject.ext.minSdkVersion

2020-09-22 10:56:59 252

原创 CacheInterceptor源码分析

开头首先我们回忆下在Okhttp中如何使用缓存: //缓存目录File file = new File(getCacheDir(), "http");//创建缓存,这里指定了缓存为100M,如果查出就情况该目录Cache cache = new Cache(file, 1024 * 1024 * 100);//然后使用cache方法添加一个cacheOkHttpClient okHttpClient = new OkHttpClient.Builder() .cache(cache

2020-08-07 22:16:41 185

原创 RetryAndFollowUpInterceptor源码分析

标题这个拦截器很容易从名字看出该拦截器是用来重试和处理http跳转的拦截器,所以看起来很简单,但是他逻辑可以说是相对复杂。下面就来看看。该拦截器用来接收失败和重定向的逻辑,同时还说了,Chrome浏览器最大支持21次跳转,Firefox,curl,wget支持20次,Safari支持16次,HTTP/1.0支持5次,所以该类取20次。可以从如下源码看出:private static final int MAX_FOLLOW_UPS = 20; @Override public Res

2020-08-06 17:41:27 194

原创 BridgeInterceptor

//从url里面获取cookie //这个cookieJar是Okhttp上面设置的那个cookieJarList<Cookie> cookies = cookieJar.loadForRequest(userRequest.url());if (!cookies.isEmpty()) { //将所有的cookie添加到cookie头 requestBuilder.header("Cookie", cookieHeader(cookies));}public fin

2020-08-06 14:37:10 296

原创 TabLayout+ViewPager

import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.design.widget.TabLayout;import android.support.v4.view.ViewPager;...

2019-04-14 19:58:33 323

原创 GridView(网格视图)

GridView 是按照行列的方式来显示内容的,一般用于显示图片列表,比如九宫格列表,使用GridView实现起来很简单。GridView 的用法与ListView 类似,首先看图2-36,效果图中显示的两张图片是网上找的。1.修改布局文件activity_main.xml。<?xml version="1.0" encoding="utf-8"?><RelativeL...

2019-04-05 10:25:37 765

原创 Fragment案例--实现底部导航

1 *MainActivity extends FragmentActivityimport com.example.fragment.DynamicFragment;import com.example.fragment.HomeFragment;import com.example.fragment.MessageFragment;import com.example.fragmen...

2019-04-04 10:23:47 411

原创 ViewPager(翻页视图)

<?xml version="1.0" encoding="utf-8"?><android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"/&gt...

2019-04-01 23:07:22 507

原创 RecyclerView万能分割线

public class DividerItemDecoration extends RecyclerView.ItemDecoration{/** RecyclerView的布局方向,默认先赋值 为纵向布局* RecyclerView 布局可横向,也可纵向* 横向和纵向对应的分割线画法不一样* */private int mOrientation = LinearLayoutMana...

2019-03-31 23:12:45 358

原创 android 5.0与状态栏融合

/** *由于整个功能是Android5.0集以上的系统才支持的,因此我们现在代码中做了一个系统版本号的判断, * 只有当版本号大于或等于21,也就是5.0以上系统时才会执行后面的代码。 * 接着我们调用了getWindow().getDecorView();方法拿到当前活动的DecorView,再调用它的 * setSystemUiVisibility()方法来改变系统UI的显示,这里...

2019-01-25 17:52:13 160

world你们常用的快捷键

world常用的文档快捷键,收集了一些文档的快捷键,world常用的文档快捷键,收集了一些文档的快捷键

2018-05-25

空空如也

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

TA关注的人

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