安卓期末大作業(yè)——貓咪社區(qū)(源碼+任務(wù)書)
隨著我國孤獨人口和丁克群體的增長,人們迫切需要一個事務(wù)來宣泄自己的感情,寵物就是一個最好的選擇。對于普通民眾,寵物的花銷相對較低,大部分人都足以供給,且隨著我國人口老齡化的加重(2020年中國65歲及以上人口已達(dá)到13.5%),結(jié)婚率的降低和離婚率的升高導(dǎo)致了我國新生兒出生比例越來越低,2020年僅8.5%左右。受此影響,越來越多的普通民眾選擇養(yǎng)育寵物來減少孤獨感,而寵物貓因其“宅家”的性格深受民眾的喜愛,預(yù)計未來市場發(fā)展前景廣闊。2021年中國主要寵物主年齡分布主要集中在90后-95后,其中就養(yǎng)育寵物貓的寵物主而言,也主要為為90后,2021年占比35%,同時80年代前的貓主人也有9%。
課題綜述
行業(yè)規(guī)模與增長:2020年我國寵物行業(yè)市場規(guī)模接近3000億元,受政策、經(jīng)濟、社會和技術(shù)因素驅(qū)動,以及疫情帶來的更多潛在養(yǎng)寵人群及情感消費,未來三年行業(yè)將繼續(xù)保持平穩(wěn)增長,復(fù)合增速預(yù)計14.2%,到2023年規(guī)模將達(dá)到4456億元。
寵物特征:寵物類型以犬貓為主,更多一線城市居民和90后因為身份和個性原因養(yǎng)水族或異寵,多類養(yǎng)寵成趨勢。
寵物主描?。盒聲r代已婚家庭進(jìn)階養(yǎng)寵主流人群,他們?yōu)閷櫸镔x予情感角色,追求健康、快樂養(yǎng)寵,同時顯現(xiàn)出智能養(yǎng)寵趨勢。疫情催生更多年輕人進(jìn)階貓主,新晉貓主精細(xì)化養(yǎng)寵理念更成熟。
寵物消費熱點:隨著精細(xì)化養(yǎng)寵趨勢的深入,寵物消費類目日漸豐富。天然糧、有機糧受青睞;寵物零食也為寵物主提供了更多選擇;用品方面安全性和設(shè)計便捷受關(guān)注,智能和顏值成趨勢。
行業(yè)趨勢展望:貓經(jīng)濟崛起,貓主消費增長態(tài)勢強勁;國貨品質(zhì)提升和養(yǎng)寵理性化趨勢將促進(jìn)國貨潮廣泛化;養(yǎng)寵下沉將成為寵物行業(yè)增量的新機會;寵物線上醫(yī)療模式將成為線下醫(yī)療的重要補充;寵物服務(wù)需求向多樣化發(fā)展;全渠道運營模式將成為商家未來發(fā)展擴大的戰(zhàn)略通道。
結(jié)合課上所學(xué)知識和貓寵行業(yè)背景,設(shè)計了這款貓咪社區(qū)APP。
完成思路與方法
3.1功能需求分析
此APP主要可以養(yǎng)貓愛好者的注冊登錄、帖子瀏覽和發(fā)帖評論功能
3.2?數(shù)據(jù)庫設(shè)計
sqlite是AndroID系統(tǒng)采用的一種開源的輕量級的關(guān)系型的數(shù)據(jù)庫,AndroID中允許每個應(yīng)用程序都擁有自己獨立的數(shù)據(jù)庫,每個應(yīng)用程序的數(shù)據(jù)庫的位置一般在/data/data/<package_name>/databases中。為了方便開發(fā)人員的使用,AndroiD的API對增刪查改實現(xiàn)了封裝,通過sqliteOpenHelper類可以方便的實現(xiàn)對數(shù)據(jù)庫的創(chuàng)建和管理操作。
貓咪社區(qū)帖子字段如表所示:
字段類型idInttitlestringcategorystringpricefloatphonestringdescriptionstringpicturebyte[]
3.3系統(tǒng)流程圖
3.4 UI設(shè)計
(1)注冊界面和登錄界面
(2)首頁、帖子詳情頁、發(fā)帖頁

