自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhewen的博客

我们总喜欢拿“顺其自然”来敷衍人生道路上的荆棘坎坷,却很少承认,真正的顺其自然,其实是竭尽所能之后的不强求,而非两手一摊的不作为

  • 博客(48)
  • 收藏
  • 关注

原创 Android相关部分总目录页

1. Android基础部分2. Android视图动效部分3. Android框架部分4. Android源码分析部分

2019-05-18 00:06:09 264 1

转载 Android控件——RecyclerViw系列五(监听)

1. RecyclerView Item监听1.1 添加setOnItemClickListener接口RecyclerView默认没有像ListView一样提供setOnItemClickListener()接口,网上大部分的解决方案都是通过给每个item添加onClickListener来模仿一个伪onItemClickListener,这种为每个item添加点击监听的解决方案浪费性能。...

2019-07-10 10:28:49 672

转载 Android控件——RecyclerView系列四(Item Animator)

1. Item Animator在实际开发中,我们想要让自己的界面变得更加酷炫,免不了加入动画这个元素,而RecyclerView能够通过setItemAnimator(ItemAnimator animator)设置添加、删除、移动、改变的动画效果。RecyclerView提供了默认的ItemAnimator实现类:DefaultItemAnimator。1.1 DefaultAnimato...

2019-07-09 16:01:17 2358

原创 Android控件——RecyclerView系列三(Item Decoration)

1 ItemDecoration前述文章的例子item间并没有分割线,RecyclerView并没有支持divider这样的属性,我们可以自己定制分割线。RecyclerView添加分割线的方法是:mRecyclerView.addItemDecoration(),该方法的参数为RecyclerView.ItemDecoration,该类为抽象类该类的源码为:public abstract...

2019-07-09 15:11:08 1286

转载 Android空间——RecyclerView系列二(LayoutManager的自定义与使用)

1 LayoutManager1.1 LayoutManager简单分析布局管理器,通过设置不同的布局管理器,来控制这些Item的排列方式,其中包含了Item View的获取与回收。RecyclerView提供的布局管理器:LinearLayoutManager 以垂直或水平滚动列表方式显示项目GridLayoutManager 在网格中显示项目。StaggeredGridLayou...

2019-07-08 20:16:08 2067 1

原创 Android控件——RecyclerView系列一(基本使用)

1. RecyclerView介绍从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活。RecyclerView定义在support库当中,想要使用该控件,需要在项目的build.gradle中添加相应的依赖库。在app/build.gradle文件,在dependencies闭包中添加: impl...

2019-07-08 14:24:06 746

原创 Android基础——TextView添加超链接,设置部分字体颜色等(spannableString)

1. SpannableString使用探索TextView应该是Android中使用最频繁的控件之一,在实际开发中,有时候需要显示的文字设置不同的样式或者响应事件,例如部分字体颜色是其他颜色,有的字点击之后有响应事件,有的字高亮显示等等。最简单的当然是字符拼接了。比较合适的实现方法应该是使用HTML来解决或者使用SpannableString,这里主要介绍SpannableString,其可以...

2019-07-05 18:01:24 692

原创 Android绘制——outlineProvider使用探索

1. view轮廓默认情况下,所有的view都是矩形的,虽然可以给view设置背景圆形的图片,即可以在界面显示出圆形的内容,但是view的大小实际上依然是矩形,并且设置的图片实际上也是矩形的,只是圆形以外的区域是透明色。如果根据view大小来生成对应的阴影,就会出现很奇怪的效果,(一个看起来圆形的view展示出的确实一个矩形的阴影)我了解决这个问题,view增加了一个新的描述来指明内容显示的形...

2019-06-18 20:54:47 13602 2

原创 Android 绘制——Canvas与Paint使用探索(一)——基础知识

1. Canvas与Paint与绘图一样,Paint即笔,Canvas即画布。绘图过程中,大小、粗细、岩壁颜色、透明度、字体样式等在Paint中设置,画出成品的东西,例如圆形,矩形,文字相关的在Canvas中生成。自定义绘制的**基本步骤**:创建Paint对象,重写onDraw(),把绘制代码写在onDraw()里面1.1 基本函数设置首先对于Paint来说,其API主要可以分为4类:...

2019-06-06 17:04:56 1604

