• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Eclipse+Android SDK的多功能記事本設(shè)計(jì)

      2023-12-23 01:32:44李志偉
      無(wú)線互聯(lián)科技 2023年19期
      關(guān)鍵詞:記事本記事關(guān)鍵字

      李志偉

      (蘇州高等職業(yè)技術(shù)學(xué)校,江蘇 蘇州 215000)

      0 引言

      在日常學(xué)習(xí)和工作中,人們經(jīng)常需要快速、高效地記錄許多信息。然而,傳統(tǒng)的記錄方式已經(jīng)不能滿(mǎn)足這種需求。研究和開(kāi)發(fā)一種具有文字記錄、拾音功能、文件分享等功能的電子記事本,顯得十分有意義[1]。2020年,葉從玲[2]使用了Android自帶的SQlite數(shù)據(jù)庫(kù),提高了記事本開(kāi)發(fā)的效率。2021年,王杰等[3]使用Eclipse開(kāi)發(fā)工具實(shí)現(xiàn)了一種云記事本設(shè)計(jì),具有隨時(shí)記錄、讀取的特點(diǎn)。2022年,連壯[4]使用Java語(yǔ)言實(shí)現(xiàn)了記事本啟動(dòng)界面的動(dòng)畫(huà)設(shè)計(jì),用戶(hù)體驗(yàn)性較好。多數(shù)記事本實(shí)現(xiàn)了增、刪、改、查,以及信息檢索等基本功能。缺少用戶(hù)身份驗(yàn)證的記事本,存在一定的安全隱患。本文使用Eclipse開(kāi)發(fā)工具和Android的SDK,開(kāi)發(fā)了具有注冊(cè)、登錄功能的多功能記事本。合法用戶(hù)可實(shí)現(xiàn)編輯記事、查找、分享等操作;能有效防止非法用戶(hù)查看記錄的信息,具有聯(lián)網(wǎng)、丟失找回、編輯快捷等特點(diǎn)。

      1 需求分析及數(shù)據(jù)庫(kù)設(shè)計(jì)

      需要實(shí)現(xiàn)的功能主要有:(1)用戶(hù)的注冊(cè)和登錄;(2)文本記事基本的操作,如增、刪、改、查;(3)共享功能,將記錄的信息以短信或微信、QQ、郵件的方式共享給聯(lián)系人。

      設(shè)計(jì)開(kāi)發(fā)時(shí)應(yīng)當(dāng)考到以下內(nèi)容:(1)記事便簽加載時(shí),應(yīng)減少內(nèi)存消耗,注意內(nèi)存的釋放;(2)加載音頻和視頻文件時(shí),除了保證播放的流暢,還應(yīng)保證音質(zhì)、編輯的質(zhì)量問(wèn)題;(3)從技術(shù)可行性上分析,軟件的配置環(huán)境應(yīng)當(dāng)滿(mǎn)足開(kāi)發(fā)者需求,所開(kāi)發(fā)的應(yīng)用能讓大眾所接受。另外,記事本的設(shè)計(jì)應(yīng)遵循簡(jiǎn)單、使用方便的原則,設(shè)計(jì)不需要太復(fù)雜。

      數(shù)據(jù)庫(kù)表的設(shè)計(jì)主要有兩個(gè),用于文本記事的表和關(guān)于用戶(hù)的表,如表1—2所示。

      表1 文本記事表

      2 多功能記事本詳細(xì)設(shè)計(jì)

      多功能記事本除了具有圖標(biāo)設(shè)計(jì)的Logo外,還包括了主界面、文本記事、便簽記事、編輯記事、網(wǎng)絡(luò)分享、記事模塊彈窗等模塊的設(shè)計(jì)。

      2.1 主界面設(shè)計(jì)

      主界面中的文本記事頁(yè)面,包含了3個(gè)部分:第一部分是最上面一行的“標(biāo)題欄”,右邊有兩個(gè)按鈕,分別有兩個(gè)不同功能。“+”所代表的是添加記事功能模塊,點(diǎn)擊之后可以任意添加一種記事。點(diǎn)擊“搜索”按鈕,可將當(dāng)前Activity跳轉(zhuǎn)到搜索界面,輸入關(guān)鍵字則可查找出所有標(biāo)題帶關(guān)鍵字的記事,并且能查看記事內(nèi)容。第二部分的“模塊向?qū)А睓?點(diǎn)擊即可跳轉(zhuǎn)到相應(yīng)模塊界面。考慮到操作的簡(jiǎn)捷性,設(shè)計(jì)了可左右滑動(dòng),實(shí)現(xiàn)界面切換的功能,向左滑動(dòng)屏幕則可跳轉(zhuǎn)到上一個(gè)Activity,即上一個(gè)模塊,向右滑動(dòng)則跳轉(zhuǎn)到下一個(gè)模塊界面。在布局代碼中,實(shí)現(xiàn)的關(guān)鍵組件為ViewPager,用它可以實(shí)現(xiàn)界面導(dǎo)航和屏幕切換。

      2.2 文本記事模塊

      保持記事頁(yè)面的“標(biāo)題欄”和“模塊向?qū)А辈蛔?增添需要展示的文本記事內(nèi)容。操作時(shí),可通過(guò)單擊或雙擊每一項(xiàng)內(nèi)容來(lái)實(shí)現(xiàn)。例如,可實(shí)現(xiàn)編輯、修改、保存、查看、刪除等功能。設(shè)計(jì)時(shí),為了使界面更加柔和,可通過(guò)將界面整體下拉或滾動(dòng),選擇將展示內(nèi)容的滾動(dòng)條隱藏的方式。記事模塊保持了界面的統(tǒng)一風(fēng)格,更貼近Android軟件的UI設(shè)計(jì)?!罢故緝?nèi)容”部分的核心代碼,主要是通過(guò)重寫(xiě)Android提供的Adapter適配器類(lèi)中的 getView()方法來(lái)實(shí)現(xiàn),主要功能就是將數(shù)據(jù)轉(zhuǎn)換為視圖,以便在UI布局中顯示。

      2.3 便簽記事模塊

      此部分的“標(biāo)題欄”和“模塊向?qū)А辈季峙c文本記事模塊中的設(shè)計(jì)一樣。但是當(dāng)用戶(hù)所添加的便簽記事內(nèi)容過(guò)多,需要對(duì)這些便簽進(jìn)行管理、分類(lèi)時(shí),便簽記事模塊的功能優(yōu)勢(shì)就顯現(xiàn)出來(lái)了。點(diǎn)擊功能按鈕,可以看到用戶(hù)的所有便簽記事。設(shè)計(jì)時(shí)需注意,若設(shè)計(jì)的便簽過(guò)大,內(nèi)存消耗過(guò)多,會(huì)導(dǎo)致此模塊功能崩潰,程序無(wú)法正常運(yùn)行。比如使用了setImageBitmap()方法或setImageResource()來(lái)設(shè)置一張大圖,在完成decode后,最終仍要調(diào)用Java層的createBitmap()方法來(lái)完成,這樣就會(huì)消耗掉更多的內(nèi)存資源。我們可以通過(guò)使用Android自帶的、已封裝好了方法,來(lái)解決內(nèi)存占用過(guò)大的問(wèn)題。比如,使用BitmapFactory.decodeStream()方法,創(chuàng)建出一個(gè)Bitmap,再將其設(shè)為ImageView的source,加載顯示即可。這是因?yàn)閐ecodeStream最大的優(yōu)勢(shì)是直接調(diào)用了nativeDecodeAsset()方法來(lái)完成decode,無(wú)需再使用Java層的createBitmap。便簽記事的分類(lèi)功能是通過(guò)Android提供的GridView控件來(lái)實(shí)現(xiàn)的。

      2.4 編輯記事模塊

      該模塊在設(shè)計(jì)時(shí),選擇系統(tǒng)自帶的Media Play類(lèi),即可實(shí)現(xiàn)對(duì)音頻、視頻的加載、插入、播放等操作。調(diào)用線程錄制,可減少硬件原因?qū)е碌臄?shù)據(jù)丟失問(wèn)題。將反應(yīng)慢的原始按鈕樣式,替代為成現(xiàn)代的、反應(yīng)靈敏的話(huà)筒便簽??紤]到安全性問(wèn)題,需要重寫(xiě)按鈕對(duì)應(yīng)的方法來(lái)處理這個(gè)過(guò)程。為了保證編輯的質(zhì)量,減少軟件卡頓,可通過(guò)線程來(lái)實(shí)現(xiàn)。部分核心代碼如下:

      mydata=new MyDataBase(getContext(),"mydata");//將生成新的編輯文件

      dao=new DataBaseDAO(mydata);//實(shí)例化數(shù)據(jù)庫(kù)連接類(lèi)

      mHandler=new MyHandler();//用線程

      dialog_view.setImageResource(res[msg.what]);//根據(jù)聲音強(qiáng)弱改變便簽,從而達(dá)到看起來(lái)在說(shuō)話(huà)的效果

      SetRecorderFile();//創(chuàng)建音頻文件

      recorder=new MediaRecorder();//實(shí)例化Android多媒體類(lèi)

      recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //設(shè)置音頻格式

      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//設(shè)置輸出格式

      recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//設(shè)置解碼 先設(shè)置前面的屬性

      2.5 網(wǎng)絡(luò)分享模塊

      分享功能設(shè)計(jì)的難點(diǎn)在于,關(guān)鍵字高亮的設(shè)置問(wèn)題。通過(guò)使用Google官方提供的SpannableString Builder類(lèi)中的setSpan()方法,來(lái)處理高亮問(wèn)題。該方法對(duì)原本的字符串做出處理處理后,亮出關(guān)鍵字,執(zhí)行Textview.setText(result)方法,達(dá)到實(shí)現(xiàn)高亮效果。共享功能對(duì)數(shù)據(jù)的處理流程是,首先查詢(xún)出數(shù)據(jù)庫(kù)的所有數(shù)據(jù),對(duì)于每類(lèi)數(shù)據(jù),保存在list集合中,隨后對(duì)list集合進(jìn)行遍歷,remove掉所有包含關(guān)鍵字的項(xiàng),對(duì)剩下的數(shù)據(jù)通過(guò)Adapter適配器選擇性傳到活動(dòng)界面顯示。對(duì)于每類(lèi)數(shù)據(jù)都做這種處理,即可共享出所有符合條件的數(shù)據(jù)。部分關(guān)鍵代碼如下:

      private void filter(){//根據(jù)關(guān)鍵字 數(shù)據(jù)處理函數(shù)

      if(list.size()>0){//list存儲(chǔ)數(shù)據(jù)庫(kù)取出來(lái)的所有數(shù)據(jù)

      for(int i=0;i mp=list.get(i);

      //去除不包含 關(guān)鍵字的數(shù)據(jù),words表示關(guān)鍵字內(nèi)容

      if("".equals(words)∣∣mp.get("title").indexOf(words)==-1){list.remove(i);i--;}}}

      if(list!=null&&list.size()>0){ option.setvisible(true);}//如果最后有數(shù)據(jù),則將相應(yīng)模塊設(shè)為可見(jiàn)狀態(tài)

      else{ option.setvisible(false);}}//如果沒(méi)有數(shù)據(jù),則相應(yīng)模塊設(shè)置為不可見(jiàn)狀態(tài)

      2.6 記事彈窗模塊

      長(zhǎng)按每一項(xiàng)功能模塊,都會(huì)彈出相應(yīng)的操作列表。這些彈出框就是所有記事彈框的功能。目前,彈框消失是通過(guò)用戶(hù)點(diǎn)擊返回鍵或者取消鍵,或者在彈出框之外的任意處點(diǎn)擊后,才會(huì)消失,不夠簡(jiǎn)便。為了實(shí)現(xiàn)操作簡(jiǎn)便的效果,可將其設(shè)定為,只有點(diǎn)擊取消按鈕才會(huì)消失,否則不做任何操作。實(shí)現(xiàn)彈框的功能代碼,主要是長(zhǎng)按操作,觸發(fā)事件處理機(jī)制,調(diào)用接口響應(yīng)。部分核心實(shí)現(xiàn)代碼如下:

      //長(zhǎng)按之后彈出列表刪除、修改標(biāo)題、更新內(nèi)容、共享列表

      AlertDialog.Builder builder=new AlertDialog.Builder(mContext);//彈出框

      builder.setCancelable(false);//彈出框設(shè)為不可取消

      option.delete(dates);//調(diào)用接口實(shí)現(xiàn)刪除操作

      option.update_note(dates);//調(diào)用接口實(shí)現(xiàn)更新操作

      option.update_context(dates);//調(diào)用接口實(shí)現(xiàn)更新操作

      option.send(dates,title);//調(diào)用接口實(shí)現(xiàn)共享操作

      builder.setNegativeButton(“取消”,new DialogInterface.OnClickListener() {//點(diǎn)擊取消按鈕,關(guān)閉彈出框

      public void onClick(DialogInterface dialog,int which){dialog.cancel();//關(guān)閉彈出框

      3 系統(tǒng)測(cè)試

      任何一款設(shè)計(jì)軟件,在發(fā)布、使用前必須進(jìn)行測(cè)試。測(cè)試主要是查看軟件中數(shù)據(jù)的準(zhǔn)確性,能否滿(mǎn)足需求,各功能模塊的操作是否正常,以及還有哪些地方需要改進(jìn)[5]。通常使用白盒測(cè)試技術(shù)和黑盒測(cè)試技術(shù)來(lái)對(duì)軟件進(jìn)行測(cè)試。前者是在了解系統(tǒng)內(nèi)部工作流程的前提下,可以根據(jù)需求規(guī)范驗(yàn)證系統(tǒng)內(nèi)部操作是否能夠正常運(yùn)行的測(cè)試;而黑盒測(cè)試指的是,倘若知道了這個(gè)系統(tǒng)的全部功能,可以進(jìn)行測(cè)試、檢測(cè)系統(tǒng)中的每一個(gè)功能是否滿(mǎn)足正常使用。一般的測(cè)試用例分為輸入、行為和希望結(jié)果3個(gè)部分。但是優(yōu)秀的測(cè)試用例還需要從正確性、完整性、輸入具體內(nèi)容、用詞無(wú)歧義、用例細(xì)化、判斷點(diǎn)無(wú)歧義,以及合理區(qū)分優(yōu)先級(jí)等幾個(gè)方面考慮。在對(duì)多功能記事本應(yīng)用進(jìn)行測(cè)試時(shí),需考慮到登錄的權(quán)限進(jìn)行測(cè)試,如用戶(hù)登錄模塊測(cè)試、新增標(biāo)簽?zāi)K測(cè)試、刪除分類(lèi)測(cè)試以及彈窗模塊測(cè)試、分享模塊測(cè)試。對(duì)測(cè)試中發(fā)現(xiàn)的錯(cuò)誤及時(shí)修改處理,保證系統(tǒng)準(zhǔn)確無(wú)誤地供給用戶(hù)使用。

      4 結(jié)語(yǔ)

      本文基于Eclipse+Android SDK開(kāi)發(fā)設(shè)計(jì)了一款多功能記事本。完成了需求分析與數(shù)據(jù)庫(kù)表的設(shè)計(jì);實(shí)現(xiàn)了多功能記事本的主界面設(shè)計(jì)、文本記事模塊設(shè)計(jì)、便簽記事與編輯記事模塊設(shè)計(jì),以及網(wǎng)絡(luò)分享模塊的設(shè)計(jì);在登錄、修改密碼以及分類(lèi)刪除功能性測(cè)試方面,表明了設(shè)計(jì)的有效性。此類(lèi)多功能的記事本具有很強(qiáng)的實(shí)用性,快捷、方便的記事特點(diǎn),更有利于提高信息記錄的效率。

      猜你喜歡
      記事本記事關(guān)鍵字
      《安徽記事》
      做個(gè)樹(shù)懶記事本
      履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤(pán)點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
      記事中的“情節(jié)”
      小狗記事本
      成功避開(kāi)“關(guān)鍵字”
      動(dòng)物園
      土撥鼠的記事本
      記事
      Why Men Never Remember Anything
      迁西县| 苗栗市| 惠州市| 嘉义市| 讷河市| 宣恩县| 鄂托克旗| 中牟县| 德江县| 房山区| 来凤县| 东平县| 垣曲县| 宜春市| 泸溪县| 巴楚县| 安义县| 鄂尔多斯市| 保康县| 白朗县| 油尖旺区| 普洱| 香港 | 湘乡市| 苏州市| 黑山县| 南阳市| 利辛县| 浦东新区| 辽中县| 和硕县| 石屏县| 汉源县| 剑河县| 新化县| 商丘市| 句容市| 沁水县| 日喀则市| 京山县| 定襄县|