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

正文內(nèi)容

基于android平臺(tái)的rss閱讀器的設(shè)計(jì)與開發(fā)-在線瀏覽

2025-03-05 12:59本頁面
  

【正文】 3所示:圖41 業(yè)務(wù)流程圖圖42 主界面用例圖圖43 新浪Rss用例圖(3)騰訊Rss功能該功能與新浪Rss相似,如圖44所示:圖44 騰訊Rss用用例圖(4)歷史記錄瀏覽功能記錄用戶瀏覽過的內(nèi)容,以方便用戶再次查看,這樣節(jié)省GPRS流量,減少用戶的損失;當(dāng)用戶不需要這些記錄的時(shí)候可以清除掉這些記錄。如圖46所示:(6)本地緩存在瀏覽新聞和文章的過程中會(huì)下載圖片和文字內(nèi)容,將這些內(nèi)容保存值本地,在下次瀏覽同樣的內(nèi)容的時(shí)候就不用再次鏈接網(wǎng)絡(luò),直接在本地讀取就可,節(jié)省用戶的GPRS流量;當(dāng)手機(jī)存儲(chǔ)空間不足時(shí)用戶可以選擇刪除這些本地緩存。手機(jī)軟件要有良好的用戶體驗(yàn),良好的用戶體驗(yàn)體現(xiàn)在以下幾個(gè)方面:(1)界面友好用戶界面要簡潔直觀,設(shè)計(jì)合理,方便用戶操作,讓用戶操作起來比較舒服,并且UI視覺效應(yīng)好。(3)無縫性一個(gè)常見的無縫問題就是一個(gè)應(yīng)用的后臺(tái)進(jìn)程(如service或broadcast receiver)對某事件作出響應(yīng)而彈出對話框,這看起來仿佛并無大礙,特別是當(dāng)你在模擬器上單獨(dú)地構(gòu)建和測試你的應(yīng)用時(shí)。這就會(huì)出現(xiàn)你的應(yīng)用會(huì)在活動(dòng)的應(yīng)用后面顯示對話框,或者從當(dāng)前應(yīng)用中獲得焦點(diǎn)并顯示對話框的情況,而管論當(dāng)時(shí)用戶正在做什么(如正在打電話等)。為了避免這些問題,你的應(yīng)用應(yīng)該利用適當(dāng)?shù)南到y(tǒng)資源——Notification類,來通知用戶。(1)Rss Feed的存儲(chǔ),主要是騰訊和新浪數(shù)據(jù)源的存儲(chǔ),(2)收藏夾內(nèi)容的管理,主要是對收藏內(nèi)容的添加和刪除操作。(4)記錄用戶瀏覽過的內(nèi)容,方便用戶再次查看Android安全中的一個(gè)重要的設(shè)計(jì)點(diǎn)是在默認(rèn)的情況下應(yīng)用沒有權(quán)限執(zhí)行對其他應(yīng)用程序,操作系統(tǒng)或用戶的有害操作。第五章 Android數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫文件的設(shè)計(jì)要根據(jù)不同的用途,使用要求等來決定數(shù)據(jù)整體組織形式等一些問題。較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并且可以再被一定范圍內(nèi)的各種用戶共享。 數(shù)據(jù)庫及字段屬性設(shè)計(jì)本項(xiàng)目中的數(shù)據(jù)庫設(shè)計(jì)比較簡單,主要涉及兩個(gè)表:mylove和history;Mylove主要是存儲(chǔ)收藏的內(nèi)容,history主要存儲(chǔ)歷史瀏覽記錄,這兩個(gè)表的字段一樣,下面介紹history的字段,如表51所示:字段說明:id 記錄的id號(hào),title 內(nèi)容的標(biāo)題,link 內(nèi)容的URL,body 內(nèi)容主體。這里將介紹如何進(jìn)行Android數(shù)據(jù)庫的連接,Android中自帶的SQLite數(shù)據(jù)庫是十分小型的數(shù)據(jù)庫,這樣正適合Android這種移動(dòng)平臺(tái)使用。()方法直接對數(shù)據(jù)庫進(jìn)行操作。Android提供了標(biāo)準(zhǔn)的數(shù)據(jù)庫創(chuàng)建方式,繼承SQLiteOpenHelper,實(shí)現(xiàn)onCreate和onUpgrade兩個(gè)方法,有個(gè)好處就是便于數(shù)據(jù)庫版本的升級,連接數(shù)據(jù)庫的算法如下: public RssDB(Context context) {//創(chuàng)建數(shù)據(jù)庫 super(context, DB_NAME, null, DB_VERTION)。 數(shù)據(jù)庫操作打開數(shù)據(jù)庫操作:db = ();this表示RSSDB執(zhí)行sql語句:(sql)。更新數(shù)據(jù):()查詢數(shù)據(jù):()。這些操作的具體使用方法可參照Android SDK。新浪具體的Rss站點(diǎn)的詳細(xì)信息可參考這個(gè)鏈接:,里面有詳細(xì)的分類和各分類的Rss地址。Rss有固定的格式,截取新浪新聞的新聞要聞的部分內(nèi)容:?xml version= encoding=utf8? ………. item title ![CDATA[[科技]中國互聯(lián)網(wǎng)5月批發(fā)IPO 富豪與泡沫齊飛(05/05 10:58)]] /title link:///link author/author guid:///guid category ![CDATA[]] /category pubDateThu, 5 May 2011 02:58:57 GMT/pubDate ments/ments description ![CDATA[  侯繼勇 北京報(bào)道5月4日晚,人人網(wǎng)在北京國貿(mào)三期地下一層中國大宴會(huì)廳舉行慶功宴?;顒?dòng)已經(jīng)格式化:有領(lǐng)導(dǎo)講話,有晚宴,有抽獎(jiǎng),最后是人人網(wǎng)創(chuàng)始人陳一舟的視頻連線――接受國內(nèi)媒體記者采訪,卻會(huì)回避所有尖銳....]] /description /item item title ![CDATA[[科技]福布斯:人人公司加入中國高價(jià)科技股俱樂部(05/05 10:56)]] /title link:///link author/author guid:///guid category ![CDATA[]] /category pubDateThu, 5 May 2011 02:56:22 GMT/pubDate ments/ments description ![CDATA[]] /description /item ………..如上,接下來對這些內(nèi)容進(jìn)行分析:?xml version= encoding=utf8?代表這個(gè)文件的數(shù)據(jù)格式,這一般分為utf8和gb2312;每條信息在item/item中包含,這里面有很多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的內(nèi)容有各自代表的信息:Title:代表標(biāo)題信息Link:代表這篇文章的鏈接地址Author:代表這篇文章的作者Guid:與link相似,代表這篇文章的鏈接Category:代表這篇文章所屬類型pubDate:代表這篇文章發(fā)布時(shí)間ments:代表這篇文章的評論description:代表這篇文章的簡述綜合以上信息,完成Rss閱讀不會(huì)有問題,收集新浪和騰訊的這些Rss站點(diǎn),記錄在一個(gè)XML文件中,用于程序的讀取和解析,本軟件收集的內(nèi)容及格式,以新浪為例,部分內(nèi)容如下:?xml version= encoding=utf8?news title=新聞中心 outline title=新聞要聞 xmlUrl= flag=sina_ddt encoding=utf8 / outline title=國內(nèi)要聞 xmlUrl= flag=sina_ddt encoding=utf8 / outline title=國際要聞 xmlUrl= flag=sina_ddt encoding=utf8 / outline title=社會(huì)新聞 xmlUrl= flag=sina_ddt encoding=utf8 / outline title=時(shí)政要聞 xmlUrl= flag=sina_ddt encoding=utf8 / ......其中title表示Rss的類型xmlUrl表示一個(gè)Rss地址連接encdoing表示Rss地址連接中的內(nèi)容的數(shù)據(jù)格式flag有特定的含義,根據(jù)Rss地址連接獲取到的每條信息都有一個(gè)對應(yīng)的連接,這個(gè)連接對應(yīng)的內(nèi)容用瀏覽器查看源文件,可以發(fā)現(xiàn)我們所需要的內(nèi)容一般在一塊特定的區(qū)域中,其他的信息我們都不需要,而且那些信息很浪費(fèi)流量,根據(jù)這塊特定的區(qū)域,找出起始位置和結(jié)束位置,注意,這個(gè)起始和結(jié)束的位置在這個(gè)連接的源文件中必須是唯一的,flag中的值就是起始和結(jié)束位置,這個(gè)值對應(yīng)該項(xiàng)目中res/values/;例如時(shí)政要聞對應(yīng)的flag是sina_ddt,sina_ddt表示的內(nèi)容是:array name=sina_ddt itemstring/sina_ddt_begin/item itemstring/sina_ddt_end/item/array根據(jù)sina_ddt這個(gè)值就可以在代碼中解析出起始位置和結(jié)束位置,然后根據(jù)這兩個(gè)位置就可以解析出我們需要的內(nèi)容。該軟件的主界面是一個(gè)Activity,Android工程在啟動(dòng)每一個(gè)Activity時(shí)都會(huì)首先執(zhí)行onCreate()方法,如下:public void onCreate(Bundle savedInstanceState) { (savedInstanceState)。該方法主要執(zhí)行界面的初始化操作,Activity有個(gè)設(shè)置布局的方法:setContentView(int id),參數(shù)為資源ID,該id在工程目錄res/layout下,主界面的布局文件為main_tabs,下面是該布局文件的結(jié)構(gòu):?xml version= encoding=utf8?LinearLayout ViewFlipper include / include/ include / include / /ViewFlipper/LinearLayout在線性布局LinearLayout中添加ViewFlipper,ViewFlipper可以用來指定FrameLayout內(nèi)多個(gè)View之間的切換效果,可以一次指定也可以每次切換的時(shí)候都指定單獨(dú)的效果。 isFlipping: 用來判斷View切換是否正在進(jìn)行 startFlipping:使用上面設(shè)置的時(shí)間間隔來開始切換所有的View,切換會(huì)循環(huán)進(jìn)行 這些組件都有很多屬性可以設(shè)置該組件的位置,大小,背景顏色等;如:orientation=”horizontal” :此線性布局的子部件水平對齊 Layout_height=”fill_parent” :布局的高度為填滿父布局 Layout_width=”wap_content” :布局的寬度由子部件的寬度決定在主界面中實(shí)現(xiàn)四個(gè)界面的切換,分別是我的收藏,騰訊Rss,新浪Rss和瀏覽記錄,這些文件的在工程的res/layout/下。ListView需要一個(gè)適配器,android自帶的一些適配器如SimplaAdapter顯示比較單一,所以本軟件中繼承BaseAdapter,通過對這個(gè)適配器的擴(kuò)展實(shí)現(xiàn)我們需要的效果,擴(kuò)展成一行能顯示多個(gè)內(nèi)容。ListView有一個(gè)監(jiān)聽器OnItemClickListner,實(shí)現(xiàn)里面的方法,就可以監(jiān)聽Touch事件,當(dāng)手指點(diǎn)擊到每一行時(shí),(int potion)該行信息,這樣就可以通過intent傳遞數(shù)據(jù)到其他的Activity。圖61 瀏覽記錄頁面圖 圖62我的收藏界面圖2. 騰訊Rss界面的實(shí)現(xiàn)這個(gè)界面為了更好的用戶體驗(yàn),使用了ExpandableListView,ExpandableListView是Android中的手風(fēng)琴,個(gè)人感覺效果相當(dāng)棒,它是一個(gè)垂直滾動(dòng)的顯示兩個(gè)級別列表項(xiàng)的視圖,如圖63所示,類似二級菜單,列表項(xiàng)來時(shí)ExpandableListAdapter;點(diǎn)擊組可以單獨(dú)展開。setSelectedChild(int groupPosition, int childPosition, boolean shouldExpandGroup) :設(shè)置選擇指定的子項(xiàng)。 圖63 騰訊Rss圖3. 新浪Rss界面的實(shí)現(xiàn) 新浪Rss界面 (GridView) 圖64 點(diǎn)擊新聞中心后(ListView) Rss界面跟其他的都不同,使用的是TabHost的組件,TabHost可是實(shí)現(xiàn)在不同一屏幕內(nèi)不同界面的切換。GridView也有一個(gè)監(jiān)聽器ONItemClickListener,實(shí)現(xiàn)后可以對GridView組件中的子項(xiàng)進(jìn)行監(jiān)聽。數(shù)據(jù)源來自本地xml文件的解析,將再后面介紹。TabWidget是用于切換第一個(gè)FrameLayout中的兩個(gè)組件,在這里我們不需要讓它顯示,設(shè)置它的屬性為不可見。 資源文件的解析 文件解析是本項(xiàng)目中的一個(gè)重點(diǎn),主要包括本地文件的解析和網(wǎng)絡(luò)文件的解析。網(wǎng)絡(luò)文件的解析主要是通過數(shù)據(jù)流來讀取資源,包括HTML文件的解析,XML文件的解析,圖片資源的獲取等。Pull讀到XML文件的聲明,返回?cái)?shù)字0,Pull讀到XML的結(jié)束,返回?cái)?shù)字1,Pull讀到XML的開始標(biāo)簽,返回?cái)?shù)字2,Pull讀到XML的結(jié)束標(biāo)簽,返回?cái)?shù)字3,Pull讀到XML的文本,返回?cái)?shù)字4,根據(jù)上面返回?cái)?shù)字來進(jìn)行判斷,當(dāng)讀取到的開始標(biāo)簽是outline時(shí),(int index)來獲取標(biāo)簽內(nèi)的值,(0)獲取的是title的值。在Android中,(int id)獲取name所對應(yīng)的值,并沒有提供根據(jù)字符串來獲取。這種動(dòng)態(tài)獲取類的信息,以及動(dòng)態(tài)調(diào)用對象的方法的功能來自于Java語言的反射(Reflection)機(jī)制。利用java的反射機(jī)制獲取到這個(gè)字符串對應(yīng)的整數(shù)型ID,核心算法如下:先初始化一個(gè)Object object = ,然后獲取這個(gè)object下的屬性,F(xiàn)ield field = (flag,這樣以flag命名的屬性就獲取到了,由于這個(gè)屬性的值是整數(shù)類型,(object)就可以獲取到屬性的值,根據(jù)這個(gè)值,我們就可以獲取到XML文件中的flag所對應(yīng)的起始位置和結(jié)束位置,通過上面的分析,將這些值封裝到一個(gè)List中,作為新浪Rss界面中GridView和ListView的數(shù)據(jù)源,這樣就可以在這些組件中顯示了。本項(xiàng)目與互聯(lián)網(wǎng)進(jìn)行交互,因此網(wǎng)絡(luò)文件的解析是十分重要的一部分。當(dāng)一個(gè)操作出發(fā)后,系統(tǒng)會(huì)有一個(gè)計(jì)時(shí)器,當(dāng)這個(gè)操作在5s內(nèi)沒有響應(yīng),就會(huì)彈出一個(gè)警告對話框:該程序無響應(yīng),然后該軟件就會(huì)直接退出,給用戶極不好的體驗(yàn)。在任務(wù)的執(zhí)行過程中,這些方法被自動(dòng)調(diào)用??梢栽谠摲椒ㄖ凶鲆恍?zhǔn)備工
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1