自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过2048学习自定义view(二) 滑动事件监听 与 事件回调

简介续上一篇文章(通过2048学习自定义view(一))的进度,本期加上了用户上下左右滑动的事件与总分改变时的回调(下文有回调思想的讲解,干货),其实都很简单。。时间主要花在算法设计上,但算法不是本篇文章的重点所以不给出代码(`・ω・´)。所以现在的进度是基本可玩但没有动画。(下期实现动画)效果图不要说丑。。我也知道,但这不是重点,还有数字大小只适合一位数。。但实在懒得改了  ̄へ ̄

2018-02-01 15:33:29 569

原创 通过2048学习自定义view(一)

简介在刚学安卓的时候就尝试着用TextView和LinearLayout写过一个没有动画的2048,现在自学了快半年了,想着写一个2048View来巩固一下之前学的自定义view的知识。(写这篇文章时只完成了开始部分,后面的下一篇文章再补)在这里强烈推荐 :HenCoder 的自定义view教程本篇目标作为自定义view,所有的绘制过程都应该在onDraw()里完成,而且应该满足各

2018-01-30 16:26:15 987

原创 Android 简易 自定义ImageView 实现圆形头像

实现思路:首先把xml文件传过来的bitmap放缩为组件对应的大小,再裁剪成正方形,然后通过Paint.setShader(new BitmapShader())方法,将bitmap设置为填充色,最后画一个圆搞定。效果:源码 :import android.content.Context;import android.content.res.TypedArray;import android.

2017-11-16 21:16:04 408

原创 Android 几种常见的内存泄漏

内存泄漏:指无用对象不能被GC回收,从而持续占领内存。场景:1 . 单例: 当singleton为静态变量的时候,其生命周期与APP一样长,但如果该单例中持有其他对象的引用(通常为context对象)时,便会造成该对象不能被GC,从而导致内存泄漏。改进:使用context.getApplicationContext()。2 . 内部类: 非静态内部类默认持有一个外部类对象的引用,当内部类中声明

2017-11-13 17:21:41 183

原创 常用框架 学习笔记

整理自:http://www.imooc.com/article/20745基础用法:导入依赖:compile ‘com.github.bumptech.glide:glide:3.7.0’先with(),再load(),最后into():Glide.with( activity或fragment等 ).load( 资源,如File、url、 本地图片、应用资源、二进制流、U

2017-11-07 22:28:26 215

原创 java 单链表简单实现

为了方便学习写的简单的链表,方便学习算法与数据结构的同学。 不多解释,直接看代码:public class Link_List<T> { private node head = null; private node end = null; private int size; private class node{ public T value;//值

2017-11-05 15:54:55 205

原创 LeetCode 49 Group_Anagrams Java实现

题目在注释里,直接看有点乱,先说说大体思路: 就是将每个字符串遍历一遍再存到set中,如果装结果的map中有一样的set,则认为已经遇到过一样的字母的字符串,然后通以set作为key从map中拿到装索引值的list,将索引值添加进去。遍历完了再通过 List< HashSet< Character>> group拿到对应的索引再返回。该解法不适合字符串中有重复字母的情况。。。时间复杂度算不出来>

2017-11-01 21:44:05 193

原创 快速排序

简单说一下实现原理:如图,从数组左边(index= 1)遍历到数组最右(index= array.length-1)。选第一位(index= 0)作为target将数组分为两半。f为分解点,f之前的(包含f)都比第一位小,之后的都比第一位大。当完成遍历后,数组将被分为两半,最后将index = f的元素与index= 0的元素交换位置,便完成了快速排序的第一步。之后只要对 f 的两边进行递归,当递归

2017-10-30 16:02:01 144

原创 Handler机制(案例:ViewPager实现轮播图)

简介 :Handler是一种线程间通信的机制。由于Android是线程不安全的,所以规定只有主线程(UI线程)可以更新UI,所以当你需要在子线程更新UI的时候便可以使用Handler实现。当然Handler的作用不局限与更新UI,可以说:Handler可以实现线程间通信。用法:1. 在主线程创建Handler实例,通过重写handleMessage方法获取并处理消息: private Handler

2017-10-27 14:49:11 336

原创 四大组件--Activity(Fragment)

简介提供界面,与用户交互。(废话)生命周期:4种状态:running:运行 paused(失去焦点,被其他activity占据,失去了与用户交互的能力,但并没有被销毁。) stopped:被覆盖,不可见,内存紧张就不会被销毁。 Killed:销毁启动—>onCreate()—>onStart() 正在启动但没有界面—>onResume()有界面可交互

2017-10-26 21:38:09 327

原创 四大组件--ContentProvider

简介:ContentProvider实现访问其他APP的资源(系统资源),其中ContentProvider提供数据,ContentResolver接收并操作数据。当应用使用ContentProvider暴露自己的数据时,不管该应用是否启动,其他APP都可通过Uri访问其数据(增删改查)。 通常ContentProvider为单例模式。Uri类简介:类似于网站的URL,由头部(content://

2017-10-22 20:14:31 290 1

原创 四大组件--BroadcastReceiver

简介:用于监听全局的广播,相当于一个全局的监听器,接收APP或系统应用发出的Broadcast Intent,可以用系统中不同组件之间的通信(例如Service与启动它的APP)。BroadcastReceiver拥有自己的进程,只有存在与之匹配的Intent被广播出来,便会激活(即使所在程序退出)。使用:BroadcastReceiver: 重写onReceive(Context con

2017-10-22 16:49:39 230

原创 四大组件--Service

本文用于个人学习。简介:Service与Activity类似,但一直在后台运行,没有UI,当应用在运行时不需要与用户交互,即可考虑使用Service,否则使用Activity。Service与Activity一样不能进行耗时操作,否则会出现ANR异常。注:下文客户端指启动或绑定service的组件(Context),不知道该叫什么所以统一用客户端代替( ̄▽ ̄)~*生命周期:1.

2017-10-22 15:11:14 203

空空如也

空空如也

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

TA关注的人

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