個人中心

3.5關(guān)鍵技術(shù)和存在的問題
關(guān)鍵技術(shù)1:注冊非空驗證和保存用戶數(shù)據(jù)
if(CheckInput()) {
User user = new User();
user.setUsername(tvStuNumber.getText().toString());
user.setPassword(tvStuPwd.getText().toString());
UserDbHelper dbHelper = new UserDbHelper(getApplicationContext(),UserDbHelper.DB_NAME,null,1);
dbHelper.addUser(user);
Toast.makeText(RegisterActivity.this,”恭喜你注冊成功!”,Toast.LENGTH_SHORT).show();
//銷毀當(dāng)前界面
finish();
}
關(guān)鍵技術(shù)2:登錄驗證
//如果sqlite數(shù)據(jù)庫可以找到,則輸出登錄成功,并跳轉(zhuǎn)到主界面
if(user.getUsername().equals(EtStuNumber.getText().toString()) && user.getPassword().equals(EtStuPwd.getText().toString()) ) {
flag = true;
Toast.makeText(LoginActivity.this,”恭喜你登錄成功!”,Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
Bundle bundle = new Bundle();
username = EtStuNumber.getText().toString();
bundle.putString(“username”,username);
intent.putExtras(bundle);
startActivity(intent);
}
關(guān)鍵技術(shù)3:發(fā)帖圖片上傳
//把圖片先轉(zhuǎn)化成bitmap格式
BitmapDrawable drawable = (BitmapDrawable) ivPhoto.getDrawable();
Bitmap bitmap = drawable.getBitmap();
//二進(jìn)制數(shù)組輸出流
ByteArrayOutputStream byStream = new ByteArrayOutputStream();
//將圖片壓縮成質(zhì)量為100的PNG格式圖片
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byStream);
//把輸出流轉(zhuǎn)換為二進(jìn)制數(shù)組
byte[] byteArray = byStream.toByteArray();
commodity.setPicture(byteArray);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == 1) {
//從相冊返回的數(shù)據(jù)
if (data != null) {
//得到圖片的全路徑
Uri uri = data.getData();
ivPhoto.setImageURI(uri);
}
}
}
存在的問題:帖子描述文字太多的話會導(dǎo)致首頁排版混亂,需要列表項樣式進(jìn)行進(jìn)一步修正
4. 收獲總結(jié)
每次的項目都會出現(xiàn)一些的問題,但是都通過了百度或者問班上刻苦的同學(xué),還是能將問題解決。我常常和我們宿舍的同學(xué)交流安卓,我們相互彌補我們的不足,這樣我們就能在學(xué)習(xí)的路上越走越遠(yuǎn),在互相的幫助中,我們相互學(xué)習(xí)了一些不一樣的知識來增加專業(yè)知識的知識量。安卓這一科目對我們來說是非常重要的科目,在本學(xué)期的學(xué)科里面,安卓是最有代表性的科目,它是當(dāng)今我們生活中最重要的一樣?xùn)|西之一的手機上所使用的代碼,我們每天都要使用手機,而手機則需要使用代碼程序,所以通過這次的學(xué)習(xí),我對手機的開發(fā)又有了新的認(rèn)識與理解。
在安卓的開發(fā)中,首先學(xué)習(xí)了安卓的主資源布局控件,然后在學(xué)習(xí)到了java代碼所使用的邏輯知識。從開始的單用布局activity_main再到后面的MainActivity,學(xué)習(xí)到了許多知識,但是我的自學(xué)能力和自覺性還是不夠強,始終無法學(xué)習(xí)到非常精妙的程度,適配器也還是不夠熟練,在假期的時候,我希望我更能系統(tǒng)化的學(xué)習(xí)安卓這門課程!
源碼鏈接:https://yunjunet.cn/568099.html