freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

android手機(jī)控制軟件畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-26 07:21 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 int y)、測(cè)試等.void mousePress(int buttons)void mouseRelease(int buttons)void mouseWheel(int wheelAmt)上面的三種方法,產(chǎn)生指定鼠標(biāo)按鈕的按下,抬起,、測(cè)試等。以上就是Robot提供的實(shí)用的鍵盤鼠標(biāo)控制功能。 鼠標(biāo)移動(dòng)功能的設(shè)計(jì)原理Robot類提供了一個(gè)有關(guān)鼠標(biāo)移動(dòng)控制的方法void mouseMove(int x, int y),可以將鼠標(biāo)光標(biāo)移動(dòng)到指定的區(qū)域。其基本原理是手機(jī)端捕獲位移方向和距離,將其傳到服務(wù)器端,服務(wù)器端根據(jù)該位移移動(dòng)相同的距離。手機(jī)端的mouseview是指針移動(dòng)區(qū)域public MouseView(Context context, AttributeSet attrs) {super(context,attrs)。msg = new MsgInfo()。(0)。(0)。}手機(jī)端對(duì)觸摸事件的捕獲:case :x = (int) ()。//獲取當(dāng)前位置橫坐標(biāo)y = (int) ()。//獲取當(dāng)前位置縱坐標(biāo)().setX(x)。//移動(dòng)后的橫坐標(biāo)().setY(y)。//移動(dòng)后的縱坐標(biāo)distanceX = x oldX。//移動(dòng)距離distanceY = yoldY。//移動(dòng)距離oldX = x。//把當(dāng)前位置當(dāng)做初始位置oldY = y。 DatagramPacket((),(),addr,2011 。try {(outPacket)。//將位移事件的坐標(biāo)變化發(fā)到服務(wù)器端服務(wù)器端收到信息后 ,根據(jù)收到位移量的大小移動(dòng)相同的距離:Point mousePoint = ().getLocation()。 (x:+x+y:+y)。(+x, +y)。} //鼠標(biāo)指針移動(dòng)?!∈髽?biāo)點(diǎn)擊功能的設(shè)計(jì)原理在無線鼠標(biāo)界面下方有兩個(gè)設(shè)置了監(jiān)聽器的按鈕,分別對(duì)應(yīng)鼠標(biāo)左鍵和右鍵的點(diǎn)擊事件。當(dāng)點(diǎn)擊按鈕時(shí),服務(wù)端執(zhí)行鼠標(biāo)單擊操作。當(dāng)鼠標(biāo)鍵按下時(shí)發(fā)送一條信息到服務(wù)端,服務(wù)端執(zhí)行左鍵按下操作,當(dāng)鼠標(biāo)鍵松開時(shí),服務(wù)器執(zhí)行鼠標(biāo)左鍵松開操作。rightBtn = (Button) findViewById()。//得到兩個(gè)按鈕(new OnTouchListener() {//為左鍵設(shè)置監(jiān)聽器public boolean onTouch(View v, MotionEvent event) {//鼠標(biāo)點(diǎn)擊事件case ://鼠標(biāo)按下操作(addr, port, msg)。//發(fā)往服務(wù)端的信息case ://鼠標(biāo)松開操作(addr, port, msg)。//發(fā)往服務(wù)端的信息右鍵點(diǎn)擊事件的設(shè)置與左鍵一樣,即添加監(jiān)聽器,在按下按鍵和松開按鍵的時(shí)候分別發(fā)送不同的信息到服務(wù)端,服務(wù)端根據(jù)收到的信息進(jìn)行右鍵點(diǎn)擊和松開操作。無線鼠標(biāo)的用戶界面如圖44所示。圖44 無線鼠標(biāo)界面 在線聊天功能的實(shí)現(xiàn)在線聊天模塊主要是實(shí)現(xiàn)的功能是單個(gè)用戶之間的對(duì)話,多個(gè)用戶同時(shí)對(duì)話,以及文件傳輸功能。其主要原理還是先建立socket連接,然后在此基礎(chǔ)上進(jìn)行的一系列操作?!∮脩糇?cè)功能的實(shí)現(xiàn)用戶注冊(cè)時(shí)需要填寫帳號(hào)、密碼、昵稱、性別、地址、愛好和選擇頭像。若信息填寫不夠完善,系統(tǒng)會(huì)提示補(bǔ)全遺漏的信息。注冊(cè)界面的實(shí)現(xiàn)主要是幾個(gè)EditText和兩個(gè)按鈕,還有信息不完善時(shí)彈出的Toast控件,為什么叫它Toast呢?因?yàn)門oast在英文里的意思是烤面包機(jī),當(dāng)面包烤熟后面包會(huì)從機(jī)器里彈出來,這個(gè)和Toast控件在屏幕上突然彈出來很類似,因此就把這個(gè)控件叫做Toast。public void Init(){name_edittext=(EditText)findViewById()。//添加控件(new repwdTextChangedListener())。//設(shè)置監(jiān)聽器(new repwdOnFocusChangeListener())。(().toString())。(().toString())。//得到用戶所填信息,轉(zhuǎn)換成string類型然后傳到服務(wù)端Intent it=new Intent(,)。startActivity(it)。//啟動(dòng)activity()。這里特別要強(qiáng)調(diào)的是Intent的使用,Intent主要作用是實(shí)現(xiàn)各個(gè)activity之間的跳轉(zhuǎn)并傳參。Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦[14]。例如,Intent it=new Intent(,)括號(hào)中第一個(gè)參數(shù)表示本身所在的activity,第二個(gè)參數(shù)表示要跳轉(zhuǎn)到的activity,當(dāng)要跳轉(zhuǎn)到的activity與本身所在的activity不在一個(gè)包時(shí),被跳轉(zhuǎn)到的activity在manifest文件中進(jìn)行注冊(cè)時(shí)要寫明它的絕對(duì)路徑,加入需要跳轉(zhuǎn)到的activity所在包的路徑。否則系統(tǒng)會(huì)因?yàn)檎也坏揭D(zhuǎn)的activity而出錯(cuò)奔潰。注冊(cè)界面如圖45所示。圖45 注冊(cè)界面 聊天功能實(shí)現(xiàn)聊天模塊的亮點(diǎn)在于spinner的使用,使用spinner可輕松區(qū)分單個(gè)會(huì)話與所有人會(huì)話,點(diǎn)擊spinner的下拉菜單即可顯示所有在線好友并可選擇其中一個(gè)發(fā)起單個(gè)會(huì)話或者選擇發(fā)給所有人進(jìn)行群聊。點(diǎn)擊所有人時(shí),系統(tǒng)會(huì)將用戶發(fā)的消息廣播給所有其他在線用戶。Spinner的使用如下:SpinnerAndroid:id=@+id/spinner1Android:layout_width=wrap_contentAndroid:layout_height=wrap_contentAndroid:layout_weight= ///public void sp_handle(String names[]){sp1=(Spinner)findViewById()。//得到spinner控件ArrayAdapterString adapter = new ArrayAdapterString(this, , names)。//使用adapter傳參()。 //設(shè)置按下spinner之后的操作(adapter)。 ( new OnItemSelectedListener(){除spinner外其他核心代碼就是獲取用戶要發(fā)送的信息,以及接收端接收信息。()方法即可實(shí)現(xiàn)String send_info=().toString()。//獲取發(fā)送的消息int item =()。//使用spinner選擇發(fā)送消息的對(duì)象(info)。//以流的形式將信息發(fā)送出去,其發(fā)送界面如圖46所示。圖46 發(fā)送界面 發(fā)送接收文件功能實(shí)現(xiàn)文件傳輸時(shí)可以選擇好友中的一個(gè)來進(jìn)行傳輸。傳輸流程是先由發(fā)送方將文件上傳到服務(wù)端,再由服務(wù)端轉(zhuǎn)發(fā)到接收方,接收方收到后保存在指定文件夾中。(1) 文件發(fā)送功能的實(shí)現(xiàn)首先要實(shí)現(xiàn)的是SD卡中文件的顯示,實(shí)現(xiàn)方法是在activity中添加一個(gè)listview控件,在listview中還需添加表示文件和文件夾的圖片控件,系統(tǒng)讀取SD卡中文件的信息(文件命,目錄等信息),然后由adapter將信息傳遞到listview并顯示,Adapter是連接后端數(shù)據(jù)和前端顯示的適配器接口,是數(shù)據(jù)和UI(View)之間一個(gè)重要的紐帶。并在listview上添加監(jiān)聽器,點(diǎn)擊文件名時(shí)即選擇該文件,再點(diǎn)擊屏幕下方的確定就將文件傳到了服務(wù)器端,再由服務(wù)器轉(zhuǎn)發(fā)給接收端[15]。選擇文件界面如圖47所示。 public View getView(int position,View convertView,ViewGroup parent){ViewHolder holder。//用holder傳參if(convertView == null){convertView = (, null)。holder = new ViewHolder()。//指定布局文件 = (TextView) ()。 = (ImageView) ()。 (holder)。圖47 文件傳輸界面(2) 文件接收功能的實(shí)現(xiàn)接收方在收到文件時(shí)會(huì)彈出toast詢問是否接收,若選擇接收則與服務(wù)端建立連接,由服務(wù)端將發(fā)送方發(fā)的文件轉(zhuǎn)發(fā)給接收方。if(info[2].equals(FILE))//判斷是否傳送的是文件如果是文件則建立連接new ()//建立連接..setItems(items, new () {public void onClick(DialogInterface dialog, int item) {//在彈出的toast上添加監(jiān)聽器switch(item){case 0:(info[3], info[0], ())。//文件存放路徑。第5章 結(jié)論與展望經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),以及對(duì)手機(jī)通信控制軟件的編寫使我對(duì)Android這門語言有了更深的體會(huì)。本次軟件開發(fā)主要實(shí)現(xiàn)了聊天,文件傳輸,遙控電腦,無線鼠標(biāo)四個(gè)模塊,各模塊間層次分明,布局合理,能滿足用戶的一般需求。本次軟件開發(fā)用到的主要工具是Eclipse。在編程過程中有如下心得體會(huì):剛開始接觸Android感覺到它很有意思,在界面開發(fā)上和web也可以形成了相通的架構(gòu),更加方便,視覺上也是非常的酷,在前期我通過的大量的Android SDK開發(fā)范例大全中的例子以及Android提供的APIDEMOS進(jìn)行學(xué)習(xí),盡管例子之間的連接比較零散,不過通過這些例子的學(xué)習(xí)我可以學(xué)習(xí)到了很多和以前Java上相通的思想。通過半個(gè)學(xué)期的Android學(xué)習(xí),基本掌握了Android應(yīng)用程序開發(fā)的一般流程。對(duì)常用控件基本掌握其用法,對(duì)其事件的監(jiān)聽方法也基本掌握。學(xué)習(xí)Android不僅是對(duì)前沿開發(fā)技術(shù)的了解,也是對(duì)編程知識(shí)的一次提升。通過學(xué)習(xí)Android的控件、布局、Activity、Service等一系列基礎(chǔ)知識(shí),對(duì)整個(gè)Android的開發(fā)有了大致的了解。例如: 要的布局(或者控件) ,在學(xué)習(xí)界面中,我發(fā)現(xiàn)Android為我們提供了很好的類似反射機(jī)制,通過Layout文件夾下的配置文件,可以快速的形成界面,在配置文件可以設(shè)置屬性或者樣式都是很快捷方便。對(duì)比較特殊的界面也可以通過處理嵌入到指定的界面,同樣你可以通過Java代碼直接創(chuàng)建View進(jìn)行添加,不過這種方式比較復(fù)雜。對(duì)一些點(diǎn)擊、選中、按鍵等處理的事件,界面之間的 跳轉(zhuǎn)Intent管理,通過Bundle對(duì)數(shù)據(jù)在界面之間進(jìn)行傳輸。在手機(jī)交互式通信服務(wù)中,學(xué)習(xí)了Android手機(jī)之間進(jìn)行短信發(fā)送、廣播、對(duì)廣播的監(jiān)聽、服務(wù)等,在Service類中沒有context,可以通過Handler來每秒反復(fù)運(yùn)行,自動(dòng)送出系統(tǒng)廣播信息,同時(shí)在這里我們也知道可以設(shè)計(jì)一個(gè)常用的變量類,設(shè)計(jì)一個(gè)當(dāng)前的CurrentActivity這個(gè)變量進(jìn)行控制,進(jìn)行處理。在Android編程過程中鞏固熟悉了Java的編程。由于Android應(yīng)用程序的開發(fā)離不開Java的支持,所以基礎(chǔ)的Java知識(shí)是必須的。Android系統(tǒng)是基于Linux的手機(jī)操作系統(tǒng)平臺(tái),要深入系統(tǒng)的學(xué)習(xí)Android,不僅僅是有Java和Android應(yīng)用開發(fā),必須要具備Linux,C/C++高級(jí)編程才能深入的涉及Android Framework和Android內(nèi)核開發(fā)。成為Android開發(fā)的高素質(zhì)人才。所以,在后續(xù)對(duì)Android的學(xué)習(xí)中可能會(huì)看一些較底層的書籍。要想開發(fā)一些好的應(yīng)用程序,還需要更多的知識(shí)支持。在做實(shí)習(xí)最后的項(xiàng)目時(shí),遇到了很多平時(shí)沒有遇到或者沒有特別關(guān)注的問題,如常見的Activity忘記注冊(cè),對(duì)SD卡存取需要權(quán)限,在寫SQL語句時(shí)細(xì)微的錯(cuò)誤就可能導(dǎo)致程序運(yùn)行錯(cuò)誤。這些問題只有自己在實(shí)際開發(fā)中才能體會(huì)到并且解決,并且在解決后可以長(zhǎng)時(shí)間的記住。通過Android的學(xué)習(xí),在大四畢業(yè)前,又掌握了一項(xiàng)新的前沿的開發(fā)技能,也有了更多的發(fā)展方向,這在以后的找工作的過程中無疑為我們?cè)黾恿隧来a,也可以成為我們的一項(xiàng)興趣愛好,可以根據(jù)我們自己的需要設(shè)計(jì)一些小的程序。大部分預(yù)想的功能都已經(jīng)實(shí)現(xiàn),甚至有意外地收獲,實(shí)現(xiàn)了無線鼠標(biāo)。但遠(yuǎn)程桌面的功能暫時(shí)還沒有實(shí)現(xiàn),在沒有連接服務(wù)器的時(shí)候進(jìn)行相關(guān)操作容易使系統(tǒng)奔潰??傊?,我獲得了很多東西,提高了自己的編程技巧和編程方法,并且認(rèn)識(shí)了Android應(yīng)用程序的開發(fā),以及加深了對(duì)Java的認(rèn)識(shí)。參考文獻(xiàn)[1] [D]. 武漢: 武漢理工大學(xué),2010.[2] [M]. 北京: 機(jī)械工業(yè)出版社,.[3] Joshua Bloch. Effective Java: Second Edition[M]. AddisonWesley,2008.[4] Android智能手機(jī)平臺(tái)的研究與應(yīng)用[D]. 安徽: 安徽大學(xué),2011.[5] Conder S,Darcey 移動(dòng)應(yīng)用開發(fā)[M]. 北京: 人民郵電出版社,2010. [6] Bruce Eckel. Thinking in Java[M]. Prentice Hall PTR,2002.[7] Android[M]. 北京: 人民郵電出版社,2009081.[8] 孟索林, Android研發(fā)入門指南[M]. 北京: 北京郵電出版社,2009.[9] Joshua Bloch. Effective Java: Second Edition[M]. Addison
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1