自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 RecyclerView 实现复杂列表页面布局

前言前面章节已经介绍过RecyclerView的基本使用,今天这章节将介绍如何使用RecyclerView实现多个复杂界面的列表布局。效果图:布局文件实现编写之前先完成各项布局文件,如下是布局文件加效果图,1、home_top__item_layout.xml<?xml version="1.0" encoding="utf-8"?><Relati...

2020-05-02 15:04:42 2702 1

原创 Android XML数据的三种解析方式(SAX解析)

在 Android中解析XML文主要有三种方式,分别为SAX、DOM和Android附带的PULL解析器。其中SAX是一个解析速度非常快并且占用内存少的XML解析器,非常适合Android手机等移动设备。 SAX解析XML文件采用事件驱动的方式进行,也就是说,SAX是逐行扫描文件,遇到符合条件的设定条件后就会触发特定的事件,回调你写好的事件处理程序。使用SAX的优势在于其解析速度较快,...

2020-03-14 10:39:57 408

原创 Android XML数据的三种解析方式(Pull解析)

Pull解析器的运行方式与SAX解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是,Pull解析器产生的事件是一个数字,而非方法,首先先在Assets目录下创建file.xml 加入如下的内容<?xml version="1.0"?><records>...

2020-03-14 09:45:30 295

原创 Android悬浮窗的实现

前言现在很多应用都使用到悬浮窗,例如微信,斗鱼等应用,微信在视频通话时会开启一个视频窗口悬浮于屏幕之上,点击home退到桌面时,小窗口并未消失,下面我们就实现Android悬浮窗。原理如何实现悬浮窗,实现过程中使用到Window,WindowManager这个几个系统API,Window表示一个窗口的概念,他是一个抽象类,它具体实现是PhoneWindow,如何创建一个Window? 使用WindowManager创建一个Window非常简单。如下首先在AndroidManifest.x

2021-05-09 09:50:55 4260 2

原创 Android获取设备信息

