自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (3)
  • 收藏
  • 关注

原创 属性动画源码分析

本文主要结合源码阐述以下几部分:1.属性值不断变化是怎么做到的?定时器?Handler?Choreographer?2.值是怎么设置到View上的?3.插值器和估值器何时起作用的?4.自定义插值器,估值器一. 常规用法可以使用ObjectAnimator,ValueAnimator,View 的animate(),AnimatorSet 等来实现,此处对如何使用不做展开。 ObjectAnimator objectAnimator = ObjectAnimator.o.

2021-02-02 17:18:53 170

原创 Retrofit源码分析

本文主要考虑从使用处为切入口梳理一下Retrofit从创建对象到发起网络请求,拿到响应的整个流程。主要包括,但不限于以下几个方面:1.整体大致流程2.Converter是如何起作用的?3.CallAdapter是如何起作用的?4.线程切换Executor5.如何自定义Conerter和CallAdapter?一. 整体调用流程a.通用流程Retrofit的创建采用的是建造者模式,通过Retrofit.Builder的链式调用,完成对Retrofit的属性配置,如clien

2020-09-30 17:05:55 146

原创 ViewStub源码分析

为了优化UI加载,通常会把不需要立即显示的View放到ViewStub里,在需要的时候按需加载,以此来优化UI性能。特点1.ViewStub 是一个轻量级的View,没有尺寸,不绘制任何东西2.实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View3.缺点是ViewStub所要替代的layout文件中不能有<merge>标签V...

2020-02-25 22:23:50 172

原创 HandlerThread , IntentService源码分析

