
Android
文章平均质量分 60
「已注销」
stay hungry stay foolish
展开
-
android视频播放库
因为要学习使用当前流行的视频播放库,下面介绍当前比较流行的四款视频播放库。gsyvideoplayerijkPlayerExoPlayerjiaoziVideoPlayer注:1、所有均需要添加网络权限。2、所有均需要在MainActivity里添加属性android:configChanges=“orientation|screenSize|keyboardHidden”...原创 2019-08-20 17:17:04 · 1496 阅读 · 0 评论 -
FC 12.5 卡片式布局
CardView是实现卡片式布局的重要控件(appcompat-v7),它是FrameLayout的加强版,只是额外增加了圆角和投影的效果,立体感。CardView 的基本用法 定义CardView布局,通过app:cardCornerRadius属性指定卡片圆角的弧度; app:elevation属性指定卡片的高度。与FloatingActionButton一致。 ...转载 2018-11-24 13:35:29 · 325 阅读 · 0 评论 -
FC 12.5.2 关于AppBarLayout
在这里推荐一篇文章:Android 详细分析AppBarLayout的五种ScrollFlags上一篇文章将精美的水果图片展示出来了,但是有出来了一个新的问题:Toolbar被Recycleview挡住了,怎么解决呢?原因分析:CoordinatorLayout控件是一个加强版的FrameLayout,FrameLayout中所有的控件在不进行明确定位的情况下都会默认摆在布局的左上角,从而...转载 2018-11-24 17:04:57 · 189 阅读 · 0 评论 -
FC 12.6 下拉刷新
前几篇文章已经将界面写的差不多了,接下来添加下拉刷新的功能Material Design 中制定了Android的统一的下拉刷新的风格,SwipeRefreshLayout(support-v4)是用于实现下拉刷新的核心类。添加下拉刷新修改activity_main.xml 在RecycleView外层嵌套SwipeRefreshLayout(由于Recycleview变成了Refr...转载 2018-11-24 17:47:11 · 179 阅读 · 0 评论 -
FC 12.7 可折叠式标题栏
前边的文章介绍了Toolbar标题栏,相应RecyclerView滚动事件来进行隐藏和显示,Material Design并没有限定标题栏必须长这个样子,我们借助CollapsingToorbarLayout来实现一个可折叠式标题栏的效果。使用CollapsingToorbarLayoutCollapsingToorbarLayout是一个作用于Toolbar之上的布局,由Design S...转载 2018-11-25 09:05:08 · 213 阅读 · 0 评论 -
安卓存储之文件存储
今天两场考试,不过还好,都是开卷,哈哈。。下午放松,晚上继续学习,本来想写一下litepal的各种增删查改,但是从两个角度来看,至少现在来说是没有必要写了:其一,自己在近期应该不会用到,而且用到的时候看自己的那篇博文就应该能行;其二网上有那么多大神写了一系列关于litepal的用法,到时候自己再去查也不迟,所以就不写了。但是也不能了浪费大好时光,时间也不多了,所以学习一下文件存储吧。(废话一大堆,...转载 2018-06-06 21:43:21 · 2757 阅读 · 0 评论 -
安卓存储之AndroidStudio自带的sqlite配置
当我们使用sqlite数据库时,创建好数据库,能在File Explorer里看到databases目录下多了一个.db文件,但是这个表是无法查看数据库表里的内容的。所以我们准备换一种查看方式,使用adb shell来对数据库和表的创建情况进行检查:adb是AndroidSDK中自带的一个调试工具,使用这个工具可以直接对连接在电脑上的手机或模拟器进行调试操作,它放在sdk的platform-...原创 2018-06-05 18:29:50 · 17559 阅读 · 2 评论 -
安卓数据存储之SharedPreferences存储
(此博文使用的工具为Eclipse)首先介绍一下SharedPreferences是使用键值对的方式来存储数据的,每次存储数据的时候需要给这条数据提供一个对应的键,这样读取数据的时候就可以根据这个键吧对应的值取出来。使用SharedPreferences来进行数据持久化要比使用文件方便很多。1、将数据存储到SharedPreferences中:要想使用SharedPreferenc...转载 2018-06-04 17:05:43 · 637 阅读 · 0 评论 -
recyclerView实现瀑布流布局及其单击事件
接上一篇文章,修改部分代码即可实现了。修改book_item.xml文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_paren...转载 2018-06-04 09:29:09 · 716 阅读 · 0 评论 -
RecyclerView实现纵向滚动和横向滚动
为方便自己以后学习,自己记录学习,大家也可以参考,有什么问题一起探讨。今天学习RecyclerView,下边来说一下实现数据垂直滚动和数据横向滚动。先上图为敬: 所用工具:Android Studio纵向滚动1、添加依赖库:打开app/build.gradle文件,在dependencies闭包中添加如下内容(compile 'com.android.suppo...转载 2018-06-03 17:44:41 · 15444 阅读 · 0 评论 -
开发艺术探索之Activity
接下来的几天学习任老师的《Android开发艺术探索》,这里做相关的笔记(参考:文章)(同样,作为学习书籍,文章定义为转载)生命周期全面分析 典型情况下的声明周期 异常情况下的生命周期(两种情况) 四种启动模式 启动方式1:LaunchMode 启动方式2:Flags(不常用) IntentFilter匹配规则生命周期全面分析典型情况下的生命周期生命周...转载 2018-12-01 22:09:31 · 171 阅读 · 0 评论 -
开发艺术探索之View的事件体系
参考文章:要点提炼|开发艺术之Viewview基础 view的滑动(三种) view弹性滑动(三种) view事件分发机制 view滑动冲突1 view基础1.1什么是viewView是所有控件的基类,其中也包括ViewGroup在内。ViewGroup是代表着控件的集合,ViewGroup可以包括多个ViewGroup或多个View。从某种角度上来讲Android中的控件可...转载 2018-12-05 21:52:30 · 206 阅读 · 0 评论 -
FC 12.7.2 充分利用系统状态空间
上一篇文章我们已经写好了,而且效果也不错,不过水果的背景图片和状态栏没有融合在一起,融合在一起效果就更好了。Android5.0系统之后支持对状态栏和背景进行操作(使背景图和状态栏融合)。设置android:fitsSystemWindows属性 添加values-21目录,编写styles.xml (为照顾5.0之前的系统,修改values里是styles.xml) 修改Andro...转载 2018-11-25 09:28:24 · 241 阅读 · 0 评论 -
FC 12 第一行代码Material Design学习总结
Material Design简介 我为什么把这一章分成好几个文章来写? 遇到的问题及解决方法 这两天写的文章的目录Material Design 简介Material Design 是由Google的设计工程师们基于传统优秀的设计原则,给丰富的创意和科学技术所发明的一套全新的界面设计语言,包含了视觉,运动,互动效果等特性。它的出现,使Android的UI界面首次超过了iOS。为了...原创 2018-11-25 09:43:41 · 227 阅读 · 0 评论 -
FC 13.1 全局获取Context
在很多地方需要用到Context,弹出Toast、启动活动、发送广播、使用通知等。活动本身就是一个Context对象,但是很多情况下逻辑代码将脱离Activity类,但又需要Context,这时我们就需要一个解决方案来解决这个问题了。Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。我们可以定制一个自己的Application类,以便...转载 2018-11-25 17:56:43 · 211 阅读 · 0 评论 -
FC 13.2 使用Intent传递对象(Serializable和Parcelable)
使用Intent的putExtra方法可以传递数据,但是不能直接来传递自定义的对象。接下来学习两种床底对象的方式Serializable方式 Parcelable方式 两种方式的详细讲解Serializable方式Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态,序列化后可以再网络上传输,或存储到本地。序列化的方法就是让一个类实现Serializ...转载 2018-11-25 19:18:01 · 310 阅读 · 0 评论 -
FC 13.3 定制自己的日志工具
Android自带的日志工具已经非常强大了,但是在打印日志的控制方面还做的不够好。当我们编写一个比较大的项目时,需为了方便调试会写很多的日志,项目完成后调试的日志的代码肯定要删掉,但是到了维护的时候又得写日志代码,这样就很麻烦。最好的办法就是在程序上线就把日志屏蔽掉。定制日志工具LogUtil首先定义六个常量,依次递增,前五个对应Android中的日志类型,第六个用于屏蔽日志。 定义...转载 2018-11-25 20:12:50 · 186 阅读 · 0 评论 -
开发艺术探索之View的工作原理
文章按原著的顺序,先介绍所需要的基本概念,然后了解view的三大流程:measure(尺寸)、layout在(位置)、draw(画出来)基本概念: 了解ViewRoot和DecorView 理解MeasureSpec View的工作流程 自定义View(略)了解ViewRoot和DecorView推荐阅读:【了解ViewRoot和DecorView】(个人理解:...转载 2018-12-07 17:59:18 · 123 阅读 · 0 评论 -
FC 12.3.1 滑动菜单DrawerLayout
滑动菜单是 Material Design 中最常见的效果之一。所谓的滑动菜单就是将菜单选项隐藏起来,通过滑动来将菜单显示出来。既节省了屏幕空间,又实现了非常好的动画效果。借助DrawerLayout控件来实现滑动菜单。我们接着上一个toolbar界面,修改activity_main布局:最外层控件使用DrawerLayout(由support-v4库提供),DrawerLayout中...转载 2018-11-23 17:38:03 · 342 阅读 · 0 评论 -
FC 5 广播机制
广播的注册方式:动态注册 静态注册广播的发送方式:普通广播 有序广播 本地广播特殊说明不要在onreceive中添加过多的逻辑或超时操作 本地广播无法通过静态注册方式来接受关于动态注册&关于静态注册一种是在活动里通过代码动态注册,另一种在配置文件里静态注册。动态注册的接收器必须要在程序启动之后才能接收到广播,而静态注册的接收器即便程序未启动也能接收到广播...转载 2018-11-17 10:43:03 · 154 阅读 · 0 评论 -
文章汇总
这里是相关博客的导航。学习方法之记忆方法书单一些项目时间进度(累计下载已突破1.2w)项目开发——课程表查询APP通过经纬度查看地图位置的appandroid第一行代码Activity的最佳实践、活动中使用菜单Menu、 随时随地退出程序、启动活动的最佳方法对话框AlertDialog引入布局、创建自定义控件提升listview的运行效率广播机制运行时权限及其获取通讯录...原创 2019-07-17 23:49:57 · 276 阅读 · 0 评论 -
android MVP
文章 Android MVP模式 简单易懂的介绍方式 讲的很透彻,从这篇入手足矣。(github:https://github.com/kaedea/Android-MVP-Pattern)然后学习Google给出的的 todo-mvp 示例推荐阅读 从google todo-mvp示例再次学习MVP。应用实例:最适合android的MVP模式...原创 2019-07-16 15:39:16 · 207 阅读 · 0 评论 -
微信分享相关:报错“微信:包名不对,请检查包名是否与开放平台填写一致”
背景:应用或多或少会接入微信分享的功能。但是由于某些原因,自己配置的应用信息与开放平台的信息一致,但还是会报错:“包名不对,请检查包名是否与开放平台填写一致”,接下来就用两个实验来验证,并找到相关的解决办法。实验实验一步骤微信正常分享原始签名的应用(使微信缓存一些数据)使用更换签名的app进行分享,查看是否成功结果:报错微信:签名不对,请检查签名是否与开放平台填写的一致...原创 2019-07-16 11:15:36 · 79002 阅读 · 0 评论 -
android实现微信分享功能
本片文章的主要内容:微信分享,包括分享到好友、分享到朋友圈。解决方案:使用原生微信提供的sdk及其解决方案使用已有的轮子(github里找)使用第三方,如极光推送等。方案一首先,来探讨一下第一种方案:原生的微信分享。在微信开放平台上注册自己的app,等待审核。(可以参考文章:微信开放平台创建应用。这个过程可能会很长,原因可能是申请的人太多,审核也比较严格)在微信开放平台注册自...原创 2019-07-16 11:12:49 · 8515 阅读 · 0 评论 -
Android使用jjdxm-ijkplayer播放视频
添加依赖更改配置信息添加权限布局文件逻辑添加依赖 implementation 'com.dou361.ijkplayer:jjdxm-ijkplayer:1.0.5'更改配置信息AndroidManifest在所在的Activity里添加配置android:configChanges="orientation|screenSize|keyboardHidden"添加...转载 2019-05-18 13:39:57 · 1729 阅读 · 0 评论 -
OkHttp上传Json嵌套对象
应需求,需要传递一个如下的表单,使用传统的formbody提交键值对是不太好实现的。{ "properties": { "name": "Imfondof", "age": 17, "sex": "不详" }}所以用到了Json:将内部的属性封装到一个Json对象里,然后将这个Json对象作为主Json对象的值传入将主Json转化...原创 2019-05-17 01:38:28 · 1439 阅读 · 1 评论 -
记录《时间进度》(人生进度条)(包含自定义进度、小插件)的开发
最近灵感突突然袭来,想着做一个时间精度条:今天度过了多少,这周度过了多少,这个月度过了多少,今年度过了多少(以及这一辈子度过了多少),刚开始真的只是自己想做,不知道小爱同学有了【对小爱同学说人生进度条你就看到了】,后来有使用者提醒到了小爱,自己发现小爱同学的界面做的还行,于是就仿照着界面做了这个app,目前来说还没有什么重大的bug(毕竟作为一个极小的应用再有bug的话简直没谁了。。)先看一下界面...原创 2019-05-20 23:59:11 · 8202 阅读 · 0 评论 -
正能量语录
关于坚持 关于运动 关于人生 关于自信 关于哲理关于坚持【20181122】你今天的日积月累,早晚会成为别人的望尘莫及。【20181125】贵有恒,何必三更起五更睡;最无益,只怕一日暴十寒。【这个语录也是一位大神的座右铭】关于运动【20181122】一篇关于陈意涵运动的文章关于人生【20181122】昨日种种,皆成今我,切莫思量,更默哀。从今往后,怎么...原创 2018-11-22 21:57:58 · 499 阅读 · 0 评论 -
大牛经典语录,句句获益良多
文章转自:大牛经典语录,句句获益良多1、很多问题不见得会出在你身上,但你亦需要想法解决问题,否则就会变成你的问题;2、懂得但策略的说不(不会这个准备累死吧,程序员);3、我考进事业单位,呵呵,没有传说中的那么好环境。这里待遇低下,事情繁杂,领导众多,群众骚扰得我不胜其烦;4、真的,程序员走了管理路线,反而会感到人生非常多浪费时间,太多的精力用来应付各类琐事……5、不只会埋头写程...转载 2018-12-10 22:24:15 · 1725 阅读 · 0 评论 -
FC 2.6.2 随时随地退出程序
使用一个专门的集合类对所有的活动进行管理。新建ActivityCollector类。 然后在BaseActivity中调用方法,所有的Activity继承BaseActivity新建ActivityCollector类。public class ActivityCollector { public static List<Activity> activiti...转载 2018-11-17 10:40:47 · 186 阅读 · 0 评论 -
FC 2.2.5 在活动中使用菜单Menu
添加方式 静态添加(引入xml) 动态添加(代码里写菜单) 菜单 选项菜单,OptionsMenu,每个Activity只有一个 子菜单,SubMenu 上下文菜单,ContextMenu,长按视图控件后出现的菜单 选项菜单1、在res目录下新建一个menu文件,右击res目录 NEW Directory,输入人文件夹名menu,点击ok,在这个文件夹下新建名...转载 2018-11-16 23:20:32 · 237 阅读 · 0 评论 -
FC 2.6.3 启动活动的最佳方法
场景:当活动A跳转到活动B,而且需要传递数据的时候。代码:在SecondActivity中编写actionStart()方法。public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent(context, Sec...转载 2018-11-17 10:41:04 · 246 阅读 · 0 评论 -
FC 3.4 引入布局、创建自定义控件
引入布局 创建布局 title.xml 使用include属性引入布局(并重写oncreate方法) 创建自定义控件 创建布局 title.xm 创建TitleLayout类,继承LinearLayout 布局中使用自定义控件 活动中添加响应事件 创建布局 title.xml:<?xml version="1.0" encoding="utf-8"?...转载 2018-11-17 10:42:13 · 186 阅读 · 0 评论 -
FC 3.5.3提升listview的运行效率
convertView ViewHolder在普通的listview中,自定义的adapter里的getview方法,每次都会将布局重新加载了一遍,其实没有必要,使用convertView对加载好的布局进行缓存,以后的进行重用即可。使用ViewHolder,用于对控件的实例进行缓存。当convertView为null时,创建一个ViewHolder对象,将控件的实例存放在ViewHolde...转载 2018-11-17 10:42:38 · 180 阅读 · 0 评论 -
FC 7.3.2 运行时权限及其获取通讯录实例
定义 24种运行时权限 获取通讯录实例运行时权限(Dangerous Permissions)在保护用户隐私方面:Android6.0为了更好的保护个人隐私,添加了运行时权限:分为两类,一类是Normal Permissions,这类权限不涉及个人隐私,不需要用户进行授权,比如手机震动,访问网络; 一类是Dangerous Permissions,这类权限涉及个人隐私,需要用...转载 2018-11-17 21:02:00 · 283 阅读 · 0 评论 -
Activity的最佳实践
文章目录知晓当前是在哪一个活动 随时随地退出程序 启动活动的最佳方法知晓当前是哪一个活动新建BaseActivity类,继承AppCompatActivity重写onCreate()方法 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.o...转载 2018-11-17 10:40:19 · 213 阅读 · 0 评论 -
FC 3.2.6 关于对话框AlertDialog
确认对话框 单选对话框 多选对话框 列表对话框 自定义对话框这里,对话框一开始都要实例化一个AlertDialog.Builder对象,然后在它身上set各种属性,有关图标、标题和内容,然后设置每个Dialog的事件。设置好后用Builder的create()方法就能得到一个Dialog,最后把对话框show()出来。确认对话框用setPositiveButton()和se...转载 2018-11-17 10:41:19 · 196 阅读 · 0 评论 -
开发艺术探索之Drawable
Drawable表示的是一种可以在Canvas上进行绘制的抽象的概念,他的种类有很多,最常见的颜色和图片都可以是一个Drawable。(这篇文章粗略的介绍Drawable,下一篇文章详细介绍Drawable的ShapeDrawable )Drawable简介 Drawable分类 自定义DrawableDrawable简介Drawable有很多中,他们都表示一种图像的概念,但是...转载 2018-12-08 18:05:18 · 120 阅读 · 0 评论 -
FC 12.4.1 关于悬浮按钮FloaActionButton(SnackBar、CoordinatorLayout)
FloatingActionButton也是Design Support 库中的一个控件,来实现悬浮按钮的效果。还可以给这个按钮指定图标,表示来做什么。使用FloatingActionButton提前准备好一个ic_done.png【素材地址:点我】修改activity_main.xml在主屏幕中加入了一个FloatingActionButton 通过layout_gravity...转载 2018-11-24 09:33:00 · 280 阅读 · 0 评论 -
FC 12.3.2 滑动菜单NavgationView
我们可以在滑动菜单页面定制任意的布局,不过谷歌给我们提供了一种更好的办法——使用NavgationView,NavgationView是Design Support库中的一个控件,它不仅是严格按照 Material Design 的要求设计的,而且可以将滑动变的非常简单。导入依赖包compile 'de.hdodenhof:circleimageview:2.1.0'compile '...转载 2018-11-23 20:03:06 · 220 阅读 · 0 评论