设备信息设备ID(DeviceId)TelephonyManager telephonyManager = (android.telephony.TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);String deviceId = telephonyManager.getDeviceId();Sim 序列号TelephonyManager telephonyManager = (android.telephony.

2021-05-04 09:54:19 529

原创 Android dp,px,sp之间的转换

官方方法float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20f, getResources().getDisplayMetrics());该方法源码:public static float applyDimension(int unit, float value, DisplayMetrics metrics){ switch (

2021-05-04 09:17:49 458

原创 Android 获取空间大小

public static void readSDCard() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { File sdcardDir = Environment.getExternalStorageDirectory(); StatFs statFs = new StatFs(sdcardDir.

2021-05-04 08:38:43 221

原创 FileUriExposedException异常

简介从Android 7.0开始,Android不再允许在app中把file://Uri暴露给其他app,包括但不局限于通过Intent或ClipData 等方法。原因在于使用file://Uri会有一些风险,google推荐使用FileProvider来生成一个content://Uri格式的URI替代file://Uri。解决方法首先在res/xml/目录下添加provider_paths.xml 文件 然后在AndroidManifest.xml配置文件中添加provider配置信息

2021-05-04 07:57:35 1985

原创 Android okhttp使用

简介OKHttp是一个十分常用的网络请求框架了,用于android中请求网络。除了OKHttp,如今Android中主流的网络请求框架有:Android-Async-Http Volley OkHttp Retrofit依赖库导入在build.gradle添加如下依赖implementation 'com.squareup.okhttp3:okhttp:4.9.0'添加网络权限<uses-permission android:name="android.per.

2021-05-03 10:02:37 765 2

原创 Android开发 Retrofit使用

前言retrofit基于okhttp封装的网络请求框架,网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装,Retrofit将每个网络请求定义为java接口的一个方法,定义路径可以由方法的注解提供,header和请求参数可以由方法的参数提供,返回一个Retrofit的Call对象,这种Call对接类似OkHttp的Call,可以有execute和enqueue两种方式执行网络请求,分别是同步和异步。Retrofit优势,就是简洁易用,解耦,扩展性强,可搭配多种Js

2021-05-02 15:27:28 817 1

原创 Android studio 报错 invalid LOC header (bad signature)

Android studio 报错 invalid LOC header (bad signature)解决办法:删除C:\Users\你的用户\.gradle\caches目录下所有文件

2021-05-02 14:06:25 528

原创 Android线程池

ThreadPoolExecutorThreadPoolExecutor是线程池的真正实现,它的构造方法提供了一系列参数供外部配置线程池,参数配置不同将会直接影响线程的功能特性,如下是它常用的构造方法。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,

2020-06-25 15:53:57 185

原创 CountDownTimer源码解析

概述在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往都自己写。现在发现了这个类,大家共享一下CountDownTimer 使用CountDownTimer countDownTimer=new CountDownTimer(10*1000+1000, 1000) { @Override public void onTick(long millisUntilFinished) { int time= (int)

2020-06-25 14:30:53 238

原创 IntentService源码解析

概述IntentService是一种特殊的Service,它继承与Service并且它是一个抽象类,如果想要使用它必须创建它的子类并且实现它才可以使用,IntentService可用于执行后台耗时任务,当任务执行完之后会自动停止,它的适合执行一些高优先级的后台任务,不容易被系统杀死,从它的源码可以得知,它封装了HandlerThread和Handler,如下所示。@Overridepublic void onCreate() { // TODO: It would be nice to

2020-06-25 13:21:34 192

原创 Android四大组件——ContentProvider

简介ContentProvider是Android中提供的专门用于不同应用间数据交互和共享的组件。ContentProvider实际上是对SQLiteOpenHelper的进一步封装,以一个或多个表的形式将数据呈现给外部应用,通过Uri映射来选择需要操作数据库中的哪个表,并对表中的数据进行增删改查处理。ContentProvider其底层使用了Binder来完成APP进程之间的通信,同时使用匿名共享内存来作为共享数据的载体。ContentProvider支持访问权限管理机制,以控制数据的访问者及访问方式

2020-06-25 11:51:46 211

原创 android 嵌套h5百度地图实现打卡功能

简介项目过程中因需要做一个类似打卡的应用,先将之前写过的demo跟大家一起分享一下,主要是介绍如何使用android的webview嵌套H5实现简单的定位功能,H5页面设计html 以及javascript,jQuery的一些知识。效果图:demo用到百度地图,由于h5定位很不准,因此需要引入Android百度地图开发包,辅助H5定位将会更加准确。百度地图定位引入An...

2020-05-04 10:12:57 1395 1

原创 Installation failed with message INSTALL_FAILED_TEST_ONLY.

介绍使用android studio 安装调试apk时,遇到了如下结果。Installation failed with message INSTALL_FAILED_TEST_ONLY.It is possible that this issue is resolved by uninstalling an existing version of the apk if it is pr...

2020-05-03 09:52:24 159

原创 genymotion 个人免费版安装教程

简介调试时我们可以使用android studio自带的模拟器或者用真机进行调试,但是使用android studio自带的模拟器总感觉特别卡,并且暂用内存特别大,用自己手机进行调试,虽然也很方便,但是如果usb数据线不在时,就很头疼,因此突然想到genymotion,之前使用过,今天教大家如何安装并使用genymotion。步骤一、首先先去:https://www.genymotion....

2020-05-02 22:51:05 30592 12

原创 ADB常用命令使用

adb介绍adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备.  它的主要功能有:* 运行设备的shell(命令行)* 管理模拟器或...

2020-05-02 17:58:59 1013

原创 mp4转换gif格式,免费在线转换

MP4转GIF在线转换地址:https://ezgif.com/video-to-gif

2020-05-02 13:56:14 4573

原创 git 入门教程

前言上节我们已经学会了git的环境的配置以及git的一些基本命令,由于只是粗略的使用,这节将带大家更加深入的理解git的使用。在学习之前我们需要熟记git用常用的几个概念词汇,工作区,暂存区,版本库,远程库。上图如果侵权,麻烦联系本人。状态简览我们可以使用git status命令输出十分详细的内容,其使用语法特别繁琐。如果你使用git status -s命令或git s...

2020-04-05 15:02:54 161

原创 git初级使用

前言hi 大家好,使用git已经有一段时间了,之前一直使用svn,但是自从用上git之后,发现自己深深爱上这个版本控制工具,刚接触git时,就觉得这个版本控制工具特别高级,一起跟我一起学习吧!!!git环境配置下面只介绍在git 在window系统上的安装,安装路径:https://git-scm.com/download点击上面的路径然后可以看到如下界面点击如图中红框的位...

2020-04-04 21:23:35 193

原创 Android httpUrlConnection的基本使用

在Android开发中网络请求是最常用的操作之一, Android SDK中对HTTP(超文本传输协议)也提供了很好的支持,这里包括两种接口:1、HttpURLConnection,可以实现简单的基于URL请求、响应功能;2、HttpClient,使用起来更方面更强大,使用方便,但是不易于扩展(不推荐使用)。但在android API23的SDK中Google将HttpClient移除了。...

2020-03-14 16:46:51 479

原创 webview自定义加载进度条

我们平时在进行安卓开发使用到webview加载网页时,我们不能准确了解网页的加载进度,因此为了提高用户体验,我们在webview中加入进度条显示加载进度。如下是显示效果布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/ap...

2020-03-11 20:08:02 474

原创 android 应用栏使用

一、设置应用栏Android 3.0(API 级别 11)开始,所有使用默认主题背景的 Activity 均使用ActionBar作为应用栏。不过,经过不同 Android 版本的演化,应用栏功能已逐渐添加到原生ActionBar中。因此,原生ActionBar的行为会有所不同,具体取决于设备使用的是哪个版本的 Android 系统。相比之下,最新功能已添加到支持库版本的Too...

2019-12-07 21:40:57 694

原创 创建通知

参考(https://www.jianshu.com/p/6aec3656e274)项目中需要用到通知,因此本次将简单总结一下,如何快速在8.0以上创建通知。效果图。创建代码如下:public class MainActivity extends AppCompatActivity { private Button btn; @Override...

2019-12-07 18:01:46 259

原创 Android开发——RecyclerView的使用

使用RecyclerView 加载大量数据集已经有一端时间了,但是一直没有对RecyclerView 总结过。今天再一次使用到RecyclerView ,就在这里做一次详细的总结。引入库使用RecyclerView 首先需要引入类。在build.gradle文件中引入该类。implementation 'com.android.support:recyclerview-v7:26.1...

2019-12-07 17:11:34 227

原创 android 自定义仪表盘(一) 绘制仪表盘边框

效果图1.首先在该目录下新增attr.xml文件2.然后在该文件下加入如下内容:<?xml version="1.0" encoding="utf-8"?><resources> <!-- 仪表盘自定义属性 --> <attr name="color_dial_lower" format="color"/>...

2019-11-30 17:01:14 1508

原创 webview使用

WebView是在应用程序中显示网页的视图。您还可以指定HTML字符串,并可以使用WebView在应用程序中显示它。WebView将应用程序转换为Web应用程序。要将WebView添加到应用程序中,必须将<WebView>元素添加到XML布局文件中。其语法如下<WebView xmlns:android="http://schemas.android.com/apk/...

2019-06-11 22:48:54 156

原创 android wifi开发

Android允许应用程序访问以查看极低级别的无线连接状态。应用程序几乎可以访问WiFi连接的所有信息。应用程序可以访问的信息包括连接网络的链接速度、IP地址、协商状态和其他网络信息。应用程序还可以扫描、添加、保存、终止和启动Wi-Fi连接。Android提供WifiManager API来管理WiFi连接的各个方面。我们可以通过调用getSystemService方法来实例化这个类。其语...

2019-06-11 22:08:16 975

原创 Android XML数据的三种解析方式(Dom解析)

XML代表可扩展标记语言。XML是一种非常流行的格式,通常用于在Internet上共享数据。本章介绍如何解析XML文件并从中提取必要的信息。android提供三种类型的XML解析器,分别是dom、sax和xmlpullparser。其中android推荐使用xmlpullparser,因为它既高效又易于使用。所以我们将使用xmlpullparser来解析XML。首先先在Assets目录下创...

2019-06-11 21:36:57 305

原创 android 控制系统UI可见性

调节系统栏项目过程中或多或少需要调节系统状态栏或者需要调节系统导航栏,如下将指引如何修改你可以通过使用SYSTEM_UI_FLAG_LOW_PROFILE标记调节状态栏和通知栏 如下View decorView = getWindow().getDecorView();int options = View.SYSTEM_UI_FLAG_LOW_PROFILE;decorVie...

2019-06-01 23:06:20 768

原创 activity实现弹窗dialog效果

实现弹窗效果这一小节我将教大家使用activity 实现弹窗效果,只需要改activity的主题可实现弹窗效果方式1效果图在style.xml文件中加入如下代码<style name="dialog_style" parent="@style/AppTheme"> <!--是否悬浮在activity上--> <item na...

2019-06-01 21:58:19 2939

原创 自定义dialog

自定义对话框实现项目中我们或多或少会自己自定义一个dialog,具体如何自定义对话框呢?以下将一步一步指导你实现一个简单的对话框。1、首先新增一个CustomDialog的类继承Dialog 如下2、继承后重写它的三个方法public CustomDialog(Builder builder) { super(builder.context); context...

2019-06-01 18:38:06 364

原创 android 拍照

拍照以下将教会我们如何使用自带相机进行拍照请求相机功能如果应用程序的一个基本功能是拍照,应用比较依赖摄像头,请在manifest文件添加如下配置 <uses-feature android:name="android.hardware.camera" android:required="true" />使用相机应用程序拍照为了能够使用自带相机拍照,我们可以通过...

2019-06-01 16:29:14 203

原创 AlertDialog的简单使用

实例代码AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("房间信息获取");builder.setMessage("是否将数据同步到服务器并且获取最新数据?");builder.setCancelable(false);builder.setPositiveButton("确定"...

2019-06-01 12:54:38 250

原创 Android 简单使用 GreenDao3.0

GreenDao的使用1、在project的build.grade文件中添加如下依赖 classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'2、在app的build.grade文件中添加如下依赖 compile 'org.greenrobot:greendao:3.0.1' compile 'or...

2019-06-01 12:43:32 3817

原创 HandlerThread 的简单使用

HandlerThread 的简单使用handlerthread 到底是什么? Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called....

2019-06-01 11:47:27 299

原创 android自定义 水波纹呼吸

效果图1、2、3、功能说明主要实现从小圆变成大圆然后恢复小圆参数说明innnerPaint:内部圆画笔outPaint:外部圆画笔wHeight:手机屏幕高度wWidth:手机屏幕宽度scale:圆形增加的尺度方法介绍getWindowWh:主要获取屏幕宽度与高度实例演示下面通过代码来演示如何在画布上绘制圆形。protected void ...

2019-06-01 11:09:19 660

原创 spring boot 入门篇

现在越来越多的企业在自己的项目中使用这个框架,spring boot 到底是什么? 难不难学?让我们一起去学习一下吧。Spring boot的优点轻松创建独立的Spring应用程序。 内嵌Tomcat、jetty等web容器,不需要部署WAR文件。 提供一系列的“starter” 来简化的Maven配置。 开箱即用,尽可能自动配置Spring。spring boot 快速入门准...

2018-07-24 22:55:40 202

空空如也

空空如也

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

TA关注的人

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