一. HandlerThreadHandlerThread的说明时:/** * 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 calle...

2019-11-09 13:33:56 150

原创 Android面试题总结一

java中==和equals和hashCode的区别 ==是值比较,对于基本类型就是指变量的值,对于引用类型,指的是变量对应的地址。 equals 继承自Object,底层默认实现是==,各子类可以按需重写。 hashCode和equals一般配合使用,基本规范equals相等,则hashCode一定要相等。反之不一定。hashCode算法默认会调用nativ...

2019-05-04 09:08:48 123

原创 Android sdk升级爬坑记录

入职新公司,第一份任务是将几个项目的target升级到Pie(28)。以下是在升级过程中遇到,搜集,整理的一些问题,在此纪录:1. 报 java.io.IOException: Cleartext HTTP traffic to dict.youdao.com not permitted错误原因分析从Android 6.0开始引入了对Https的推荐支持,与以往不同,Android...

2019-05-04 09:05:04 786

原创 git常用命令总结

Git 常用命令总结1.拉取服务端代码//从远程的origin仓库的master分支下载到本地并新建一个分支temp$ git fetch origin master:temp$ git diff temp //比较差异$ git merge temp //合并$ git branch -d temp // 删除临时分支Push gerrit服务器失败,报u...

2019-03-05 17:14:27 1530

原创 RecycleView使用总结二

一. 摘要    RecycleView没有像ListView那样直接提供添加headerView和footerView的方法,所以要实现这样的效果需要自己去实现。本文记录了通过item类型作为区分,来为列表添加headerView的整个流程。同时,记录了针对线性布局,网格布局,瀑布流布局的适配方法。   左右滑删除,拖动Item是很常见的功能。针对这些功能,安卓API中提供了相关的辅助类Item...

2018-06-03 11:25:41 1237

原创 RecycleView使用总结一

1. RecycleView和ListView的区别功能方面:2.抽象ViewHolder,增加RecycleView的可扩展性3.自定义ItemDecoration

2018-05-13 11:54:46 1612

原创 SurfaceView学习总结之基本使用

一:SurfaceView基本使用          SurfaceView和View的资料很多,各种资料都会提到的比如什么安卓系统16ms刷新,耗时太久会造成视觉卡顿,view是主动刷新,SurfaceView适用于被动刷新,SurfaceView可以开启一个子线程在里面进行绘制操作,因此对于大量耗时操作的可以优先选用它,等等。此处不表。SurfaceView的基本使用套路,有以下几个点:1.自...

2018-03-10 12:32:56 692

原创 设计模式之外观模式

设计模式之外观模式

2017-11-19 22:09:34 181

原创 设计模式之装饰者模式

设计模式之装饰者模式

2017-09-06 23:57:15 252

原创 设计模式之适配器模式

适配器模式。

2017-09-04 22:56:29 189

原创 设计模式之观察者模式

设计模式之观察者模式

2017-09-03 11:46:43 216

原创 虚拟遥杆实现

该demo实现的大致功能如下:1.虚拟遥杆操作界面 2.根据操作移动场景中的物体。

2017-08-05 12:44:32 834

原创 结构体和二进制转换

记录:using UnityEngine;using System.IO;using System.Runtime.InteropServices;/// /// 结构体和二进制相互转换/// public class FileTest11 : MonoBehaviour { private int size; // Use this for initialization

2017-08-05 08:48:17 3460

原创 Unity移动物体到鼠标点击位置

记录:          1.目的:   移动物体到鼠标点击处屏幕所对应的空间位置,并使物体正对着点击的对象,不能倾斜。            首先,需要获取点击屏幕所对应的空间位置,这可以通过先获取屏幕坐标,然后转成空间坐标;也可以通过射线直接获取到空间位置。            其次 ,移动物体到目的地,可直接通过差值进行移动,使物体看向目标点,不能直接使用LookAt(),因为

2017-07-29 12:15:19 7393 1

原创 截图存储到SD卡

记录:获取场景图像存储到SD卡中,获取的图像是当前场景的截图,没有UI信息。注意点:       1.Player settings中设置存储写权限。       2.SD卡根目录:@"/storage/emulated/0/”       3.将读取屏幕的相关函数放在OnPostRender()中,放在其他位置报错:        ReadPixels was calle

2017-07-29 11:41:58 539

原创 视频播放--MovieTexture和VideoPlayer

MovieTexture,Video Player

2017-07-16 11:41:59 2157

原创 Unity3D模型导入缩放问题

最近工作要求,把构建的U3D场景中的每一个层级的scale都显示成1,说是便于开发时阅读以及后续模型的扩展。便查阅及测试了一下模型导入Unity3d的规则。得到了以下总结。(使用3dMax  建模,Unity 5.X测试)       1.不管怎样构建的模型(系统单位和导出单位设置成什么),将模型拖入到U3D工程,然后加入到scene中,不作任何处理,则模型大小和所建立的模型一样大,但是Ins

2017-06-25 09:54:35 16733

原创 Unity截屏,Raycast射线,绕某条边旋转

该应用的主要功能就是在移动设备上创建一些文件夹,让使用者把要展示的图片放到相应的文件夹里,然后可通过APP浏览文件夹里的图片,并实现放大,缩小,旋转,调整图片空间位置等功能,以此来查看图片的UI效果。在调整好效果图之后,进行截图保存

2017-04-04 21:33:12 1693

原创 Unity3D UGUI学习笔记

本文主要记录的是:Unity3d中UI设计方面的知识,重点记录各UI组件的使用,属性设置。     U3D的UI控件放在GameObject>UI目录下。所有添加的控件都会放在Canvas目录下(下图左所示),这些控件在Canvas中的顺序,对应着它们的渲染顺序,放在下面的控件可能会把上面的遮蔽掉(下图右所示)。      下面具体记录一下各控件的使用介绍:1.Butt

2016-10-21 15:24:46 647

原创 Java知识点总结三

1.switch是否可以使用String类型变量作为判断条件。package test1.com;public class SwitchTest { public static void main(String[] args) { //局部变量使用前必须初始化,否则编译不通过。成员变量没给初值,会自动初始化。 //jdk7之前只支持byt

2016-09-17 15:14:20 226

原创 通过刚体组件控制物体的运动

一.Rigidbody的基本介绍以下翻译主要引用自:http://www.ceeger.com/Components/class-Rigidbody.html,详情点击该网址。Rigidbodies enable your GameObjects to act under the control of physics. The Rigidbody can receive force

2016-06-06 11:04:11 5954

原创 脚本获取场景中游戏体

方法一:通过游戏体的名字查找:例如:    GameObject plane= GameObject.Find ("Plane");   //获取场景中的Pane平面    GameObject btnObj1 = GameObject.Find ("Canvas/angle0");        Button btn1 = (Button) btnObj1.GetCo

2016-06-03 16:34:49 574

原创 Java知识点总结二---类和成员修饰符

Java中可用的类修饰符有:public(公有) ,abstract'(抽象) ,final(不可改变),缺省。其中用public修饰类时,表示不管是否是该类所在的包都可访问该类;缺省则表示:只能在包含该类的包中使用该类。abstract表示该类是一个抽象类,只要类中有一个抽象方法,类都必须声明为抽象类。抽象类不可以实例化。final修饰类表示该类不可以被继承。      Java中成员变量和

2016-04-12 12:57:51 446

原创 Java中小知识点总结一

1.一个Java源文件中只能有一个public类,且类名要和文件名一致,但可以有多个类(不用public修饰符)。   2.Java程序的入口是 public static void main(String[] args){ },不一定要完全一样,也 可以调换一下修饰符顺序,如写成static public  void main(String a[]){};但必须确保参数是String类型数组

2016-04-11 14:16:45 378

原创 Unity基础知识总结

一,脚本的生命周期      脚本的生命周期大致有如下几个,在不同时刻系统会自动执行对应的生命周期函数,把一下脚本添加到某个游戏体上,在执行程序,即可看到各函数的执行顺序。using UnityEngine;using System.Collections;public class life : MonoBehaviour { // Use this for initializa

2016-03-23 20:52:25 1455 1

原创 Java习题练习

一、斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。 public static void Fib(int n){ int f[]=new int[n]; if(n>=3){ f[0]=0

2016-03-22 16:34:51 402

原创 手机连接MySql数据库

近期在学习注册与记录方面的应用,主要功能是:在手机端进行信息注册,注册完成后自动把信息写入到服务器端数据库中。      本方案实现手机连接PC端MySql数据库的基本思路是:手机和PC端建立TCP连接,通过TCP连接实现对数据库操作命令(比如增删改查)的 传递,并将操作结果反馈给手机端。手机端代码:SignActivity.javaimport java.io.BufferedW

2016-02-27 16:10:41 10716 4

原创 自定义Toast样式

本文主要记录的是如何自定义Toast样式,以及如何防止连续点击几次重复出现Toast提示的问题。            针对第一个问题:自定义 Toast样式,它的基本流程大致如下:          1.设计一个自己需要的布局(既可通过xml布局文件,也可在程序中动态创建需要的控件)。          2.程序中加载布局(加载自定义的xml布局)         3.把布局设置

2016-01-19 10:53:07 622

原创 自动匹配输入和记住密码

本文主要记录的是输入时常用到的自动匹配输入,和保存密码部分的知识。最终要实现的是:当输入文字时,会从数据源中查找相匹配的内容,如果没找到,就把输入的数据添加进去。当我们选中保存密码时,退出程序再次打开时,会自动把账号和密码填充进来。效果图如下:                               整体实现的大致思想就是:使用AutoCompleteTextView实现数据的自动

2016-01-18 20:17:40 529

原创 ViewFlipper界面自动切换和滑动切换

ViewFlipperpublic class ViewFlipperextends ViewAnimatorSimple ViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If reque

2016-01-05 19:27:37 1995

原创 ViewPager+Fragment实现界面滑动

VIewPager本身就可以实现界面的滑动效果,为什么还要结合Fragment一起使用呢?(或许是因为结合Fragment一起使用可以更方便的管理每一个界面,对每个界面可以单独处理,而不必要把所有代码都写到一个文件里吧。)究其原因,我也说不明白,但是怎么实现还是要学会的。ViewPager加Fragment的实现无非就是把原先加载的Views换成了Fragments。其流程和单独使用ViewP

2016-01-04 20:38:51 449

翻译 OnScrollListener接口

OnScrollListener接口官方定义是:Interface definition for a callback to be invoked when the list or grid has been scrolled.翻译过来大意是指:当列表或者网格(AbsListView抽象类的实现子类,一般应该是指ListView类和GridView类及其子类)产生了滚动行为时,将会回调该接口。该接

2015-12-18 15:13:59 350

原创 Android中使用shape来实现控件形状的设置

在android中常使用shape来作为控件的背景,来实现对控件形状的设计,例如使用shape来实现圆角按钮。shape使用的大致过程如下:1.在drawable文件夹中声明一个xml文件,(所以,它应该可以等同于一张图片,对shape的处理可以把它当作一个普通图片进行)2.在文件里设置需要的shape属性。3.在布局文件里使用。具体可设置的属性有solid,padding,corne...

2015-11-25 20:34:41 3716

原创 蓝牙开发基础学习

最近接触了一些蓝牙通讯的知识,也就行了简单的尝试,实现了数据的收发。我所理解的蓝牙通讯开发的基本流程如下图:客户端:1.获取一个蓝牙适配器,该对象可以实现蓝牙的关闭与打开,扫描蓝牙设备等。2.扫描蓝牙设备,获取附近的蓝牙设备device。3.通过device.createRfcommSocketToServiceRecord(uuid);得到一个BluetoothSocket对象。

2015-09-26 15:15:16 684

原创 Android学习之自定义控件

常用的自定义控件的方式大致有三种:        1.继承自现有控件,加以改进,如继承TextView;        2.将几种控件进行组合,构成新的组件;        3.继承View类,重绘一个组件。自定义控件的方法:首先定义一个自定义控件类(MyView.java):package com.jtext.chessdisplay;import android

2015-09-21 21:05:48 362

原创 基于TCP协议的socket通讯实现收发消息

作为一个刚接触android开发的新手,再加上自己之前对java以及c++等编程语言了解甚少,学习起来真是很吃力。尤其不知道该按照什么样的路线来学习让我十分苦恼。于是,看了一些教程、视频之后,了解了些最基本的知识,就开始读一些简单的源码。但感觉学习效果并不好。有些知识总是在遗忘与记忆中反复进行。为此,谨以此系列博客记录自己学习过程中遇到的问题,以便日后回顾,来防止自己好不容易看懂的一些知识慢慢忘掉

2015-04-01 08:52:34 1454

基于Unity3d实现的虚拟遥杆demo1

遥杆控制坦克运动 ,使用finger gesture写的demo,有点乱;遥杆控制坦克运动 ,使用finger gesture写的demo,有点乱遥杆控制坦克运动 ,使用finger gesture写的demo,有点乱遥杆控制坦克运动 ,使用finger gesture写的demo,有点乱遥杆控制坦克运动 ,使用finger gesture写的demo,有点乱

2017-08-05

自定义Toast

一个简单的自定义Toast样式实例,同时添加了防止连续点击几次重复显示Toast提示的问题。

2016-01-19

ViewFlipper应用Demo

一个简单的ViewFlipper应用示例;一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例一个简单的ViewFlipper应用示例

2016-01-05

空空如也

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

TA关注的人

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