自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PopFisher的专栏

记录自己对一些技术,知识点的理解,分享给大家

  • 博客(36)
  • 资源 (28)
  • 收藏
  • 关注

原创 Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)

本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面 立体旋转分为以下三种:  1. 以X轴为轴心旋转  2. 以Y轴为轴心旋转  3. 以Z轴为轴心旋转--这种等价于android默认自带的旋转动画RotateAnimation 实现立体旋转核心步骤:  1. 继承系统Animation重写app

2016-08-07 20:42:36 2858 2

原创 Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)

Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景:1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动到底部或者顶部2. ScrollView滚动到顶部或者底部时主动触发一些操作(典型的就是滚动到底部触发自动加载操作) 两种方式:1. onSc

2016-08-07 20:38:17 2610 6

原创 Git-TortoiseGit完整配置流程

完整介绍Git TortoiseGit配置流程

2016-08-06 20:42:37 7768

原创 Windows下Git多账号配置,同一电脑多个ssh-key的管理

本文以配置github.com账号和git.oschina.net账号来逐步演示在Windows环境下配置Git多账号支持即在同一个电脑上管理多个ssh-key,对git多一分了解。

2016-08-06 20:37:30 4666 3

原创 踩坑纪:Unable to load class ‘javax.xml.bind.JAXBException‘

AS 编译异常 Unable to load class ‘javax.xml.bind.JAXBException’.问题描述升级AS 4.2 之后,编译不通过,出现如下异常Unable to load class 'javax.xml.bind.JAXBException'.This is an unexpected error. Please file a bug containing the idea.log file.解决办法(mac上)修改JDK路径为的1.8版本,如果没有安装过,

2021-07-21 10:21:40 1024

原创 IOS小组件(9):让App支持多个小组件的实现方式