转载 Android控件——沉浸式状态栏实现(下)

1. 状态栏设置全览前文简单介绍了如何实现一般意义上的"沉浸式状态栏”和真正意义上的状态栏,这里详细介绍以下状态栏的其他用法,比如设置状态栏透明度、状态栏主题颜色、控件与状态栏重叠等问题。开门见山,代码奉上: public class StatusBarUtil { public static final int DEFAULT_STATUS_BAR_ALPHA = 112; ...

2019-05-30 20:48:53 807

转载 Android控件——“沉浸式“状态栏实现(StatusBar)(上)

1. 序言关于沉浸式状态栏,第一反应过来的效果类似网易云音乐首页:这个效果其实就是让背景图片利用系统状态栏的空间,从而让背景图片与状态栏融为一体。首先我们来理解一下沉浸式的含义。沉浸式即给用户提供完全沉浸的体验,例如看电影,玩游戏的时候充满了整个屏幕画面,没有其他因素干扰,避免了第三方因素的打扰。如果这个时候顶部出现一个状态栏,会极大的影响使用体验。现在常说的”沉浸式“状态栏一般是指状...

2019-05-30 19:56:47 2102

原创 Android组件——ContentProvider使用探索

1.

2019-05-29 10:41:29 416

原创 Android广播——Broadcast使用探索

1.

2019-05-28 17:27:45 388

原创 Android动画——Activity转场动画|过渡动画一点薄见(一)((Transition Animation 系列))

1. 转场动画概述在Android开发过程中,经常会遇到Activity之间切换的问题,转场动画就是用于布局(界面)变化时的过渡动画。例如有两个Activity,分别为A和B:A启动B:A发生exit动画,则B发生enter动画B返回A:B发生return动画,A发生reenter动画1.1 使用overridePendingTransition对于Activity之间的切换可以使用...

2019-05-25 16:51:01 5359

原创 Android 动画——过渡动画中ActivityOptions介绍与使用((Transition Animation 系列))

1. 序言对于Android 5.0 之前,Android的过渡动画一般情况下使用:overridePendingTransition(enterAnim, exitAnim);android 5.0及以上,google提供了新的转场动画方式,及这里要介绍使用的ActivityOptions,并且提供了兼容包ActivityOptionsCompat。根据当前android版本的发展情况,...

2019-05-25 16:50:27 2455

原创 Android架构——MVP架构一点理解

1. 框架初识首先讲框架之前,要问自己一个问题,为什么要用到框架?框架的使用能给自己的开发带来什么好处?在撰写代码时,会发现随着代码越来越多,理清代码的逻辑越来越困难,且想尽可能的少些Activity。且随着迭代轮次的增多,功能也会随之增删,这时候如果没有一个好的架构,在迭代过程中程序将会被破坏,工作展开极其困难。MVP框架又是什么?在撰写代码时,要避免创建神类。即避免创建无所不知,无所不...

2019-05-18 19:21:13 4367 1

原创 Android服务——Service使用浅析(二)

相关文档:Android服务——service使用浅析(一)1. IntentService 基本使用如果直接把耗时线程放到Service中的onStart()方法中,容易引起**ANR(Application Not Responding)**异常.Service不是一个单独的进程,与应用程序同在一个进程中;Service不是一个线程,避免在Service中进行耗时操作。我们可以用到之前...

2019-05-17 19:49:47 499

原创 Android基础——Notification使用浅析(二)

1. 设置优先级优先级描述Notification.PRIORITY_MAX重要而紧急的通知,通知用户这个事件是时间上紧迫的或者需要立即处理的。Notification.PRIORITY_HIGH高优先级用于重要的通信内容,例如短消息或者聊天,这些都是对用户来说比较有兴趣的Notification.PRIORITY_DEFAULT默认优先级用于没有特殊优先级...

2019-05-17 17:12:01 613

原创 Android基础——Notification 8.0适配详解

1. Android 8.0 系统通知栏适配NotificationChannel是android8.0新增的特性,如果App的targetSDKVersion>=26,没有设置channel通知渠道的话,就会导致通知无法展示。什么是通知渠道呢?顾名思义,就是每条通知都要属于一个对应的渠道。每个App都可以自由地创建当前App拥有哪些通知渠道,但是这些通知渠道的控制权都是掌握在用户手上的...

