android
文章平均质量分 56
海象先生
Thinking More,Ask Why
展开
-
使用内容提供器跨应用分享你的数据(1)
这是作者在android的学习旅途上具有历史性意义的一刻,因为四大组件就剩这一个了,从刚开始的写写样例,到现在已经养成了查看源代码的习惯,从以前android都会拼写错误,到现在开始有了自己的技术博客,这一路的成长真是不易。接下来了解一下四大组件的1/4,contentProvider适用于跨应用读取数据,比如在荷包app中自动填写短信验证码,免去输入的烦恼。其实内容提供器的内部封装了一个SQlit原创 2017-07-15 09:30:41 · 3353 阅读 · 0 评论 -
Android 属性动画看这篇就够了
前言动画绘制与 View 绘制有哪些区别? Android 动画框架是什么?适应场景有哪些? 动画机制Android 内部有一套动画框架,开发者通过调用 Api 能够快速实现华丽丽的动画效果。动画和 View 有着密切联系,其中动画的重绘在 ViewGroup.drawChild 中实现,听说刷新间隔10ms。视图动画View(视图)动画的作用对象是 Vi...原创 2018-04-08 17:35:15 · 319 阅读 · 0 评论 -
HyBird初探:Java 和 JavaScript交互
前言这是 HyBird 开发学习笔记的第一篇,在这一篇中介绍怎样通过 WebView 实现两种语言间的互相调用。参考博客:https://blog.csdn.net/sy18298711239/article/details/51945478调用 JavaScript1. 调用 JavaScript 首先需要构建一个 html 文件<!DOCTYPE html P...原创 2018-04-27 16:41:37 · 265 阅读 · 0 评论 -
自定义 View 不难:带刻度线的 SeekBar(垂直方向)
需求实现垂直摆放根据容器大小均匀等分刻度实现长按监听思路将原本水平的 SeekBar 垂直摆放 添加长按接口根据等分的份数计算每份的长度使用 Paint 逐个画线实现因为有份数是变动的,我们需要自定义属性自定义 View1. 自定义属性我们将份数定义为 tick_mark_count ,整形<?xml version...原创 2018-06-04 16:52:20 · 1361 阅读 · 0 评论 -
垂直摆放的进度条 VerticalSeekBar
前言近期在项目开发中,需要对原生的 SeekBar 进行自定义,因为原生 SeekBar 只能水平放置并且样子太丑了,哈哈哈。需求是构建一个垂直摆放的 SeekBar,所以借鉴了 CSDN 中某位大牛的代码,但当时忙于完成工作,忘记是哪位前辈写的了。话不多说,直接放图对,没错;就是图中调节亮度和音量的进度条,下面 po 出的代码只是垂直摆放控件,图片中具体样式需要自定义Ve...原创 2018-05-30 10:03:27 · 1147 阅读 · 1 评论 -
Andorid 开发中一定会遇到的小问题
前言在开发Android时,经常会遇到千奇百怪的小问题,所以一个个记录下来,方便日后翻看,也希望能够帮到其他开发者。目录国际化时 Button 字符自动大写View 在横屏模式下(虚拟按键)位置偏移国际化时 Button 字符自动大写复现在英语环境下,按钮上的字符全都自动大写了,必须注意到的是,作者并未在样式中规定全部大写,这是因为:在 Andor...原创 2018-09-01 13:45:23 · 144 阅读 · 0 评论 -
5分钟搞定PopUpWindow
前言最近在项目中用到了 PopUpWindow,并且在机型适配时发现华为等具有虚拟按键的手机在横屏状态时会造成 PopUpWindow 显示位置偏移的情况存在,最后完美解决了这个问题,所以把经验分享出来,看能否对你有用。弹窗有很多种实现方式,例如: 1. Dialog 2. DialogFragment 3. Fragment 4. PopUpWindow 5. List...原创 2018-09-01 13:47:47 · 307 阅读 · 0 评论 -
游戏 sdk 开发总结
前言历时 2 个月的时间,终于完成了第一个作品,开发过程中产品的逻辑界面经历了多次改动,而代码保持了简洁清晰,真的学到蛮多东西.目录sdk 开发的不同点屏幕适配混淆自定义控件Gradle 设置sdk 开发的不同点sdk 和普通 app 有什么区别呢?sdk 是作为一个 module ,也就是程序库,它不能独立存在,需要其他app去调用.sdk 不能引入开源框架,比如图...原创 2018-09-20 09:36:52 · 2062 阅读 · 0 评论 -
手写 BufferKnife -- Android Ioc 框架(ViewJet)
前言黄油刀(BufferKnife)使用注解声明控件,不再反复 findViewById,使得代码简洁高效。下面我们手撸一套ioc框架实现黄油刀的效果。Github 地址ViewJet 2.0 (View飞行器)特性BindView 注解声明控件对象自动绑定监听器Gradle 集成实现原理注解+反射注入属性注入方法使用教程添加 Gradle 依赖rep...原创 2018-11-06 23:28:35 · 248 阅读 · 0 评论 -
自定义控件-5分钟手写计步器
前言自定义控件是每个 Android 应用开发者的必备技能,所以一起来试着手写自定义控件,挑战自定义 View 中最好玩的 onDraw.我们仿照 QQ 计步器的样式来做,主要熟悉画笔(Paint)的使用技巧在这里感谢红橙Darren老师的指导绘制步骤自定义属性继承 View绘制背景圆弧绘制前景圆弧绘制文字设置方法自定义属性 // 自定义计步器控件属性 &...原创 2018-12-06 18:11:31 · 277 阅读 · 0 评论 -
自定义控件-58同城加载动画
前言加载动画主要用于网络请求时提示用户等待,用来提升体验,各家 App 的效果千差万别,大多数应用使用 Progressbar ,也有蛮多设计感十足的加载动画,其中 58同城 的自由落体动画就算一个,先来展示最终效果文末附上<深入理解Java虚拟机>电子书,包括 Epub,mobi 等格式目录分析动画效果自定义控件:下落物体自定义控件:阴影深入理解JVM分析该...原创 2018-12-27 10:02:00 · 235 阅读 · 0 评论 -
LauncherActivity 项目分析
前言Launcher 是系统启动后第一个启动的程序,是其他应用程序的入口,也是我们的手机程序的桌面程序。设计模式:MVC目录LauncherLauncherActivity.onCreate LauncherActivity.onResume LauncherActivity.onDestroy Launcher通过查看 AndroidManifest 清...原创 2018-03-21 16:36:47 · 2685 阅读 · 0 评论 -
不看你会后悔的 View 绘制基础
前言自定义 View 时Android 开发中的一个热点知识,我们结合源码了解绘制 View 的必备知识。流程measure 测量layout 位置draw 绘制measure 测量view 大小的测量是在 onMeasure 中实现的,测量过程用到了MeasureSpac,MeasureSpec是一个int类型的值,由高2位的规格模式和低30位的具体尺寸,...原创 2018-02-10 11:14:23 · 210 阅读 · 0 评论 -
5分钟轻松解决Android数据库访问,Cursor类的基础使用
相比于MySql等数据库,SqLite有着它特有的工具Cursor,一次获取一行数据(在数据库中,一行包含了一个主键约束的索引的全部内容)。使用游标来读数据库一般分两步:(就像在游标卡尺上读数)1.横向的获取列名所对应的位置(储存在Cursor中的位置),getColumnIndex方法2.通过得到的位置,getString(index) or getInt(index)3.也可以做循环输出 wh原创 2017-07-14 15:28:56 · 9362 阅读 · 0 评论 -
隐式Intent的使用 app分享功能的实现
在项目开发中,分享功能已成为必备,下面我们将使用隐式的Intent来实现创建分享几个必要的参数 1.将被分享的类型:文字,图片,视屏 2.选择器的标题 3.将被分享的数据在Activity中新建一个shareText方法public void shareText(String share){ String mimeType="text/plain";//纯文本 String c原创 2017-05-31 11:22:31 · 4709 阅读 · 1 评论 -
Android RecyclerView适配器的基本工作流程
RecyclerView是一个高级的SrollView,我以前是这么理解的,准确的来说它是ListView的plus版。 (源代码来自优达学城练习题+作者手写)和ListView一样少不了适配器,并且要在适配器中实现ViewHolder,item的View对象将在这里(ViewGroup)实例化。适配器需要重写三个方法1.onCreateViewHolder 创建ViewHolder,指定一原创 2017-05-15 11:08:21 · 9806 阅读 · 0 评论 -
处理RecyclerView的点击事项
之前作者只是建立了不能响应点击事件的RecyclerView,然而需要实现RecyclerView的点击事件,就需要建立一个接口(在适配器中)。之前操作的链接 http://blog.csdn.net/maokai1229/article/details/72123600 因为在适配器的ViweHolder中,会有许多Item的新建,而把item看成一个按钮,就需要事先实现按钮的接口(这里不需要原创 2017-05-19 14:51:12 · 3392 阅读 · 0 评论 -
认识 android-job
https://zhuanlan.zhihu.com/p/26093468“>原文链接 对于现在的应用来说,在应用生命周期之外运行一些后台任务可以说已经是一项必不可少的需求了。这些任务可能是在某个时间点提醒用户什么事情或同步本地数据到服务器等等。 对此 Android 有一系列方式来实现这些后台任务:1. JobSchedularJobSchedular 在 Lollipop (API leve转载 2017-08-01 14:52:27 · 5001 阅读 · 0 评论 -
IntentService的最简单实现
如果直接继承 Service ,那就需要程序猿自己开启和关闭线程。而Android 官方推出了 IntentService 工具,免去开启线程的烦恼,而且它还有自动关闭线程的功能,牛逼了。为了学习NDK,最近一直在上网络课,做开发如果没手艺那么就离淘汰不远了,后期还会和大家分享关于 OpenCV 和 OpenGL 的相关知识,希望我的分享能成你的干货 。目录IntentService 的结构I原创 2017-07-25 09:40:50 · 4075 阅读 · 0 评论 -
Material Design 原来这么有趣
前言在材料设计中,有许多设计理念。运用现实生活中的材料,随时进行设计,这是它的核心。目录平面高度FAB 悬浮按钮CoordinatorLayout颜色字体平面平面就是 View 的抽象描述,toolBar 是一个平面,一个 Crad 也是一个平面,总之,用来包裹内容的,并且投射阴影的(在 MD 中通过阴影来实现部件的分层)。基本准则:最好不要同时出现5个平面。 高度高度是平面离背原创 2017-08-10 09:54:44 · 7365 阅读 · 1 评论 -
Notification 都不知道,还学什么 Android 应用开发
目录Notification 的概念在 Notification 中启动 Activity在 Notification 中启动 Service实现 ActionNotification 的概念是 Android 系统提供的一个功能,所以它独立于 Activity 存在 。 使用 NotificationManager 来调用。在 Notification 中启动 Activity点击原创 2017-07-28 21:10:54 · 4716 阅读 · 0 评论 -
可能是Android最简单的欢迎页面实现
例如QQ的经典欢迎页面 前言目前市面上的大多数 App 都有一个欢迎页面,有如下优点: 1. 利用展示欢迎页面的时间来加载数据 2. 展示品牌设计风格步骤创建布局文件设置欢迎页面延时 2S 跳转创建布局文件<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:an原创 2017-10-27 09:44:34 · 386 阅读 · 0 评论 -
最简单靠谱的底部导航栏实现!!!
前言Android实现底部导航栏的方式很多,有5种实现方式。 作者使用过两种:RadioGroup+Fragment;FragmentTabHost;其中第一种更容易上手。实现效果目录创建RadioGroup监听,切换 Fragment创建RadioGroup <RadioGroup android:id="@+id/radiogroup" android:l原创 2017-11-12 20:17:42 · 1574 阅读 · 0 评论 -
Glide 给你点颜色看看
前言任何一款能抓住用户的App都离不开图片加载这个老生常谈的话题,所以我们先了解一个利器:Glide 框架。Glide 的优点:能加载 gif 动图,这是 Picasso 做不到的。从Github的官方介绍中,我们了解到 Glide 是一个很好用的框架,它加载图片既快速又能平滑,而且又配适主流网络框架。### 目录 * Glide 集成 * Glide 的基本使用Glide 集成在Gra原创 2017-12-08 10:49:50 · 354 阅读 · 0 评论 -
Java 编程思想笔记(二)
前言阅读《Java 编程思想》,《Android 源码设计模式》这两本书后,发现了以往编码过程中有很多代码可以优化的点,以及当时的优化方案,所以记录下来。从事 Android 开发快一年时间了,对编码的开始有了感悟,项目需求变更时,我们最好不要直接修改原有代码,最好使用添加的方式来实现,避免破坏原有代码的稳定,最好定期进行部分重构,及时清除代码中的“垃圾”。单一责任原则一个类应当包含某功...原创 2019-03-09 15:56:57 · 157 阅读 · 0 评论