自定义View的步骤 当andoid提供的系统组件不满足要求时候,完全可以集成View来派生自定义组件. 首定定义一个继承View的子类,然后重写他一个或几个方法. 重写的方法介绍 构造器:这是定制View最基本的方式,当用java代码创建或者从xml文件读取都需要用到该方法. onFinishInflate()这是一个回调方法,当应用从xml布局文件加载该组件,并利用它来构造界面后,会调用这个方法. onMeasure():改方法检测View组件以及它包含的组件大小. onLayout():需…
审批过程中,经常要求自动发邮件:审批中要通知下一个审批人进行审批:审批完通知申请人已审批完:被拒绝后,要通知已批准的人和申请人.下面详细介绍如何实现一个自动发邮件的插件:   1. 根据审批状态来确定要通知哪个人或哪个角色 状态为2 - 审批中时,查找下一个审批人 /// <summary>/// 下一个审批人/// </summary>/// <returns></returns>private List<Guid> GetNextStepPe…
继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出. 本文目录 本文目录 poi项目下载及加载 extjs前端导出设置 extjs后台对应的解决方案 创建excel工作簿 创建一个excel页签 生成excel样式并初始化 产生表格标题行build headers 构造数据行build rows poi项目下载及加载 POI项目是apache官网的一个开源项目,其主要…
Python基础知识(13):函数(Ⅳ) Python内置函数 1.abs:取绝对值 abs(-1) 1 2.all:把序列中的每一个元素拿出来做布尔运算,都为真则返回True,如果序列中有None.0.“”.[].{}.()则返回False all([1,23,0]) False 3.any:只要序列中有一个元素做布尔运算后的值为真,就返回True any([0,None,[],2]) True 4.ascii:把传入的对象转换成字符串 ascii("a") "'a'&qu…
一.GPU:图形处理器,Graphics Processing Unit 显卡的处理器就是图形处理器.与CPU类似.   GPU和CPU的区别? 1.CPU主要是为了串行指令设计,GPU则是为了大规模的秉性的计算而设计. 2.从并行的角度来看,CPU并行针对于指令集并行,而GPU的并行是针对大规模运算的. 3.同样面积的芯片:CPU上更多的放置缓存和控制部件,而GPU上放置的是更多的运算单元.   二.渲染管线 渲染管线也叫渲染流水线,就是告诉GPU一堆数据,然后得到一个二维的图像. 渲染管线主…
摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431954588961d6b6f51000ca4279a3415ce14ed9d709000 Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打开exe.jpg.pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进…
WPF允许在代码中以及在标记中的各个位置定义资源(和特定的控件.窗口一起定义,或在整个应用程序中定义). 资源具有许多重要的优点,如下所述: 高效.可以通过资源定义对象,并在标记中的多个地方使用.这会精简代码,使其更加高效. 可维护性.可通过资源使用低级的格式化细节(如字号),并将它们移到便于对其进行修改的中央位置.在XAML中创建资源相对于在代码中创建常量. 适应性.一旦特定信息与应用程序的其他部分分离开来,并放置到资源部分中,就可以动态地吸怪这些信息.例如,可能希望根据用户的个人喜好或当语言…
1.今天复习完了第十二章 2.有很多的方法不知道什么意思,也记不清该用什么方法. 3.明天写例题.…
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了(还不是很全):Windows.zip  目录: 获取控件句柄 模拟键盘和鼠标 文本框赋值 操作DateTimePicker控件 操作TreeView控件 识别简单验证码 判断按钮状态 正文: 一丶怎么获取每个控件的句柄 第一种是使用FindWindow和FindWindowEx两个API结合使用,…
深度学习课程笔记(十四)深度强化学习 ---  Proximal Policy Optimization (PPO) 2018-07-17 16:54:51  Reference: https://blog.openai.com/openai-baselines-ppo/ Code: https://github.com/openai/baselines Paper: https://arxiv.org/pdf/1707.06347.pdf Video Tutorials: https://ww…
 孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.close() 当一个file对象执行此方法时,将关闭当前打开的文件. 关闭后的文件不能再进行任何操作. 二.seek() 当用python的内置函数open打开了一个磁盘文件后,当前指针是固定在打开的file对象的指定位置的,而当我们想要移动指针时,就可以使用file对象的seek()方法. 语法:file.seek(offset[,whence]) o…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 曲面细分阶段包含渲染管线中的三个阶段,用以细分几何物体,它在顶点着色器和几何着色器之间.使用曲面细分的主要原因: 基于GPU的LOD: 物理和动画的优化,可以在低面模型上计算物理效果和动画,然后细分为高面模型用以渲染: 节…