2019-05-17 15:43:12 1714 2

原创 Android通知——Notification使用浅析(一)

1. 序言当某个应用程序希望想用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。通知栏和抽屉式通知栏均是由系统控制,用户可以随时查看。通知的用法比较灵活,既可以在服务中创建,又可以在广播里创建。通知的常见用途:显示接收的短消息,及时消息等信息(如QQ,微信、新浪、短信等)...

2019-05-17 09:58:33 1034

原创 Android基础——PendingIntent理解

1. PendingIntent认识PendIntent其实是Intent的封装,这就带来了几个问题:为什么要有PendingIntent?与Intent有什么区别?PendingIntent的应用场景主要有哪些?它的内部是如何实现的?1.1 与Intent的区别Intent 是意图的意思。Android 中的 Intent 正是取自这个意思,它是一个消息对象,通过它,Andr...

2019-05-16 15:46:42 37760 4

原创 Android服务——Service使用浅析(一)

1. 引言概述Service是android中实现程序后台运行的解决方案,适合去执行那些不需要和用户交互且长期运行的任务。服务的运行不依赖任何用户界面。Service并不是运行在一个独立的进程当中,依赖于创建服务时所在的应用程序进程。某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止。1.1 Android多线程编程相关概念:程序:为了完成特定任务,用某种语言编写的一组指令集合(...

2019-05-14 23:06:39 360

原创 Android——ViewPager使用浅析(二)

相关文档:Android基础——ViewPager使用浅析(一)Android控件——Tablayout使用浅析(一)1. PagerAdapter的子类使用PagerAdapter时抽象类,它有两个子类,分别是FragmentPageAdapter和FragmentStatePagerAdapter,也都是抽象类。FragmentPagerAdapter是PagerAdapter的其中...

2019-05-14 20:51:30 223

原创 Android控件——Tablayout使用浅析(一)

1. Tablelayout序言在一个app中,Tabs 使不同视图和功能之间的切换变得简单。使用 tabs 将大量关联的数据或者选项划分成更易理解的分组,可以在不需要切换出当先上下文的情况下,有效的进行内容导航和内容组织。Tablayout继承自HorizontalScrollView,用作页面切换指示器这里给出一个相关Tablayout实现的效果图:从效果图上可以看出,可以操作的属性...

2019-05-14 19:32:03 1390

原创 Android基础——Viewpager使用浅析(一)

ViewPager主要包括以下内容:ViewPager 基本使用(简介、适配器)ViewPager + TabLayout + Fragment 的使用ViewPager 轮播图的使用(指示器、标题、自动轮播、首尾循环)ViewPager 的切换效果(PageTransformer)ViewPager 切换效果进阶1. 序言ViewPager就是一个简单的页面切换组件,我们可以...

2019-05-14 19:08:12 377

原创 Android—— Fragment使用浅析(一)

1. 基本概述Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity,又称作Activity片段。使用Fragment可以把屏幕划分成几块,然后进行分组,进行一个模块化管理。Fragment不能够单独使用,需要嵌套在Activity中使用,其生命周期也受到宿主Activity的生...

2019-05-14 11:43:34 600

转载 Android控件——HorizontalScrollView使用(一)

1. HorizontalScrollView简单使用Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息;Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果;但Gallery被谷歌废弃了,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的...

2019-05-14 10:22:41 23716 1

原创 Android——EventBus使用浅析

1. EventBus序言EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。EventBus在GitHub上的开源库地址,刚开始使用的可以看一下,GitHub上有最基本的使用方法。EventBu...

2019-05-13 18:01:48 269

原创 Nine-patch图片(.9图)

1 Nine-Patch图片什么是**.9**图片图片后缀名前有.9的图片,例如pic.9.png这样的图片9图的作用图片拉伸的时候特定区域不会发生图片失真,不失真的区域可以由我们自己绘制。制作9图的工具Android SDK自带:draw9patch.bat,在sdk目录下的tools文件夹中NinePatchEditor,做了一些优化,支持批量操作。Andr...

2019-05-10 14:05:28 734

转载 Gradle依赖配置 api、implementation、compile区别

Gradle3.0.0以上版本引入了新的依赖配置,新增了api和implement来代替compile依赖配置。其中 api 和以前的 compile 依赖配置是一样的。使用 implementation 依赖配置,会显著提升构建时间。假如我们一个名 MyLibrary 的 module 类库和一个名为 InternalLibrary 的 module 类库。里面的代码类似这样://inter...

2019-05-09 22:37:29 2281

原创 Android IPC通信机制(一)

1. IPC序言IPC即Inter-Process Communication,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程线程是CPU调度的最小单元,是一种有限的系统资源。进程一般指一个执行单元,在PC和移动设备上是指一个程序或者应用。进程与线程是包含与被包含的关系。一个进程可以包含多个线程。最简单的情况下一个进程只有一个线程,即主线程(例如Android的UI线程)。...

2019-05-07 16:09:06 414

原创 Android活动——Activity生命周期与启动模式

1. Activity生命周期分析这里生命周期分为两部分内容:一是典型情况下的生命周期指在有用户参与的情况下,Activity所经过的生命周期的改变另一部分是异常情况下的生命周期Activity被系统回收或由于当前设备的Configuration发生改变从而导致Activity被销毁重建,与典型情况下的关注点略有不同。1.1 典型情况下的生命周期正常情况下会经过如下生命周期:...

2019-05-07 09:42:01 296

原创 Android控件——ListView基本使用

1. ListView简单介绍ListView组件可以实现循环显示自定义组件的功能。简单给出一个ListView的使用实例:首先在你需要显示ListView的XML文件里声明一个ListView:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo...

2019-04-24 17:10:24 7230 1

原创 Android布局介绍

Android系统应用程序一般是由多个Activity组成,这些Activity以视图的形式展现在我们面前,视图是由一个个组件构成。组件即前面的那些Button等等。这些布局的显示需要用到布局管理器。在每个Android项目的目录下都有个res/layout目录,这个目录就是用来存放布局文件的。1. 线性布局LinearLayout又称线性布局,这个布局会将它所包含的控件在线性方向上向上一次...

2019-04-24 15:01:09 451

原创 Adapter基本使用

1. Adapter基本介绍Android是完全遵循MVC模式设计的框架,Activity是Controller,layout是View。因为layout五花八门,很多数据都不能直接绑定上去,所以Android引入了Adapter这个机制作为复杂数据的展示的转换载体,所以各种Adapter只不过是转换的方式和能力不一样而已图解:Model:通常可以理解为数据,负责执行程序的核心运算与判断...

2019-04-24 10:11:45 1088

原创 布局加载器——LayoutInflate

1 LayoutInflate基本使用1.1 LayoutInflate使用场景LayoutInflate是什么?答:一个用于加载布局的系统服务,就是实例化与Layout XML文件对应的View对象,称之为布局加载器,不能直接使用, 需要通过getLayoutInflater( )方法或getSystemService( )方法来获得与当前Context绑定的 LayoutInflate...

2019-04-23 16:09:47 665

原创 Android控件——TextView与EditText

1. TextView使用参考文献:参考文献一:菜鸟教程参考文献二:第一行代码常见单位介绍:dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x...

2019-04-17 16:24:51 1282

原创 Android控件——Button与ImageView

1. Button

2019-04-17 15:52:59 869

原创 Intent使用

1. Intent基本使用1.1 使用显式IntentIntent事Android程序中各组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件之间进行传递数据。被用于启动活动,启动服务以及发送广播等场景。Activity类中提供一个startActivity()方法,专门用于启动活动,接受一个Intent参数,构建好的Intent传入该方法就可以启动目标活动了...

2019-04-16 16:17:58 956

原创 Android基础-Activity基本使用

1 Activity 概念参考文献:Android指南参考文献一:第一行代码参考文献二:菜鸟教程活动是一种可以包含用户界面的组件,主要用于和用户进行交互。活动提供应用程序绘制其UI的窗口。此窗口通常填充屏幕,但可能小于屏幕并浮动在其他窗口的顶部。通常,一个活动在应用程序中实现一个屏幕。例如,应用程序的某个活动可能会实现*“首选项”*屏幕,而另一个活动会实现“ *选择照片”*屏幕。...

2019-04-15 19:41:23 8408 2

空空如也

空空如也

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

TA关注的人

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