引言  本节作为小组件基础介绍的最后一个章节,前面都没有提到如何支持多个小组件,默认新建一个组件Target,就有大中小三个组件。如果你是为已经存在的App开发一个小组件功能,那么可能你不会需要那么多小组件。但是也有的App需要支持很多个小组件,也可能是无限个。  要实现支持多个小组件,需要使用到WidgetBundle,自定义一个WidgetBundle并改变小组件的初始化入口。默认小组件入口@mainstruct Widget1: Widget { // 小组件的唯一ID le

2021-06-11 11:07:03 779 4

原创 IOS小组件(8):App与Widget数据共享

文章目录引言数据共享方式App Groups 原理配置证书开启APP Groups在app中开启:在extension中开启App Groups特点共享数据核心代码参考结语引言  Widget是一个迷你版的App,IOS有沙盒机制,不同App之间无法直接共享数据。组件和主App之间其实就是不同App的关系,所以也无法通过userdefaults.standard来传数据,苹果为了在不打破沙盒的前提下能够传数据,就想出了App Group的方法。数据共享方式 可以通过网络和本地数据两种方式进行数据的共

2021-06-11 10:04:47 770 2

原创 IOS小组件(7):小组件点击交互

文章目录引言点击交互方式点击交互代码测试小号组件点击交互小号组件常用点击交互方式中号组件点击交互1中号组件点击交互2中号组件点击交互3结语引言  前面我们似乎掌握了实现一个小组件所需要的一切技能,默认情况下桌面点击小组件,也正常跳转到了App中。接下来我们一起来看看,小组件是怎么做到点击跳转到App的。点击交互方式点击Widget窗口唤起APP进行交互指定跳转支持两种方式:widgetURL:点击区域是Widget的所有区域,适合元素、逻辑简单的小部件Link:通过Link修饰,允许让界面上不

2021-06-07 14:23:12 1246

原创 IOS小组件(6):小组件实现时钟按秒刷新

文章目录引言计算时间差倒计时和计时器显示绝对日期或时间显示两个日期之间的时间间隔实现一天时间的计时器结语引言  上一节中我们了解了IOS小组件的刷新机制,发现根本没法实现按秒刷新,但是看别的App里面有做到,以为用了什么黑科技,原来是因为系统提供了一个额外的机制实现时间的动态更新,不用走小组件的刷新机制。Text控件支持显示日期时间,下面是来自官网的代码计算时间差let components = DateComponents(minute: 11, second: 14)let futureDa

2021-05-14 10:12:59 1549

原创 IOS小组件(5):小组件刷新机制

IOS Widget(5):小组件刷新机制引言系统如何管理小组件刷新Timeline刷新机制刷新策略建议时钟刷新策略(只有小时分钟,没有秒)主动请求重新刷新结语引言  前面的章节学完已经让我们可以顺利实现一个小组件了,但是小组件里面的数据如何刷新的呢,本节内容将讲解IOS的刷新机制。系统如何管理小组件刷新WidgetKit在一个单独的进程中渲染小组件视图即使小组件窗口显示在屏幕上,widget extension 也不会持续处于活动状态为了管理系统负载,WidgetKit使用预算来分配一天中的

2021-05-10 21:08:10 2408

原创 IOS小组件(4-2):创建可配置小组件(动态修改配置数据)

* 在项目中添加”Intents Extension“* 在 xxx.intentdefinition文件中增加一个动态类型* 实现 Intent Handler 提供动态配置数据

2021-05-07 22:30:34 336

原创 IOS小组件(4-1):创建可配置小组件(静态配置数据)

IOS Widget(4-1):创建可配置小组件(静态配置数据)引言添加动态配置可配置小组件框架代码解析修改 .intentdefinition 文件实现修改时间类型代码读取配置信息,实现动态布局结语引言  经过前面几篇文章阅读,已经掌握开发一款小组件的基本技能了,接下来开始掌握一些相对高级一点的技能。本文创建一个可配置小组件,通过修改时间类型,让Text空间显示不同格式的时间。添加动态配置方式1:新建组件的时候勾选 “Include Configuration Intent” 复选框。方式2:

2021-05-07 22:13:04 371

原创 IOS小组件(3):SwiftUI开发小组件布局入门

IOS Widget(3):SwiftUI开发小组件布局入门引言小组件布局怎么区分组件型号:大中小常用基础组件Text使用常用基础组件Image使用常用容器组件ZStack使用,类似安卓里面的FrameLayout,可以重叠布局常用容器组件HStack使用,水平方向布局常用容器组件VStack使用,垂直方向布局充满父布局怎么实现文字内部居中(multilineTextAlignment)等分剩余空间(Spacer)控制间距(spacing)结语引言  经过上一篇文章,我们已经可以在桌面上展示出一个小组件

2021-05-06 19:25:48 1038

原创 IOS小组件(2):小组件框架解析

IOS Widget(2):小组件框架解析引言创建小组件认识小组件框架各个组成部分小组件核心代码小组件核心代码注解如下:结语引言  看了小组件的概述,你肯定想马上搞一个小组件出来试试,实践中学习效果更佳创建小组件第一步:先创建好一个App,步骤省略第二步:在App中创建小组件1. 在Xcode中打开您的应用程序项目,然后选择 File > New > Target。2. 从“Application Extension”组中,选择“Widget Extension”,然后单击“Ne

2021-05-06 18:15:26 278

原创 IOS小组件(1):概述

IOS Widget(1):概述引言小组件是什么?小组件概述小组件开发备注小组件实现原理结语引言  本系列文章作者是安卓开发,以安卓开发的视角学习IOS小组件,记录一下踩坑记录,如有讲得不对的地方,路过大佬多包涵。如果你是想深入学习小组件,建议您顺着笔者的编号顺序阅读本系列文章。如果曾经了解过,只需要了解部分,则可以挑选来看。另外本系列文章中代码全部是Swift语言编写。小组件是什么?小组件概述WidgetKit 通过在 iOS 主屏幕或 macOS 通知中心放置小组件,让用户可以随时访问 A

2021-05-06 18:08:10 299

原创 开发App到上架应用市场需要经历什么?

开头的话这篇文章信息量有点多,如果你想开发一个自己的App,这个可以收藏当做指导手册这篇文章主要讲个人开发者开发App到上架应用市场整个过程你如果不想开发App,那么也可以阅读下看看开发App的艰难作为一个开发者,可能都想过自己做一个app,可是这年头条件苛刻:各大应用市场都逐渐不接受个人开发者上传app了,只能自己以公司的名义,这一步拦下了不少人有了公司之后,上架app,国内市场几乎都要软著了,软著这个要快你得花钱,明码标价有的有了软著还不够,还要你有icp认证(

2021-01-23 21:51:08 1323

原创 Android来电监听和去电监听

我觉得写文章就得写得有用一些的,必须要有自己的思想,关于来电去电监听将按照下面三个问题展开1、监听来电去电有什么用?2、怎么监听,来电去电监听方式一样吗?3、实战,有什么需要特别注意地方? 监听来电去电能干什么1、能够对监听到的电话做个标识,告诉用户这个电话是诈骗、推销、广告什么的2、能够针对那些特殊的电话进行自动挂断,避免打扰到用户 来电去电的监听方式(不

2016-08-08 10:32:01 1394 2

原创 Android 源码下载方法(Git 方式clone)

Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过Git-TortoiseGit完整配置: http://www.cnblogs.com/popfisher/p/5466174.html  下面通过四个步骤完成platform/frameworks/base

2016-08-08 10:31:56 597 1

原创 HandlerThread 创建一个异步的后台线程

使用HandlerThread几大优点:1、制作一个后台异步线程,需要的时候就可以丢一个任务给它,使用比较灵活;2、Android系统提供的,使用简单方便,内部自己封装了Looper+Handler机制;3、可以代替Thread + Looper + Handler的写法;4、可以避免项目中随处可见的 new Thread().start(),增加系统开销; 使用Handl

2016-08-08 10:31:49 492 1

原创 Android Toast cancel和show深入浅出实战

说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景:1、连续点击一个按钮,每次都产生一个新的Toast并且调用show方法  问题:触发了toast以后,toast内容会一直排着队的显示出来,不能很快的消失2、连续点击一个按钮,缓存一个Toast,每次都调用show方法  推荐:这种方式体验感觉最好,Toast消失的计时会从最后一次show之后才开始计算,

2016-08-08 10:31:47 2776 1

原创 PopupWindow 无法消失背后的真相(setBackgroundDrawable(Drawable background))

刚接手PopupWindow的时候,我们都可能觉得很简单,因为它确实很简单,不过运气不好的可能就会踩到一个坑:点击PopupWindow最外层布局以及点击返回键PopupWindow不会消失新手在遇到这个问题的时候可能会折腾半天,最后通过强大的网络找到一个解决方案,那就是跟PopupWindow设置一个背景popupWindow.setBackgroundDrawable(drawab

2016-08-08 10:31:42 3367

原创 Android PopupWindow怎么合理控制弹出位置(showAtLocation)

说到PopupWindow,应该都会有种熟悉的感觉,使用起来也很简单// 一个自定义的布局,作为显示的内容Context context = null;  // 真实环境中要赋值int layoutId = 0;      // 布局IDView contentView = LayoutInflater.from(context).inflate(layoutId, null)

2016-08-08 10:31:40 475

原创 Android Shape Drawable 静态使用和动态使用(圆角,渐变实现)

Android Shape使用场景:1. 圆角实现2. 实现有边框,有填充的背景3. 实现一个渐变的颜色一般情况上面三种情况我们会选择android的shape,下面分别介绍shape的静态使用和动态使用1. shape的静态使用在drawable中创建一个xml文件,在布局文件中直接引用这个xml文件即可xml version="1.0" encoding="ut

2016-08-08 10:31:37 3573

原创 Java操作Sqlite数据库-jdbc连接

Java操作Sqlite数据库步骤:1. 导入Sqlite jdbc本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD2. 编写jdbc连接代码public class OpSqliteDB { private static final String Class_Name = "or

2016-08-08 10:31:33 570

原创 Android监听系统短信数据库变化-提取短信内容

由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路。Android监听系统短信数据库内容变化使用场景:1、监听短信数据库的变化,添加删除修改,变化的时候会回调onChange方法2、提取刚刚变化的那条短信的内容备注:1、这种方式虽然一开始能够监听到数据变化,但是要判断是刚刚接手到的短信,还需要做一些处理,

2016-08-08 10:31:26 1031

原创 ListView:The content of the adapter has changed but ListView did not receive a notification终极解决方法

使用ListView时遇到如下的异常信息:10-26 18:30:45.085: E/AndroidRuntime(7323): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the co

2016-08-08 10:31:19 578

原创 Activity onDestroy() 回调缓慢问题分析及完美解决方案

随意Acitivity的onDestroy的对所有的Android开发者都很熟悉,但是不一定都知道里面存在着一些坑,分享给大家,以后踩中的时候可以应急用Activity的时候,会发现如下问题:  有时候会发现Acitivity的onDestroy方法回调比较缓慢(可以达到好几秒钟之后才调用),即使之前使用finish方式关闭Activity也一样onDestroy回调慢带来什么问题呢?  有可能再...

2016-08-08 10:31:16 5712 2

原创 获取View的截图-将View转换为Bitmap对象

开发中,有时候需要获取View的截图来做动画来达到动画流程的目的原理:将View的内容画到一个Bitmap画布上,然后取出下面封装了一个从View生成Bitmap的工具类/** * 将View转换为Bitmap对象 */public class ViewToBitmapUtil { private static final String TAG = "Vi

2016-08-08 10:31:12 362

原创 Android正则表达式使用及性能隐患分析

场景:找出一个关键词在一条短信中出现的次数使用正则的实现方式:public static int findKeyWordCount(String srcText, String keyword) { int count = 0; Pattern p = Pattern.compile(keyword); Matcher m = p.matcher(srcT

2016-08-08 10:31:06 725

原创 Android Activity返回键控制的两种方式

Android Activity返回键监听的两种方式1、覆写Activity的OnBackPressed方法官方解释:Called when the activity has detected the user's press of the back key.The default implementation simply finishes the current act

2016-08-08 10:31:01 11595

原创 Android TextView 添加下划线的几种方式

总结起来大概有5种做法: 1. 将要处理的文字写到一个资源文件,如string.xml(使用html用法格式化) 2. 当文字中出现URL、E-mail、电话号码等的时候,可以将TextView的android:autoLink属性设置为相应的的值,如果是所有的类型都出来就是android:autoLink="all",当然也可以在java代码里 做,textView01.setAut

2016-08-08 10:30:59 6984

原创 android gridview几个重要属性(android:listSelector自带内部padding分析)

一、android:scrollbarStyle  决定状态条的位置    常用属性outsideOverlay,滚动条在最外层,gridview设置的padding在滚动条的内侧 二、android:stretchMode  决定怎么分配剩余的空间 spacingWidth     除去griditem和gridview的左右padding,剩余的空间totalSpace

2016-08-08 10:30:56 1377

原创 ADB server didn't ACK

[2015-05-29 11:55:03 - adb] ADB server didn't ACK[2015-05-29 11:55:03 - adb] * failed to start daemon *[2015-05-29 11:55:03 - ddms] 'G:\android\android-sdk-forL\platform-tools\adb.exe,start-server

2016-08-08 10:30:54 373

原创 adb shell 查看系统属性(用来判断特殊的操作系统)

一般来讲,在android程序开发中进行需要判断设备类型和系统版本1、设备类型判断(android.os.Build.MODEL)比如判断属于Google Nexus 5,Nexus 7,MIUI v5, MIUI v6,三星设备,魅族设备等;这类型的问题都使用的android.os.Build.MODEL来判断,android.os.Build.MODEL是一个String变量,可以

2016-08-08 10:30:51 5305

原创 SharedPreferences 详解(多进程,存取数组解决方案)

一、SharedPreferences基本概念文件保存路径:/data/data//shared_prefs目录下目录下生成了一个SP.xml文件SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。 实现SharedPreferences存储的步骤如下:根据Context获取SharedPreferences对象

2016-08-08 10:30:49 1878

原创 FindBugs使用

FindBugs简介: FindBugs是一个开源的eclipse 代码检查工具,是一种白盒静态自动化测试工具; 它可以简单高效全面地帮助我们发现程序代码中存在的bug,bad smell,以及潜在隐患; 针对各种问题,它并且提供了简单的修改意见供我们重构时进行参考; 通过使用它,可以一定程度上降低我们code review的工作量,并且会提高review效率; 通过Fin

2016-08-08 10:30:46 1144

jdk-8u201-windows-x64.exe

官网下载有点慢,所以下载下来放到csdn,jdk-8u201-windows-x64__jdk-8u172-windows-x64

2019-04-02

VC++设计和操作word 和Excel报表

最近在做一个关于使用VC++设计word报表,我觉得这个资料值得学习,平时用过Access数据库,但是能设计报表的人却不多多掌握一个技巧就比别人领先一步

2011-03-27

win7旗舰版安装IIS的详细步骤

本文档介绍很详细的在win7旗舰版中安装IIS的方法,IIS是很多软件像SQL Server之类的必须的组件,所以应该正确学会安装IIS功能

2011-03-11

MFC访问SQL Server2005数据库

本文档介绍MFC连接SQL Server2005数据库的方法,很实用的 我对初学者有用

2011-03-11

vc++6.0编程助手

vc++6.0编程助手帮助您一高编程效率,进一步提升你的编程能力

2010-12-12

vs2005编程好助手

vs2005编程好助手,帮助你提高编程效率与能力

2010-12-12

VS2010编程助手

vs2010助手,帮助你提高编程效率,方便快捷,程序效率提高了,编程能力也会得到快速提高

2010-12-12

C和C++头文件,函数和关键字的使用和比较

C和C++头文件,函数和关键字的使用和比较,比较全面,可以很方便快速进行查询,解决不知道哪种头文件和用赶个函数的问题,我觉得很有用

2010-12-11

数据结构相关试卷及答案

本资料收集了连套关于数据结构的试卷 还配有完整的参考答案

2010-12-11

用C++编写计算器,电子琴,音乐播放器,简易浏览器等的具体实现

用C++编写计算器,电子琴,音乐播放器,简易浏览器等的具体实现,可以按照要求一步一步的完成,还有比较全面的实现代码,本人认为很值得学。

2010-12-09

关于C++时间函的使用和应用举例

本资料收集了几乎所有的C++时间函数,比如说显示当前时间或者计算两个时间段的的差,可以编写程序测试程序的性能

2010-12-09

C/C++的CString成员函数用法大全

本资料收集了C++的CString类的大部分成员函数,熟知它,可以帮助你熟练掌握字符串的操作

2010-12-09

关于数据库的SQL函数大全

本资料收集了SQL查询语言的所有函数,方便使用

2010-12-09

用C实现数据结构中的各种算法

用C实现数据结构中的各种算法,很方便,可以解决照着书写程序还出错的问题

2010-12-05

数据结构 火烧连营源代码

使用堆栈数据结构实现的火烧连营代码 基于MFC实现 使用读写文件的方式来处理测试数据和点火后的结果数据

2010-11-26

数制转换 数据结构 堆栈

用数据结构的栈来实现对数制的转换,可以满足大部分的转换需求,平时常用的转换都有

2010-11-26

数据结构与算法书上代码总汇

数据结构与算法书上的所有代码,把书上的代码都都写在C++的文件里,可以直接使用

2010-11-19

数据结构与算法VC++6.0程序集

收集了有关数据结构与算法的程序,使用VC++6.0实现,很好很全面

2010-11-19

数据库课件 使用VB对数据库进行各种操作

关于数据库的的课件,基于VB环境,使用数据库,很好使用

2010-11-19

VB通讯录使用数据库

VB 通讯录 数据库 可以实现添加删除修改 上下移动 自动播放

2010-11-06

数据结构与算法 一维数组-二维数组-三维数组

用数据结构与算法 实现的数组 用一维数组定义用 二维数组 定义三维数组 用模版

2010-11-03

VB简单计算器加减乘除

用Vb编写的一个简单计算器,功能可以扩充,可以实现简单的加减乘除

2010-11-03

用动态数组实现的大数阶乘

用数组来实现大数的阶乘运算,运算结果保存在一个数组中,每个数组元素村3为数字。

2010-10-24

C++ 双链表 大数阶乘

用双链表实现大数阶乘运算,可以测试其性能,里面有相映的时间测试函数

2010-10-24

基于MFC的浏览器使用CComboBox控件

可以实现前进 后退 搜索 打开网页 关闭网页等功能,使用CComboBox类来创建一个地址栏窗口

2010-10-21

大数阶乘,基于数据结构的单链表实现

基于单链表的大数阶乘,并有相应的程序执行效率的时间函数

2010-10-19

功能完善且比较好用的计算器

采用对话框模拟计算器,并添加与计算相关的按钮,方便快速

2010-10-02

很好使用的画线(Draw)

代码简洁,教你很快就学会C++中令人烦恼的画线程序

2010-10-02

空空如也

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

TA关注的人

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