风炫安全web安全学习第三十四节课 文件包含漏洞防御 文件包含防御 在功能设计上不要把文件包含的对应文件放到前台去操作 过滤各种../,https://, http:// 配置php.ini文件 allow_url_fopen=off allow_url_include=off magic_quotes_gpc=on 通过白名单策略 topic.php,image.php file=topic.php $allow_file = [ 'topic.php', 'image.php' ]; if…
ImageSwitcher简介 ImageSwitcher继承了ViewSwitcher,所以在切换时候会有动画,可以把它理解成一个动画版本的ImageView. 他的showNext(),和showPrevious()方法分别显示下一个和上一个. 为ImageSwitcher提供一个ViewFactory,该ViewFactory的makeView()生成的View必须是ImageView. ImageSwicher可以用setimageResource()和色图ImageDrawable()…
转载请注明出处:http://blog.csdn.net/sweetvvck/article/details/38645297 通过前面的几篇博客.大家看到了Google是怎样解释action bar和fragment以及推荐的使用方法.俗话说没有demo的博客不是好博客,以下我会介绍一下action bar和fragment在实战中的应用,以及相关demo源代码,希望和大家相互交流. 了解过fragment的同学们应该都知道,fragment是android 3.0版本号才出现的的,因此假设要…
前言 做了近5年的android开发,最近项目也是不怎么忙,空闲的时候总会思考一些事情,不过作为移动开发,我个人觉得很有必要学习后台开发,由于公司是Go语言开发的,了解go语言一段时间后,我发现go语言的强大.基于优雅的语法和其强大的并发性,我开启我的go学习之旅. golang强大的数据库驱动 Go与PHP不同的地方是Go没有官方提供数据库驱动,而是为开发者开发数据库驱动定义了一些标准接口,开发者可以根据定义的接口来开发相应的数据库驱动,这样做有一个好处,只要按照标准接口开发的代码, 以后需要…
RadioButton和checkBox简介 单选按钮(RadioButton)和复选框(CheckBox)都继承了Button,因此属性的设置和Button差不多,只是加了一个android:chencked属性. 用来设置是否被选中. RadioButton和checkBox的区别 前者如果一组只能只能选中一个,一次通常会与RadioGroup一块使用,后者没有限制. 实例 <LinearLayout xmlns:android="http://schemas.android.com/…
Relative布局简介 相对布局的组件是由兄弟组件和父组价决定的,因此这种布局被称为相对布局. 属性设置介绍 RelativeLayout.Layoutparam中只能设置为true和false的属性是: 需要依赖其他组件Id设置的属性: 除此之外,RelativeLayout还可以使用viewGroup.MarginLayoutparams的属性. 梅花布局的实例 <LinearLayout xmlns:android="http://schemas.android.com/apk/r…
TableLayout 表格布局 tablelayout简介 表格布局有TableLayout代表,但是它的本质定义仍然是线性管理器.表格布局采用行和列来管理UI,但是不需要明确的定义多少行,多少列,而是通过添加TableRow,没添加一个TableRow,就添加一行,TableRow中每添加一个组件就是一列. TableLayout属性 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"…
基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService启动并把绑定该组件进行通信. 使用场景 后台下载文件,以及播放音乐等 注意 service运行在主线程中,他不会创建属于自己的线程,也不是运行在独立的线程中,所以在使用的时候,需要自己创建线程,而不应该直接使用,这样会造成ANR错误. service的两种形式 started service 其他组…
首先继承BroadcastReceiver类,并在manifest中注册 public class MyReceiver extends BroadcastReceiver { public MyReceiver() { } @Override public void onReceive(Context context, Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); }…
ListView简介 ListView是android中常用的一种控件,创建ListView有两种方式: 1.在xml中使用ListView控件创建. 2.使用activity继承ListActivity,然后使用setListAdapter()创建,如果需要在xml中创建,需要android:id = @id:android:list Listview和GridView和Spinner和Gallery等Adapterview都是容器,用adapter来提供数据,而adapterView负责数据…
ViewAnimator继承了FrameLayout,多个组件重合在一起,可以加入多个组件,然后切换的时候会有动画. ViewAnimator及其子类的继承关系 ViewAnimator常用属性 ViewSwitcher的简介 ViewSwitcher继承了ViewAnimator,组件重叠. setFactory()方法可以设置ViewFactory(ViewSwitcher.ViewFactory),用ViewFactroy来实现View. 仿android系统的Launcher界面 pac…
SlidingPaneLayout也是系统支持的高级控件,是Android团对在2013 google IO大会期间更新的Support库(Version 13)中新加入的重要的功能.它支持左右滑动菜单,和SlidingMenu相似.这篇文章简单的介绍SlidingPaneLayout怎么使用,SlidingPaneLayout的使用和前面介绍的Navigation Drawer的使用无二异. SlidingPaneLayout是一个水平的多层的布局控件,左侧或第一个视图是导航层,其他的为内容视…
最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据. 查询了很多资料终于实现,现进行总结. ---------------------------------------------------------------------------------------------------------------------------------------------------------------   从零开始实现一个连接多个蓝牙4.0 设备并获取数据的 Demo…
第十四章.迭代器模式 迭代器模式,又叫做游标模式.是行为型设计模式之中的一个.我们知道对容器对象的訪问必定会涉及遍历算法.我们能够将遍历的方法封装在容器中,或者不提供遍历方法,让使用容器的人自己去实现去吧. 这两种情况好像都能够解决这个问题. 然而在前一种情况.容器承受了过多的功能.它不仅要负责自己"容器"内的元素维护(加入.删除等等),并且还要提供遍历自身的接口:并且因为遍历状态保存的问题,不能对同一个容器对象同一时候进行多个遍历.另外一种方式倒是省事,却又将容器的内部细节暴露无遗.…
转载本专栏文章,请注明出处尊重原创:博客地址http://blog.csdn.net/qq_32059827/article/details/52849676:小杨的博客 许多应用可能需要加入进度,例如下载.播放视频.音频.读取数据库等等,都需要一个等待状态的进度条.原生的进度条的确不美观,今天这篇小案例,就让咱们的进度条"靓起来". 首先来看一个小案例,我们部队seekbae做样式修改,使用默认的效果. 定义一个布局: <LinearLayout xmlns:android=&…
1. 简介 1.TabLayout给我们提供的是一排横向的标签页 2.#newTab()这个方法来创建新的标签页,然后用过#setText()和#setIcon方法分别修改标签页的文本和图标,创建完成之后,我们需要使用#addtab()方法把他加到TabLayout中显示出来 3.第二种添加标签的方式就是直接在TabLayout布局下添加#TabItem控件 4.对于TabLayout在标签之前的切换事件我们可以通过注册一个监听器来处理,#setOnTabSelectedListener(OnT…
协调布局CoordinatorLayout Android自5.0之后对UI做了较大的提升.一个重大的改进是推出了MaterialDesign库,而该库的基础即为协调布局CoordinatorLayout,差点儿全部的design控件都依赖于该布局.协调布局的含义.指的是内部控件互相之前的动作关联,比方在A视图的位置发生变化之时.B视图的位置也依照某种规则来变化.仿佛弹钢琴有了协奏曲一般. 使用CoordinatorLayout时.要注意以下几点:1.导入design库:2.根布局採用andro…
综合实例2:client訪问远程Service服务 实现:通过一个button来获取远程Service的状态,并显示在两个文本框中. 思路:如果A应用须要与B应用进行通信,调用B应用中的getName().getAuthor()方法,B应用以Service方式向A应用提供服务.所以.我们能够将A应用看成是client,B应用为服务端,分别命名为AILDClient.AILDServer. 一.服务端应用程序 1.src/com.example.aildserver/song.aidl:AILD文…