原文链接:
https://www.sodocs.net/doc/e812489758.html,/training/custom-views/custom-drawing.html
自定义视图最重要的部分是它的外观.你可以根据应用的需求简单或复杂的实现它. 这个教程包含了最常见的操作.
重写onDraw()
绘制自定义视图里最重要的一步是重写onDraw()方法. onDraw()的参数是视图可以用来绘制自己的Canvas对象. Canvas定义用来绘制文本、线条、位图和其他图像单元. 你可以在onDraw()里使用这些方法创建你的自定义用户界面(UI).
不过, 在你调用任何绘画的方法之前, 你必须创建Paint对象. 下一章节将会探讨Paint
的更多细节.
创建绘画对象
android.graphics框架把绘图分成了两部分:
?画什么, 由Canvas处理
?怎么画, 由Paint处理
例如, Canvas提供画线条的方法, 而Paint提供定义线条颜色的方法. Canvas提供画矩形的方法, 而Paint定义是否用颜色填充矩形或让它为空. 简而言之, Canvas定义你可以在屏幕上画的形状, 而Paint为你画的每个形状定义颜色、样式、字体等等.
所以, 在你画任何东西之前, 你需要创建一个或多个Paint对象. * PieChart_'(饼图)例子的'_init()* 方法里有这样的实现, 这个方法在构造函数里调用:
提前创建对象是一个很重要的优化. 视图频繁的被重画, 并且许多绘图对象初始化需要消
耗大量的资源. 在onDraw()方法里创建绘图对象会严重降低性能, 并可以让你的UI显得有
些迟钝.
处理布局事件
为了正确的绘制你的自定义视图, 你需要知道它的大小. 复杂的自定义视图经常需要根据它的大小和在屏幕上的图形区域执行多次布局计算. 你永远不应该假设视图在屏上的大小.即使只有一个应用使用你的视图, 应用也需要处理不同的屏幕尺寸, 多种屏幕分辨率, 以及在横屏和竖屏模式下的各种高宽比.
虽然View有很多处理尺寸大小的方法, 但是大部分的需要重写. 如果你的视图不需要特别控制它的大小, 你只需要重写方法: onSizeChanged() .
onSizeChanged()在你的视图第一次分配大小的时候调用, 如果你的视图因为任何原因改变了大小也会再次调用. 在该方法里计算位置、大小和其他一些与视图大小相关的值, 而不是你每次绘制的时候重新计算. 在PieChart(饼图)例子里, PieChar视图在onSizeChanged()里计算饼图的图形边界、文本标签的相对位置和其他视觉元素.
当你的视图分配了一个大小, 布局管理器会假设这个大小包含了所有视图的padding值. 你必须在计算你视图的大小的时候处理padding值. 下面是PieChart.onSizeChanged()中处理这个的代码片段:
如果你需要出色的控制你视图的布局参数, 实现[int) onMeasure()](http://docs.eoeand https://www.sodocs.net/doc/e812489758.html,/reference/android/view/View.html#onMeasure(int,)方法. 这个方法的参数是View.MeasureSpec值, 这个会告诉你你的视图的父元素想让你的视图有多大, 并且告诉你这个大小是否是最大值或只是一个建议. 作为优化, 这些值保存为整数的封装类型, 你可以用View.MeasureSpec里的静态方法解析每个整数里面的信息.
下面是实现[int) onMeasure()](https://www.sodocs.net/doc/e812489758.html,/reference/android/view/ View.html#onMeasure(int,)的例子. 在这个实现里面, PieChart尝试让它的面积大小足以让饼图可以标签一样大:
在这段代码中有三个重点需要注意:
o计算需要考虑视图的padding. 如上所述, 这个是视图的职责.
?
o方法resolveSizeAndState()用来创建最终的宽和高. 这个方法通过比较视图的期望大小返回一个合适的View.MeasureSpec值传入int) onMeasure()
?
o onMeasure()方法没有返回值. 相反, 这个方法通过调用int) setMeasureDismension()方法传递结果. 调用这个方法是强制的. 如果你省略这个, View类会抛出runtime exception 绘图
一旦你有了创建的对象和定义了测绘布局的代码, 你可以实现方法onDraw(). 每个视图实现不同的onDraw(), 但是这里有些大多数视图常用的操作:
?使用drawText()画文本, setTypeface()指定字体, setColor()指定文本颜色
?画基本的形状用drawRect()、drawOval()、drawArc(). 不论改变图形的填充样式还是边框样式还是都修改, 都是调用setStyle()
?绘制复杂的形状用Path类. 通过给Path对象增加线条和曲线定义形状, 然后使用drawPat h()绘制形状. 就像基本的形状一样, Path可以设置填充样式、边框样式、或者都设置, 都依靠setStyle()
?定义渐变的填充样式通过创建LinearGradient对象. 在要填充的形状上通过调用setShade r()使用LinearGradient对象
?绘制位图使用drawBitmap().
例如, 这是是画PieChart的代码. 它混合使用了文本、线条、图形.
文章来源:https://www.sodocs.net/doc/e812489758.html,/page/Custom_Drawing
课程代号:83308113 2014-2015学年第1学期《ISAS与项目训练(一)》 项目:Android 班级:网络2班 学号: 13734214 姓名:刘雨亭. 指导教师:温一军周洪斌 . 沙洲职业工学院 NIIT安艾艾迪
目录 一、系统简介 (3) 二、发展历程 (3) 三、发行版本 (4) 四、国内外手机应用状况 (4) 五、发展趋势 (5) 六、Android的相关技术介绍及分析 (6) 6.1、Android系统架构研究 (6) 6.2、应用程序框架 (7) 6.3、类库 (8) 七、Android的API (10) 八、Android活动的生命周期 (11)
一、系统简介 Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender 公司专门制作的称之为“Droid ”的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。 二、发展历程 2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。 2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。 2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发
android 自定义圆角头像以及使用declare-styleable进行配置属性解析由于最新项目中正在检查UI是否与效果图匹配,结果关于联系人模块给的默认图片是四角稍带弧度的圆角,而我们截取的图片是正方形的,现在要给应用统一替换。应用中既用到大圆角头像(即整个头像是圆的)又用到四角稍带弧度的圆角头像,封装一下以便重用。以下直接见代码 [java] view plain copy 在CODE上查看代码片派生到我的代码片 package com.test.demo; import com.test.demo.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader.TileMode; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Parcelable; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.widget.ImageView; /** * 圆角imageview */ public class RoundImageView extends ImageView { private static final String TAG = "RoundImageView"; /** * 图片的类型,圆形or圆角 */ private int type; public static final int TYPE_CIRCLE = 0; public static final int TYPE_ROUND = 1; /** * 圆角大小的默认值
Wiki ●基本概念:Wiki源自夏威夷语的“WikiWiki”,本意是“快点快点”,翻译为 维客、围纪、快纪、共笔、维基等。Wiki是一种在网络上开放、可供多人协同创作的超文本系统,由沃德-坎宁安于1995年首先开发,他将Wiki定义为“一种允许一群用户通过简单的标记语言来创建和连接一组网页的社会计算机”。 ●基本功能:Wiki包含一套能简易制作、修改HTML网页的系统,它允许 任何造访他的人快速轻易的添加、删除、编辑所有内容。 ●Wiki引擎: ?概念:就是Wiki软件,用来架设Wiki网站的软件 ?常用Wiki引擎介绍: ◆ASP的WiKi程序。ASP的WiKi程序总体感觉比较弱,或许开放的WiKi更喜欢开放的linux系统吧 1,Operator Wiki 0.3 语言环境:ASP+ACCESS 官方主页:https://www.sodocs.net/doc/e812489758.html,/projects/operatorwiki/ 演示:https://www.sodocs.net/doc/e812489758.html,/maxzone/operatorwiki/wiki.asp 下载:https://www.sodocs.net/doc/e812489758.html,/codepubcom/2006/4/8/operatorwik03.rar 介绍:免费开源的国产WIKI程序,ASP+JavaScript写的Wiki 引擎,支持多语言、ACL,综合各种WIKI 的功能。 Operator Wiki 升级日志0.3:. * 完整的用户权限 * 支持ACL 进行权限控制 * 修正了一个标记冲突问题 * 修正登录问题 * 源代码采用Tab 代替空格,进一步缩小体积,主程序目前仅34.4K * 更良好的多语言支持 * 修正数十个关于表格和列表的问题 2,OpenWiki 中文版Build20060328 语言环境:ASP+ACCESS/SQLServer 官方主页:https://www.sodocs.net/doc/e812489758.html,/ 演示:https://www.sodocs.net/doc/e812489758.html,/yow/ 下载:https://www.sodocs.net/doc/e812489758.html,/codepubcom/2006/4/8/openviki_yow.rar 介绍:国外的一个ASP Wiki程序,3d-gis汉化。 3, JsWiki - 开源ASP WIKI程序 语言环境:ASP 官方主页:https://www.sodocs.net/doc/e812489758.html,/projects/jswiki/ 演示:https://www.sodocs.net/doc/e812489758.html,/ 下载:https://www.sodocs.net/doc/e812489758.html,/codepubcom/2006/2/10/jswiki.rar
Wine完全使用指南——从基本到高级 关键字: wine 使用 一直苦于没有一篇像样的使用指南,原来外国有朋友跟我有同感,既然他捷足先登了,那我只好翻译了。 原文作者说会保持更新,这篇文章是很新的,介绍了很多实用的Wine设置方法,非常全面,无论新手还是老鸟都值得一读。 原文: https://www.sodocs.net/doc/e812489758.html,/doku.php/wine:winestuff 我收集到的关于Wine的一些资料 如果你像我一样的话,当你第一次使用Wine的时候,就会被Wine的帮助文章现状所困扰。互联网上确实有很多的HOWTO文章来教你使用一些程序或游戏,但是我找不到一个全面的“Wine初学者教程”来让我真正懂得实际了解和使用Wine所需的基本知识。我不需要一个教我如何运行半条命2的文章,我需要的是一篇能实实在在教我怎样使用Wine的文章。最后,我整理了从众多的Wiki、指南、帖子和HOWTO搜集来的资料,写成这篇文章。虽然这篇文章主要针对在Wine下运行游戏,但是它包括的几乎所有的信息都可以应用到用Wine来运行其它的程序。 一般资料 “winecfg”的使用资料 特殊配置资料 安装资料 一般使用资料 第三方软件资料 高级设置资料 1一般资料 1.1Wine is not an emulator 这个我就不翻译了,没有多少技术介绍。 1.2使用最新的Wine 记住最新版的Wine会包含一些旧版本里没有的bug。在feisty的软件仓库里包含了0.9.33,而最新的Wine是0.9.44(我翻译文章时)。0.9.33更加稳定,但是最新的版本包含重大的DirectX改进。有一些不能在0.9.33下运行的游戏能够在0.9.44中很好地运行。在使用0.9.37到0.9.40之间的某些版本运行KotOR2时,声音在我的系统上崩溃了。那是最好的有关使用最新版导致棘手问
android studio 控件常用属性 下面是RelativeLayout各个属性 1.android:layout_above="@id/xxx" --将控件置于给定ID控件之上 2.android:layout_below="@id/xxx" --将控件置于给定ID控件之下 3. android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐 4.android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐 5. android:layout_alignLeft="@id/xxx" --将控件的左边缘和给定ID控件的左边缘对齐 6.android:layout_alignTop="@id/xxx" --将控件的上边缘和给定ID控件的上边缘对齐 7.android:layout_alignRight="@id/xxx" --将控件的右边缘和给定ID控件的右边缘对齐 8.android:layout_alignBottom="@id/xxx" --将控件的底边缘和给定ID控件的底边缘对齐 9.android:layout_alignParentLeft="true" --将控件的左边缘和父控件的左边缘对齐 10. android:layout_alignParentTop="true" --将控件的上边缘和父控件的上边缘对齐 11. android:layout_alignParentRight="true" --将控件的右边缘和父控件的右边缘对齐 12.android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐 13.android:layout_centerInParent="true" --将控件置于父控件的中心位置 14.android:layout_centerHorizontal="true" --将控件置于水平方向的中心位置 15.android:layout_centerVertical="true" --将控件置于垂直方向的中心位置 android:layout_width 设置组件的宽度 android:layout_height 设置组件的高度 android:id 给组件定义一个id值,供后期使用 android:background 设置组件的背景颜色或背景图片 android:text 设置组件的显示文字 android:textColor 设置组件的显示文字的颜色 android:layout_below 组件在参考组件的下面 android:alignTop 同指定组件的顶平行
Android平台我的日记 设计文档 项目名称:mydiray 项目结构示意: 阶段任务名称(一)布局的设计 开始时间: 结束时间: 设计者: 梁凌旭 一、本次任务完成的功能 1、各控件的显示 二、最终功能及效果 三、涉及知识点介绍 四、代码设计 activity_main.xml: android:layout_centerHorizontal="true" android:layout_marginTop="88dp" android:text="@string/wo" android:textSize="35sp"/> Netflow网络流量 分析手册 作者:聂晓亮(毛蛋哥) 目录 一、作者简介 (4) 二、为什么会有这本书 (5) 三、流量分析原理 (6) (一)原始流量分析方式 (6) (二)Netflow分析方式 (6) 四、流量采样 (8) (一)在网络设备上开启Netflow功能 (8) (二)网络设备不支持Netflow (9) 1.部署方式 (9) 2.安装Fprobe (11) 3.启动Fprobe (11) 4.镜像流量至Fprobe服务器 (12) 5.检测是否收到Netflow数据 (12) 五、部署服务器 (13) (一)硬件需求 (13) (二)安装FreeBSD (13) (三)安装Nfsen (14) 1.安装apache22 (14) 2.安装php5 (14) 3.安装nfsen (15) (四)安装PortTracker (15) (五)访问Nfsen (16) 六、抓贼攻略 (18) (一)了解网络运行状况 (18) (二)什么协议吞了带宽 (22) (三)抓出罪魁祸首 (25) 七、感谢 (30) 一、作者简介 本书作者聂晓亮,网名毛蛋哥。2004 年毕业于北京联合大学信息工程学院,热 爱网络相关知识及摄影,机缘巧合参加了 Cisco认证培训,并获得了一些成绩。本 书写于2008年10月,作者目前状态工 作较为舒适,故有空闲时间完成此书。 聂晓亮(毛蛋哥)拥有自己的Blog及Wiki空间,其中记录了作者的工作、生活、学习。作者希望通过此书以及Blog、Wiki同全世界的网络爱好者分享其知识与快乐。 聂晓亮(毛蛋哥)的Blog:https://www.sodocs.net/doc/e812489758.html, 聂晓亮(毛蛋哥)的Wiki:https://www.sodocs.net/doc/e812489758.html, 欢迎交流:pharaohnie@https://www.sodocs.net/doc/e812489758.html, 《Android基础应用》 Android常用控件 ?本章任务 ?使用Android开发使用时间组件 ?使用Android开发使用进度条组件 ?使用Android开发创建底部选项卡 ?本章目标 ?了解Android的组件层次结构 ?掌握常用的日期时间类控件 ?掌握常用的几个容器组件 1.Android组件的层次结构 UI组件都是View的子类,View有很多子类,它们之间存在树状的继承关系View及其子类结构图 TextView及其子类结构图 ViewGroup及其子类结构图 其下的子类一般作为容器或布局来使用 FrameLayout及其子类结构图 其下的子类通常作为容器或布局来使用 2.时间控件 2.1日期时间选择器 DatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制 DatePicker ●使用onDateChangedListener监听器来获取用户的日期选择 ●使用init对组件进行初始化 ●使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日 TimePicker ●使用onTimeChangedListener监听器获取用户的时间选择 ●使用setIs24HourView设置是否以24小时制显示 ●使用getCurrentHour获得当前的小时数 ●使用getCurrentMinute获得当前的分钟数 示例 示例的实现结果 2.2时钟组件 AnalogClock组件用来以表盘的方式显示当前时间,该表只有时针和分针,DigitClock组件以数字的方式显示当前时间可以显示时分秒,由于DigitClock继承TextView,可以使用TextView 的属性 示例 Android开发把项目打包成apk 做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为".apk"。将APK文件直接上传到Android模拟器或Android手机中执行即可进行安装。Android系统要求具有其开发者签名的私人密钥的应用程序才能够被安装。生成数字签名以及打包项目成APK都可以采用命令行的方式,但是通过Eclipse中的向导我们会更加方便地完成整个流程,打包发布的过程非常简单。下面以前面开发的"Hello World"为例,演示如何生成APK。 右键单击项目名称,选择"Android Tools",再选择"Export Signed Application Package…",如下图所示。 进入左图所示页面,单击"Next>"按钮,进入如右图所示窗口。 其中,Location为证书库将要存放的位置,Password是证书库的密码。 打包程序时,系统要求使用数字证书。如果没有数字证书,我们选择"Create new keystore"新创建一个证书库,单击"Browse…"按钮选择证书库将要保存的位置并填入信息,如左图所示。单击"Next>"按钮,如右图所示。 其中,Alias是该证书的名字;password是该证书的密码;Validity是指定证书有效 年份。 如果已经拥有一个证书,那么可以选择"Use existing keystore",之后直接定位到证书库的位置并填入密码,如左图所示,接下来填入密码,单击"Next>"按钮,如右图所示。 单击"Browse…"按钮,选择文件保存的位置,如下图所示。 "Destination APK file "指定APK存储的位置。单击"Finish"按钮,打包完成。 android 自定义控件的过程 invalidate()会导致computeScroll()以及onDraw()方法的执行computeScroll()方法是在屏幕流动的时候不停的去调用,scrollTo(int x,int y)则是滚动到相应的位置; scrollBy(int x, int y)则是移动一些距离,X为正是向左移动,为负时向右移动,Y与X的意义一个,只是是上下移动而已View对象显示在屏幕上,有几个重要步骤: 1.构造方法创建对象 2.测量View的大小onMeasure(int,int); 3.确定View的位置,View自身有一些权,决定权在父View手中. onLayout();基本上不常用,在继承View的时候基本上用不着,但在继承ViewGroup的时候的就要用到了,因为要对View进行布局,确定View的位置,确定的时候使用 指定子View的位置,左,上,右,下,是指在ViewGroup坐标系中的位置https://www.sodocs.net/doc/e812489758.html,yout(int xtop,int ytop, int xbottom, int ybottom); 4.绘制View的内容onDraw(Canvas) 实现过程: 1、构造方法: /** * 在布局文件中声名的view,创建的时候由系统调用 * * @param context * 上下文对象 * @param attrs * 属性集 */ public MyToggleButton(Context context, AttributeSet attrs) { super(context, attrs); initView(); } 2、测量View的大小: /** * 测量尺寸时的回调方法 */ ? 源文档 Mediawiki使用手册 第一部分构建环境 1、装IIS 一般精简版XP系统中的Windows组件中没有安装IIS,因而需要再控制面板--添加/删除Windows组件中勾上IIS,然后根据提示进行安装(可以在网上搜到IIS5.0和IIS6.0的安装程序) 2、装PHP(公司服务器上安装的版本为5.3.3) (1)装fcgisetup_1.5_rt (2)装PHP--在安装过程中出现Web Server Setup界面时选择IIS FastCGI 3、装Mysql(公司服务器上安装的版本为5.1) (1)在安装过程中,选择自定义安装 (2)在对Mysql进行配置时,选Detailed Configuration--Developer Machine--Multifunctional Database--选择存储的路径--Decision Support (DSS)/OLAP--勾上Enable TCP/IP Networking和Enable Strict Mode--勾选Best Support For Multilingualism--填写Service Name,勾上Include Bin Directory in Windows PATH--填写并确认密码--点击执行--结束 第二部分数据库的导入导出 1、从PC机上导出你目前完成的数据库 在电脑运行中输入cmd进入命令界面输入:Mysqldump -u 根用户名(目前设置为root)-p 原数据库名称(目前设置为wikidb)>导出文件名(目前设置为wikidb.sql) 点击回车即将当前PC机上的数据库成功导出到当前路径下,文件名为wikidb.sql 2、在需要PC机上导入数据库 (1)在电脑运行中输入cmd进入命令界面输入:mysql -u 根用户名-p 点击回车,输入密码(当前设置为123) 点击回车,出现mysql> 依次输入create database wikidb; use wikidb; source 存放导出数据库文件的路径\导出数据库名(例如:source d:\wikidb.sql) 此时导入结束,可以输入show tables 查看导入是否成功 android常用控件大全 在Android中使用各种控件(View) DatePicker-日期选择控件 TimePicker-时间选择控件 ToggleButton-双状态按钮控件 EditText-可编辑文本控件 ProgressBar-进度条控件 SeekBar-可拖动的进度条控件 AutoCompleteTextView-支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView-支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开) ZoomControls-放大/缩小按钮控件 Include-整合控件 VideoView-视频播放控件 WebView-浏览器控件 RatingBar-评分控件 Tab-选项卡控件 Spinner-下拉框控件 Chronometer-计时器控件 ScrollView-滚动条控件 在Android中使用的Layout FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角 LinearLayout:里面可以放多个控件,但是一行只能放一个控件 TableLayout:这个要和TableRow配合使用,很像html里面的table AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置 RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置 (Android界面布局好像还可以直接引用一些view,如ScrollView等) 常用控件: 1,EditText 主要函数:setText/getText设置/获取文本内容,setHint设置缺省显示内容; 2,RadioGroup,RadioButton RadioButton的isChecked()判断是否被选中 获取选中RadioButon的ID:设置 RadioGroup.setOnCheckedChangeListener方法 publiconCheckedChanged(RadioGroupgroup,intcheckedId)//checkedId 是选中RadioButton的ID 3,CheckBox isChecked()判断是否被选中 setOnCheckedChangeListener方法监视选中状态改变情况 4,Spinner a,显示数据 1),硬编码加载 通过setAdapter方法设置类型为 ArrayAdapter(Contextcontext,inttextViewResId,String[]objects) textViewResourceId:显示内容的ViewID默认设置为 https://www.sodocs.net/doc/e812489758.html,yout.simple_spinner_item 总结android项目的基本开发步骤 做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流。一应用规划: -确定功能。 -必须的界面及界面跳转的流程。 -需要的数据及数据的来源及格式。 -是否需要服务端支持。 -是否需要本地数据库支持。 -是否需要特殊权限。 -是否需要后台服务。 二架构设计: -分层。 -网络连接。 -数据处理-xml、domain。 -封装Activity。 三界面设计: -主界面确定。 -模块界面、列表、查看、编辑界面。 -菜单、按钮、对话框、提示信息。 -界面总体颜色。 四数据操作和存储: -数据来源。 -数据类型。 -存储方式。 五业务实现: -客户端业务解析。 六页面跳转: -每个页面间的跳转。 -菜单、按钮、事件等。 #开发之前还需要做一些准备工作 1.技术储备 a.Java 重要程度:????? -框架,编程思想,编码规范,设计模式等 b.Xml 重要程度:???? -布局,选择器,配置文件等 c.数据库重要程度:??? -关系型数据库,SQLite 2.开发工具 a.Eclipse或者AndroidStudio b.Android SDK c.其他:svn / git,JDK,资源,数据库,模拟器,真机等 #开发过程中还有以下的一些流程 1.多种开源框架和优秀源码的引用 -xUtils,Volley,Vitamio,SlidingMenu等 2.数据访问 -访问框架 -传递方式 3.多种API的接入 -短信服务 -即时通信 -消息推送 -第三方登录等 4.后台开发 -后台的开发,为app提供接口 -后台的云服务器 5.内存优化 -垃圾回收 -一、二级缓存 -适配器的优化 -图片框架及资源的优化 6.多线程异步 -Handler -Asynctask 7.屏幕适配 #开发基本结束之后还有很多需要流程 1.多型号真机实测 2.云服务器优化 3.APK加密 4.数字签名 5.用户协议 6.应用平台 7.项目上线 8.应用推广和广告插入 9.版本更新和维护 Android进阶——自定义View之自己绘 制彩虹圆环调色板 引言 前面几篇文章都是关于通过继承系统View和组合现有View来实现自定义View的,刚好由于项目需要实现一个滑动切换LED彩灯颜色的功能,所以需要一个类似调色板的功能,随着手在调色板有效区域滑动,LED彩灯随即显示相应的颜色,也可以通过左右的按钮,按顺序切换显示一组颜色,同时都随着亮度的改变LED彩灯的亮度随即变化,这篇基本上把继承View重绘实现自定义控件的大部分知识总结了下(当然还有蛮多没有涉及到,比如说自适应布局等),源码在Github上 一、继承View绘制自定义控件的通用步骤 自定义属性和继承View重写onDraw方法 实现构造方法,其中public RainbowPalette(Context context, AttributeSet attrs) 必须实现,否则无法通过xml引用,public RainbowPalette(Context context) ,public RainbowPalette(Context context, AttributeSet attrs, int defStyleAttr)可选,通常在构造方法中完成属性和其他成员变量的初始化 重写onMeasure方法,否则在xml中有些设置布局参数无效 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(width, height);//重新设置View的位置,若不重写的话,则不会布局,即使设置centerInParent为true也无效 //setMeasuredDimension(width,height); } 手动调用invalidate或者postInvalidateon方法完成界面刷新 重写onTouchEvent方法实现基本的交互 定义回调接口供外部调用 二、彩虹圆环调色板设计思想 Wiki站点支持面向社群的协作式写作,每个人都可以发表自己的见解,或者对共同维护的主题进行扩展。Wiki同时也包括一组支持这种写作的辅助工具,可以在Web的基础上对Wiki页面的文本进行创建,更改和发布,比做网页和更新网页简单方便得多。下面我们来配置Wiki服务器。 一、安装Linux系统 要配置Wiki服务器我们首先要安装一个Linux系统,在系统中配置LAMP环境,这里我们使CentOS系统,装系统我们就不多说了,简单安装一个系统,但是要把编译环境安装好。 二、配置LAMP环境 主要软件包, 1.httpd- 2.2.17.tar.gz 2.mysql-5.0.20a.tar.gz(这个版本是已编译好的压缩包,解压后稍做配置即可使用) 3.php-5.2.17.tarr.gz 安装php所需的软件包(其中libxml2是安装php5必须的.) 1.libxml2-(version).tar.gz 2.libxslt-(version).tar.gz 3.curl-(version).tar.gz GD库所需要软件包(有人说PHP源码包里自带了GD2.0.28和zlib,只要安装GD的三个支持包:jpg,png和freetype,但是我们还是下载) 1.gd-(version).tar.gz 2.freetype-(version).tar.gz 3.jpegsrc.v6b.tar.gz 4.libpng-(version).tar.gz 5.zlib-1.2.3.tar.gz 以上软件的版本自行决定,不一定是越高越好 将下载好的软件都传到LINUX服务器上 1、安装MySQL 解压MySQL原码包 解压后进入到解压出的文件夹中 为保证数据安全我们在安装系统时做一个分区专门用来存储数据 上图中的/data就是专门用来存放数据的,我样把数据库也安装到该分区中 [1]孙卫琴,李洪成.《Tomcat 与JSP Web 开发技术详解》.电子工业出版社,2003年6月:1-205 [2]BruceEckel.《JSP编程思想》. 机械工业出版社,2003年10月:1-378 [3]FLANAGAN.《JSP技术手册》. 中国电力出版社,2002年6月:1-465 [4]孙一林,彭波.《JSP数据库编程实例》. 清华大学出版社,2002年8月:30-210 [5]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319 [6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9 月:32-300。 [7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月1日:1-354 [8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月:1-246 [9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460 [10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社,2003年3月:1-268 [11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月:1-410 [12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月:34-307 [13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月:23- [1] [美]Walter Savitch. Absolute Java[M].北京:电子工业出版社,2005. [2] 计磊,李里,周伟.J2EE整合应用案例[M].北京:人民邮电出版社,2007. [3] 王虎,张俊.管理信息系统[M].武汉:武汉理工大学出版社,2004.7. [4] 启明工作室编著.MIS系统开发与应用[M].北京:人民邮电出版社,2005.1. [5] 王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,2004.6. [6] 方睿,刁仁宏,吴四九编著.网络数据库原理及应用[M].四川:四川大学出版社,2005.8. [7] 耿祥义,张跃平编著.JAVA2实用教程(第二版)[M].北京:清华大学出版社,2004.11. 1] 俞传正.基于博客的个人知识管理平台研究[D].天津:天津师范大学,2006. [2] 陈明.Blog、Wiki在协作学习中的应用研究[D].武汉:华中师范大学, 2006. [3] 郭华伟.基于内容聚合BLOG学习平台的辅助教学研究与实践[D].北京: 首都师范大学,2006. 自定义Dialog; dialog = new Dialog(this); dialog.setContentView(https://www.sodocs.net/doc/e812489758.html,yout.by_baseinfo); dialog.setTitle("dialog的title"); /* * 获取Dialog的窗口对象及参数对象以修改对话框的布局设置, 可以直接调用this.getWindow(),表示获得这个Activity的Window * 对象,这样这可以以同样的方式改变这个Activity的属性. * Activity不可见时getWindow()返回值为null; */ Window dialogWindow = dialog.getWindow(); // 对话框的布局设置参数; https://www.sodocs.net/doc/e812489758.html,youtParams layoutParams = dialogWindow.getAttributes(); // 设置Window中的内容为左上对齐; dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP); /* * lp.x与lp.y表示相对于原始位置的偏移. * 当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略. * 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略. * 当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略. * 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略. * 当参数值包含Gravity.CENTER_HORIZONTAL时 * ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动. * 当参数值包含Gravity.CENTER_VERTICAL时 * ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动. * gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL | * Gravity.CENTER_VERTICAL. * * 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在 * 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了, Gravity.LEFT, Gravity.TOP, * Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离 */ // 相对于屏幕原位置(加上标题栏) 的偏移量; lp.x = 100; // 新位置X坐标 今天和大家分享下组合控件的使用。很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便的一个方法。今天就来介绍下如何使用组合控件,将通过两个实例来介绍。 第一个实现一个带图片和文字的按钮,如图所示: 整个过程可以分四步走。第一步,定义一个layout,实现按钮内部的布局。代码如下: 1. 2.Nfsen网络流量分析手册
Android常用控件
Android项目打包成apk
android 自定义控件的过程
wiki介绍以及常见wiki比较
Mediawiki使用手册
android常用控件大全
总结android项目的基本开发步骤
Android进阶——自定义View之自己绘制彩虹圆环调色板
WIKI服务器的配置
jsp和servlet文献参考
android自定义布局或View
Android自定义控件