安卓设计思路.doc_第1页
安卓设计思路.doc_第2页
安卓设计思路.doc_第3页
安卓设计思路.doc_第4页
安卓设计思路.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

原理:画面绚丽,操作简洁方便,未来的网站和软件都是充满人情味的产品1分界面,内页设置布局,操作界面设计具体执行是:按照模块一个个具体实现到能运行位置比如1先框架能够运行,2然后是大的底层功能能够运行,接下来是更复杂的功能能够运行,最后一步步的运行起来总之,设计自顶向下,程序自底向上做之前要确保找好所有的模块代码以及资源代码安卓网站模式分配1. 咨询为手机吉尼斯世界2. 分配模式为:只要参与到网站,成为一个网站的一份子,拿虚拟股份,然后在网站做大的时候,可以按照虚拟股份分红举例:安卓哈哈镜(已有的开发)音乐播放(可能机能不够),相机拍摄像素扭曲要有一个实际作用的应用软件,下载量大的都是电脑重量级应用软件的手机版而对原创的手机软件,必须贴近手机的移动功能和触屏特性,如果是游戏,那么必须有趣味性,或者移植大型游戏,手机宠物(移植以前的电子宠物,把手机变成用户的宠物)你的爱机就是你的宠物(有类似的手机女友,但是不太方便向朋友炫耀)主界面:给宠物起名:设置电话短信铃声为宠物声音(根据宠物的不同状态有不同的声音,宠物每天的状态根据其消费的习惯,和使用手机的记录习惯给用户打开应用程序),可以随机播放宠物的叫声,消费短信,电话对话时间,网络流量来转换成养成积分利用这几天晚上的时间一点要把这个程序搞出来属于开启后挂在后台service程序,随时监听系统三大类的信息并转化为养成资源,宠物有一个等级自动保存存储数据手机宠物在数值不够时以宠物声音提示,手机宠物需要一个卡路里消耗计,需要带宠物去散步,记录主人带手机移动的距离,每天需要走一段距离,否则宠物状态不健康,还有重力感应来获取运动量,让用户运动手机打开蓝牙功能,检测到附近有相同软件的手机就会提示,如果感觉光线暗,自动把屏幕打开还要播放一些音乐等定制软件来获得每天的定制积分注册安卓市场账户的时候注意写香港或者台湾的注册地址信息,要通过审核,国内地址收不到钱安卓都是可视化对象程序,每个节目的控件都对应到代码里的实例,然后控件操作反馈到代码里,代码调用链接各种控件,界面,底层服务功能,程序就是各种功能的运行次序,所以要通过流程图来决定功能顺序,要学会分拆所有的步骤,用伪代码表示出来(这就是数学建模,包括抽象能力和总结能力来将一些重复的步骤结合)实例化就是让外部控件导到程序内部一种是按照需求去定制,一种是做出来后去找需求所有函数都在程序运行之前预存到函数栈内,只要出现了一个函数,系统会自动从函数栈内调用此函数注:断点调试的目的是判断程序流程中的哪个环节出问题,一个个问题往上收缩排查先学习一整套的流程方案(每一行都是一个小步骤)通过实机操作进行1创建框架文件(在src中的java中已包含基本的引入包,主继承活动界面,主oncreate函数,函数内有继承oncreate函数,还有将R.layout.main(R文件中将所有res资源文件中的资源打包放置)布局文件与活动关联,这个框架程序能够运行,但是不显示任何信息)2在oncreate中设置一个textview文本视图,设置后好再显示即可显示文字,程序能够运行,可显示文字3在主活动界面内直接定义监听器和控件,可以直接设置该页面的标题,然后再重写构造函数onCreate,在构造函数里继承super函数后,直接给监听器赋值初始化,然后在监听器函数内设置点击响应函数(控件操作动作响应函数),按钮点击响应函数内一般都需要实例化一个Intent来传递界面,然后用startactivity启动Intent进行界面跳转,然后再关联显示布局文件(多个控件群可以显示布局文件,如果单个控件,可以直接显示控件,但是一般都是多控件的布局)。然后直接实例化控件,然后设置监听器到控件。此程序可以直接运行显示,一旦外部操作控件,系统自动调用控件链接功能3.5同步设置main.xml,一般用可视化界面设置,一个xml只能控制一个界面的布局,布局控件是死的排布在界面上,如果要操作控件,必须在代码中实例化获取控件句柄后才能操作4从主界面跳转到功能界面XXXactivity后(所有的子文件java都要在第一行打包到同一个文件夹),就是子页面上的监听器中的控件操作真正的程序功能,主页面上的控件监听器只是操作跳转功能5根据控件的特性装载数据(比如下拉菜单上的数据)可以不用监听器,在后台直接装载数据容器,进度条直接套在xml布局文件外面,可以直接运行6活动界面的一切控件元素都可以操作7.注意有些重写的回调函数,在系统执行某些函数时直接回调,不用在函数体内特意操作,只需要弄清楚系统函数调用的关系就可以了8某些函数(如Imageswitcer),必须先放置资源的容器(如对应的setfactory(view)来传递操作对象,然后利用内置的接口重载函数对对象进行操作,如果操作对象具体数量多,还要用一个Adapter容器装载一次性载入9下弹菜单桌面是用默认的onCreateoptionsMenu()创建菜单窗口,传入参数是一个Menu控件,用menu.add将Item1=Menu.First菜单选项加入菜单,系统自带实例到menu按钮,点击menu按钮时创建,而点击菜单按钮时启动onOptionsItemselected来响应点击,自动获取响应的按钮的id传入,然后根据传入的id来进行不同的操作10startActivityforresult(intent,返回要求参数)就是切换到新界面后,intent可以传递putExtra信息,以bundle(类似于Map匹配信息组)传递,通过Bundle extras=getIntent().getExtra()获取intent内的信息,新界面执行结束后,返回参数给上一个界面的重载函数onActivityResult(requestcode(返回要求码),resultcode(返回确认码),intent(返回bundle数据)来接着处理,这样设计的功能是不用在下一个界面设置跳转11在AndroidManiFest.xml中设置哪个activity是系统默认设置为第一个的界面12数据列表的结构,ListView(显示的控件)和Data(控件上显示的数据)需要有一个桥梁ListAdapter(下属的一个arryAdapter数组适配器是用的比较多的)来适配传递,使用arrayadapter(上下文环境(就是能让当前的活动识别这个arrayadapter),列表项设置(系统自带三项),Data数据),一个更复杂的ListAdapter子类为SimpleAdapter(因为可以自定义,所以第二项的系统自带配置方式就取消了),参数为(上下文,每一项为Map类型的数据Data(一般为data=new ArrayMap()定义的格式),自由设定的布局Resource(int 的数字形式的LAYOUT布局名,也可以用自带的配置),map中的所有索引名为一个字符串数组new string“”,”,最后一个参数是layout中对应的索引参数,都是textview),然后将这个adapter设置到listview中,每一个listview中都可以设置一个重载函数onItemClick(listview视图,被点击的视图itemview,被点击的position位置,被点击的项ID),里面的参数都是系统自动获取,安卓里点击是用OnItemClickListener监听器,如果用键盘选择,则用onItemSelectedListener监听器13Dialog的几个系统自动重载函数传入参数是实例ID,里面可以根据ID来Switch(id)case来进行不同的重载选择,调用ShowDialog(Dialog)之前会自动调用onCreateDialog(id,dialog)和onPrepareDialog(),在onCreateDialog里设定好Dialog设定函数,参数一般为(context上下文相关),Dialog上的两个按键都是固定的设置,确定按钮为AlertDialog.Builder.setPositiveButton(按钮上的字符串,监听函数),配置好后,使用builder.create()创建一个Dialog,意思是dialog对象不是直接生成,而是通过一个AlertDialog.Builder来作为中介生成,dialog不用intent跳转,执行按钮完毕后自动消失,跟背景activity属于同一个activity14有时需要使用LayoutInflater inflater=Layouinflater.from(this);将xml文件解析成View视图,用builder.setView(textEntryView)在对话框中展示出视图,就让不同的视图界面拼接在一起Dialog的进程进度框ProgressDialog不用Dialogbuilder,直接可以实例化15NotificationManager信息管理器实例化,NotificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE),在Oncreate(Oncreate就是创建实例化本activity的全局变量)中实例化,在控件的监听器内的点击函数进行信息操作,操作函数内实例化并设置一个信息Notification notification=new Notification(显示的图片Iddrawable,显示的收发机标题文字tickerText,获取系统时间System.currentTiemMills());然后使用setlatestEventInfo(context上下文,字符队列contentTitle信息标题,字符队列contenttext信息内容,信息内即将跳转的页面pendingintent)这包括两方面的信息,一方面是,设置展开Notification的呈现方式,另一方面是处理对Notification进行点击的跳转处理页面。然后使用NotificationManager.notify(设定的NOTIFICATION_ID,notification)来显示16Toast可以直接实例化Toast toast=new Toast(this); Toast可以跟xml解析出来的View进行关联toast.setView(view);也就是在哪个View弹出Toast来展示,Toast.Duration(Toast.LENGTH_LONG/LENGTH_SHORT)两种参数来控制Toast显示的时间长短,然后使用toast.show().注:有时候文件(androidAPI不全,或者引入包不全),导致定义错误17android.content.SharedPreferences获取简单的文件字符数据保存,通过SharedPreferences.edit().putString(保存到xml的文件名,要保存的数据).commit();进行提交操作,反过来提取的时候直接用SharedPreferences.gettingstring(NAME,”)就可以提取了,需要在重载onStop函数中设置保存数据并提交18SQLite保存数据需要先建立一个继承于SQLiteOpenHelper的子类DatabaseHelpersuper(Context,DataBase_NAME,null,DATABASE_VERSION);super函数为继承父类的超函数,在onCreate(入参为数据库名db)函数里编写sql语句并执行来自动生成一个db中的数据库表,等价于打开程序,自动载入一个数据库表,如果有必要,还可以在onCreate中升级数据库updateonCreate()注:构建sql可执行语句是string格式,java中要用“XXX“+字符串变量名NAME的格式形成一个字符串,进行新建CreateTable,删除DeleteTable,插入insert,查询query之前必须获取一个可写数据库SQLiteDatebase db=mOpenHelper.getWriteableDatebase();使用Cursor来获取查询结果的所有条目指示,可以对cursor进行进一步的统计操作SQLiteDatebase =mOpentHelper.getReadableDatebase();可读数据库19建立一个日记本,数据就是一个标题字符串,一个文本字符串,数据库里两个标记titleID和对应的text,如果改用ContentValues(一个名值类,输入参数为(数据库某列标记名,具体数据名(从createxx函数的参数传入),那么仅仅是将sql语句操作简化为contentvalues.put,contentvalues.get,让数据库的简化直接操作ContentValues,而不是sql语句onCreateOptionsMenu(Menu menu)和onMenuItemselected是跟menu按键关联在一起的重载函数,Menu这个变量为android.view.Menu,不用定义,直接调用,按钮的数量可以自定义,但是要显示在界面上,必须在布局文件layout的xml中设置根据应用目的专门设置一个日记容器类Diaryadapter,将紧密耦合的DatabaseHelper和SQLitDataebase封装到一起(databasehelper进行数据库的打开/关闭辅助操作,而SQLiteDatabase则使用ContentValues直接进行数据库的插入和查询db.insert/query,直接使用Diarydapter进行操作,对这个容器的一切操作都必须在这里进行函数定义,向外界提供函数操作接口,起码有创建和删除两个函数,有必要修改的话要一个update更新数据函数强行结束一个activity活动界面可以直接使用finish();整个日记本流程为,打开程序,载入界面布局,刷新list数据renderlistview()(包括获取所有条目cursor,用进行标签管理,设置标签容器SimpleCursoradapter notes,再将notes用setListadapter(notes)设置到list上,对List的表单项目点击操作有一个重载函数onListItemClick(listview列表视图,view,列表位置,位置id)(列表本身是一个控件,无法对单项目进行监听设置),系统自动检测到位置光标,而用键盘进行上下选择列表的监听是getlistview().getselectedItemId(),然后重写菜单(菜单独立于activity,界面不受xml影响,直接使用menu.add加入(0,ID,0,R.string.id)即可直接加入菜单项),一旦进入主界面,都要使用renderlistview()函数(从diaryDbadapter容器内将数据传到界面控件上,再显示出来)。然后对主界面的点击操作进行不同处理,各种类型的监听,对传进来的intent的辨别处理是靠intent带的extra信息内容20contentProvider对外界进行数据提供,而使用CURSOR cursor=getContentResolver().query(URL(系统URL,不同的程序提供的URL,供给其他程序使用的开放接口就是URL),特定函数通过这个URL获取信息,增删改查,具体:对作为数据传递体的diary,内部定义一个继承于Basecolumns的class(diarycolumns)来记录数据库的列表字段名,而diary向外提供接口的类则要定义一个diarycontentprovider类,里面定义的函数可供外界使用,包括authority授权,也就是文件路径,里面使用sUrimatcher对Uri的类型进行判定,是1个还是多个返回请求 uri,日记的存储格式都是uri,对更新这个操作可以提取Uri来更新21网络存储,将uri设定为网址即可提取注:用不同的方式去实现同一代码的优劣性的比较思考,按照界面定义一个java文件,或者按照整体数据集合定义一个java类22.intent跳转启动activity可以是指定名的,也可以利用intent信息去匹配 Intent的匹配使用参数intent(intent.ACTION_DIAL,” “)或者直接设定intent=new intent(action(另外设定对应值);另外,android系统在来电或来短信,网络流量变化时候使用Intent来广播发送消息,此时可以使用BroadcastReceiver(要在AndroidManifest.xml内注册,并设定接收Intent的动作action标记)截获Intent来增加积分,然后在实例化intent时候注明其动作,然后发送出去,系统自动派送到指定的receiver活动中23建立一个继承于service的testservice活动,里面的重载函数包括Ibinder onBind,onUnBinder,onReBind,onCreate,onstart,ondestroy,在这些重载函数里进行后台操作,利用notification进行消息传递,activity通过intent传递service.class来启动service要想推出程序不退出界面的用onstart,想退出程序同时退出service的用onbind24一个报警service测试,在主界面activity中alarmService使用一个BroadcastReceiver的AlarmReceiver来启动一个SERVICE,NotifyService中使用Toast来发送短消息25音乐播放器,在主界面activity的按钮关联的监听器内使用intent来启动继承于service的music类,在重载的onCreate函数里使用系统提供的Mediaplayer(this,资源名)来打开注:activity,broadcast,service三大系统类都必须单独定义一个类名,然后第四大的intent则放在各大类的内部进行消息处理26RSS阅读器,分为三个文件夹,一个文件夹放置活动界面文件activity类,一个文件放置内部数据data类,定义一个RSSItem类(即为阅读器项)和一个提供Item的RSSfeed类,一个文件夹放置一个继承于ContentHandlerRSS(里面都是重载函数)的解析类,里面除了重载的函数,可以自定义需要的变量。重载函数包括初始化函数startDocument()和释放函数endDocument(),startElement()(解析xml里tag,用于将其转化为本地建立的Item数据),对应的endElement()(解析完一个xml的tag到Item后,再执行此函数)在主活动界面的onCreate()中根据URL来获取RSSItem(在获取函数getfeed中进行分析,然后将自定义的RSSHendler放置到系统解析函数中,然后展示RSS列表并监听点击动作,点击之后进行详细的Item信息跳转界面27android设计的代码思路:分析功能分类,然后按三大功能来设计,如果是一些数据类的话直接定义class类,一个界面一个小系统,界面之间传递用intent,类间传递直接实例化一个类,xxx xxx=new xxx();系统函数传递,先import(要注册先注册),再调用要形成自己高效的编码风格归类明确,尽量少界面,多service(因为跳转需要时间,但启动service要给予提示框)在设计的时候就应该想好数据归类和接口操作,以及对应的英文名翻译和注释;然后一个个功能去尝试搭建,通过搭建过程来自建一套流程可以利用eclipse提供的右键source加入系统提供的重载函数举例:1小图标(金色的宠物GoldenPet):点击进入主界面Mainactivity2 主界面:包括项目option:查看宠物信息(Petinformation),背后有一个Petinformation.class,和获取原始积分类Fraction.class,点击进入Petinformation里面有各种属性(Attribution)积分(Fraction),名字(name),体(Manual),智(intelligence),敏(Agile),等级(Petlevel),疲劳值(fatigue),饥饿值(hungry),健康状态(health),经验值(Experience),年龄(age),忠诚(loyalty),剩余点数(surplusfraction),花费点数(Costedfraction),友情度(friendvalue),叫声(cry),背景音乐(music),物品(goods),初始化时候,所有值都为0,而通过监听短信和电话(包括打出和打入)获取点数(点数计算按照消耗的钱来转化计算,1分钱一点,短信1毛一条,电话1分钟1毛,流量1元1m计算)点数类Fraction.class,是一个service,在启动的时候就已经在后台运行,并且在桌面上出现图标,里面涉及到函数获取点数getfraction(),监听流量(internetstream),短信(message),电话时间(conversationtime),并将其转化为宠物使用金点petgoldvalue宠物信息用sharedpreference存储物品类(Good.java)物品使用数据库SQLiteDb存储(主要存储物品的名和功能),接口操作为分配分数,可以提供上传到网络备份,每天更新一次,交易之后保存一次数据(物品列表goodlist.class)列表项包括物品名GoodName,物品属性(GoodAttributtion用静态变量名代替的数字),物品描述(gooddescription),物品数值(goodvalue),物品图标(goodicon)物品添加方法(goodadd):将物品加到物品列表(goodlist)中,并更新列表物品消耗方法(goodcost)将物品从列表中删除,并更新列表视图物品列表更新(goodlistupdate)renderlistview物品信息获取函数(goodinformationget),数据库辅助类(Dbadpter.class)宠物交流类(PetCommunication.class)有一个界面activity,有按钮Button调用下面的类,交流活动需要消耗点数fraction宠物养成类(Petfeed.class)方法包括吃饭(rice回复饥饿值,方法是实例化获取PetInformation类hungery数据,然后使用goodcost传回来的值进行算法处理),休息(rest回复疲劳值),游戏(Game提高友情值,消费道具方法(goodcost,函数体内用获取物品的属性值,传递出来,在上面的三项中使用物品,提供一个activity,listview让玩家选择消耗物品)有分数奖励或者获得合成材料,一些很特殊的合成材料(SpecialMaterial)出现概率很低,按照花费的钱的十分之一来定价,看起来很高,但其实买比合成便宜),但是会增加疲劳和饥饿,到达阀值(Threshold)的时候,宠物进入疲劳或饥饿状态,而且友情值和忠诚值下降,有一定概率发生生病事件(illness),需要特定物品(Drug)来治疗(Treat)协同制作道具类MakeGoods.class(购买官方制作书(MakeBook)有宠物等级限制,高级物品有属性限定),自己收集或者购买合成材料(Material),以及需要一些特殊物品来制作(总材料花费比官方卖价高许多,但是有些材料玩家可以打出来),制作有一定的概率(官方提供99%的概率书(ProbabilityBook),概率由friend数值的百分比(占10%),物品难度概率(占90%),然后线性相加商店交易类Shop.java(将自己的物品上传到商店,集成无线支付宝,可以出售积分(可以使用现实货币或者积分来交易),以及各种消耗道具,玩家和宠物制作物品出售,物品的作用就是提高宠物的属性,以及稀有物品收藏,让玩家通过支付宝收付款,整体的概率是整体产出远低于收入的(跟赌博机一个性质),通过官方定价来确定价格来平衡(但官方不会变价,玩家可以自定义价格)但玩家每天的交易数量有限制宠物养成说明书类(Helper.class/java)就是一个有滑动条的文档界面以上的界面尽量使用系统自带的控件,应该是将所有的控件都融到一个程序内,做一个集合所有API到一个程序内的android教学软件,所有的控件text都包含了功能的名字,然后练习快速引入重载函数思考做一个让人感到震撼的界面,提高品位主要是一个分股网站的推广,主要是客户群定向,如果是不定向客户群,那么虽然有流量,但是盈利模式比较低,但是如果吸收进来一群要赚钱的吸血鬼,那么可以从吸血鬼牙缝中抠出利益,招股招人才的定位都要如何判断一个对象的数据结构:方法函数的参数如何选择(非全局变量的处理对象可以用作传入参数)包括对象和方法,程序运行时就是实例化对象的数据,也就是实施配置数据到对象和方法的参数中,方法中也有很多实例化才建立的变量名,从传递进来的参数进行处理后,变成另一种数据传递出来,那么就是思考通过这个方法函数要把什么数据变成另一种什么样的数据,可以需要到其他的辅助数据,但数据是按照代码执行顺序一步步处理下来的(注意同地位数据是并行,可以当做一整块)有些函数没有入参,那么输入数据就是来源于全局变量,通过一些系统函数获取,系统函数分类1获取数据类2发送数据类,还有尽量功能与数据分开,公用数据单独,不同功能修改则独立,考虑多少种入口数据和多少个出口数据,中间要手动装载什么数据,要设置什么数据返回到系统函数内让系统当前去运行,这就是当前系统的程序明白哪些是启动系统接口代码行(也就是例行公事),理解哪个系统函数是属于哪一个需要import的包,以及哪个系统函数需要填入自定义的数据需要开线程的,在onCreate里开线程,在run函数里定义线程操作,run执行完毕后给Handler函数发送消息,执行Handler函数里面的操作整体思路不要急:大框架定位后,一个个问题细化,最后做出一个资源可替换框架程序就算成功了(即后期的资源可以添加进去替换),将所有系统可用的部件加入进去,形成一个庞大的程序集合,作为自己的一个实现控件资源库,以后可以重复利用,系统控件可以将所有的重载函数都弄下来,然后慢慢填充,总之不要怕错,有八九成的几率就可以尝试,但是框架思维要对对引用的包文件,通常是用到哪个控件,就直接引用其所在的包注:公共方法和受保护方法只能是父类的子类用,父类的实例只能用公共方法,所以要用实例使用父类的受保护方法,只能是建一个子类的公共方法中使用到父类的受保护方法,然后再实例化子类使用这个公共方法私有,只能是类本身来使用(使用场景为类名.方法来生成某些函数),甚至连实例化都不能用几个大的类如View,TextView等有参数设置,一些继承子类可以继承使用这些参数,先把文档的API完全记忆下来(就相当于学语言先记忆单词然后才能写文章),熟悉所有的设置开始进行安卓教学软件设计:(核心为将所有的功能集成到一块,然后功能的每一步都有弹出框,包括文字和代码实现说明)代码助记法:(必须设计一套代码总结规律来帮助记忆,否则永远是低效率学习,无法进行兴趣突破)1. 任何一个变量,都有其来源(即类型定义),其来源包括系统已定义好(只需引用系统包),某处自定义(要寻找其来源,public类型的一旦在设定,只要引入包,都可以直接使用)定义法则:1静态最终变量public static final 类型(int) 用全大写字母下横杠划分,如XX_XX_XX 包括变量名_动作_状态,也可以全部小写2函数名和普通变量名则 public 返回类型 开头单词首字母小写,第二个单词以后的单词首字母大写,或者小写单词之间用下横杠隔开_3class定义类名和interface接口函数名则首字母大写,即所有单词首字母都大写4而系统预置定义的变量类型则全部小写,但是String是大写,说明String是一个类5构造函数跟类名一致,也是首单词首字母大写所以根据命名来判断变量的类型范围命名规则:一般函数命名规则为小写字母的动作名+表示实体的变量名常用的(一般为系统重载函数)如get+变量名的意义为使用函数获取变量类型的返回值(get),这种函数都要有返回值is/has 为boolean类型,返回值判断是否是变量名状态/具有变量名clear 清除变量名on+变量名事件 打开事件开关,即执行变量名事件set+变量名事件 设置变量名的某个属性值,如果是设置开关是否有效,可以在后面加个Enabledadd+变量名 一般入参即为要添加的变量,为某个数据结构添加成员变量remove+show+自定义函数的话,可以根据需求来写动作+变量名函数入参数定义:入参是根据函数体处理的数据决定的,比如这个函数根据命名来体现功能,这个功能又涉及处理那几个控制的数据,这些数据就是入参,所以根据要求不同,同名函数有不同入参,所以必须记忆系统函数的一些默认参数一些常见的入参:上下文相关Context context(一般可以用this):用于将当前函数作用链接到最近的程序环境中(就是最接近的对象),一般是在回调函数体内,让系统知道是有一个对象在调用这个回调函数,context/this指的就是这个整体对象函数要处理的对象名的对象名name:函数/类划分规则:(不要把所有功能都集中到一个函数/类体内,但又不能分得太细)结构基本是树状结构, 1尽量把每个页面的内容显得平衡一点,一个总的界面连接到其他分界面 2尽量使用系统的函数(你想到的功能函数,系统基本已经实现,要整合这些函数) 不同的类型的java文件可以放到不同的自定义包中,然后通过引入import数据包来使用定义类或函数利用代码的行数属性来助记,每一个固定功能块共有几行,几个小部分来划分将所有的程序的共同代码模块抽取出来,然后按照使用频率排列起来,分析其行数和固定搭配,以及使用用法按照使用频率排列:第一位是在主活动类里面使用的将xml框架layout展示到活动界面,是一切程序显示的根源需要设置:layout里的xml布局文件。AndroidManifest.xml里super.onCreate(savedInstanceState);/固定一行继承类 setContentView(R.layout.main);/将控件内容展示的函数 TextView tv = new TextView(this); tv.setText(你好,Android); setContentView(tv);第二位是button按钮,是让用户交互的第一步,需要的时候可以直接简单集合到一层里面private void initButtons() Button buttonStart = (Button) findViewById(R.id.start_service); buttonStart.setOnClickListener(new OnClickListener() public void onClick(View arg0) startService(); ); 注:以上可以集合到一块的程序部分,非静态全局 变量定义的时候可以直接赋值,控件设置监听器时可以直接用监听器函数下的响应函数,省略监听器中间变量,让相关程序变得更加耦合,但是要注意每段程序的行数平衡性,有多个监听器的情况下,最好还是分别命名监听器一般流行思路是定义变量的时候直接赋予上一个语句被赋值变量的相关变化值,赋值包括初始化第三位是TextView,就是展示的文本文字,可以在layout布局属性里面修改其设置展示方式,也可以在程序里面设置,可以互相设置,先在可视化界面框内拉入控件,然后在相应的xml代码中细调位置第四位为EditText()可供用户输入的EditText edit_text = (EditText) findViewById(R.id.edit_text);CharSequence edit_text_value = edit_text.getText();/getText()函数可以获取控件上的text属性值,两行代码可以实现setTitle(EditText的值:+edit_text_value);/设置标题第五位是页面跳转intent,这个是多界面的联系起源,三行代码Intent intent = new Intent();intent.setClass(MainActivity.this, DatePickerActivity.class);startActivity(intent);第六位是静态字符串数组,因为String是一个类static final String COUNTRIES = new String China ,Russia, Germany,Ukraine, Belarus, USA ,China1 ,China12, Germany,Russia2, Belarus, USA ;单帧框架Framelayout也很常用,解决了控件叠加的问题,在一个控件上面再添加一个控件就是慢慢一步步来,完成框架之后再一步步的扩展,但是可以训练强行整体规划这些知识的细节都是建立好框架后,根据想要实现的功能一步步的寻找资料去实现,所以前提是框架要搭建的好第七位,引入图片资源(必须转成png格式的,然后复制粘贴到对应的一个文件夹即可(看其大小),然后要注意命名如果跟系统命名重复的话,会报错invalid symbol无效符号,要改其命名第八位,在activity界面引入背景图只需要在布局文件中加入android:background=“drawable/文件名”,再加上在主程序中加入requestWindowFeature(Window.FEATURE_NO_TITLE)来让标题消失第九位,如何确定代码功能的放置位置,这涉及到一个数学建模,将流程分拆成问题,然后怎么在代码中实现的问题,问题核心在于哪个函数里面放什么代码,分多少个函数系统框架已经设定好

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论