目錄
一、測試環境說明
二、項目簡介
三、項目演示
四、部設計詳情(部分)
添加頁面
五、項目源碼?
一、測試環境說明
電腦環境
Windows 11
編寫語言
JAVA
開發軟件
Android Studio ?(2020)
開發軟件只要大于等于測試版本即可(近幾年官網直接下載也可以),若是版本低于測試版本請自行測試。項目需要根據你的軟件自行適配
二、項目簡介
該項目簡介來自網絡,具體內容需要自行測試
麻雀筆記是一款基于Android平臺的輕量級筆記應用,采用Java語言開發,使用Android Studio作為開發工具。該應用通過簡潔直觀的界面設計,幫助用戶高效管理碎片化信息,支持便簽、鏈接、位置等多種內容類型。
應用采用了ButterKnife、SQLite+OrmLite、Glide等主流技術框架,實現了視圖綁定、數據存儲和圖片加載等功能。核心功能包括筆記的增刪改查、分類管理、置頂操作,以及用戶登錄注冊和個人信息管理。
系統架構上結合了Fragment+ViewPager實現多頁面切換,使用DrawerLayout+NavigationView構建側滑菜單,并通過RecyclerView和SwipeRefreshLayout實現流暢的列表展示和下拉刷新。這些技術選擇既保證了功能完整性,又提升了用戶體驗。
安全方面實現了用戶認證、密碼加密存儲和自動登錄等功能,通過SharedPreferences進行本地數據持久化。界面設計遵循Material Design規范,采用TextInputLayout、Toolbar等現代化控件,使交互更加自然友好。
該應用特別適合快節奏生活中的信息管理需求,通過置頂功能和分類體系幫助用戶區分優先級,內置的日期計算等實用工具進一步提升了使用效率。整體設計體現了"麻雀雖小,五臟俱全"的開發理念。該項目由編程樂學團隊介入,優化布局完善功能
三、項目演示
網絡資源模板--基于Android studio 麻雀筆記App
四、部設計詳情(部分)
添加頁面
1. 頁面的結構
該頁面采用雙層ConstraintLayout嵌套結構,上層為固定高度的ViewPager顯示區域,下層為功能操作區。操作區采用網格布局,包含8個功能圖標及其對應文字標簽,底部設有重置和保存按鈕。
整體采用水平垂直Guideline進行比例分割,確保各元素在不同屏幕尺寸下保持相對位置。功能圖標按2行4列矩陣排列,每個圖標下方配有彩色文字說明,形成清晰的視覺分區。
背景使用統一色調,通過顏色對比突出可操作元素。
2. 使用到的技術
頁面基于AndroidX組件庫開發,核心采用ConstraintLayout實現復雜響應式布局,結合Guideline進行百分比定位。
使用自定義NoScrollViewPager實現多類型輸入界面的滑動切換,配合ButterKnife進行視圖綁定。數據層通過NoteDao操作SQLite數據庫,采用SharedPreferenceUtil管理用戶偏好。
日期處理使用SimpleDateFormat轉換時間格式,并實現日期差計算算法。頁面通過動態加載不同布局文件實現多類型輸入模板,運用資源索引映射對應圖標。
3. 頁面詳細介紹
這是便簽應用的添加功能頁,支持8種數據類型錄入。頂部區域動態顯示不同輸入模板,包括便簽、鏈接、位置等表單。
底部導航區通過圖標切換輸入類型,每種類型對應不同表單結構和圖標顏色。保存時自動記錄用戶ID和創建時間,對日期類數據會智能計算天數差。
采用所見即所得設計,重置按鈕可清空當前表單。數據存儲時自動關聯類型圖標,通過封裝方法統一處理不同表單的數據提取和清空操作,保證業務邏輯與界面解耦。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/background"tools:context=".fragment.AddFragment"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout"android:layout_width="0dp"android:layout_height="200dp"android:background="@color/background"app:layout_constraintBottom_toTopOf="@+id/guideline29"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><com.example.sparrownotes.util.NoScrollViewPagerandroid:id="@+id/view_pager_add"android:layout_width="match_parent"android:layout_height="0dp"android:background="@color/background"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout4"android:layout_width="match_parent"android:layout_height="0dp"android:background="@color/dock"android:paddingBottom="5dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/guideline29"app:layout_constraintVertical_bias="1.0"><TextViewandroid:id="@+id/text_reset"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/reset"android:textColor="@color/grey"android:textSize="20sp"android:textStyle="bold"app:layout_constraintBottom_toTopOf="@+id/guideline24"app:layout_constraintEnd_toStartOf="@+id/guideline18"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/text_save"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/save"android:textColor="@color/colorPrimaryDark"android:textSize="20sp"android:textStyle="bold"app:layout_constraintBottom_toTopOf="@+id/guideline24"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="@+id/guideline23"app:layout_constraintTop_toTopOf="parent" /><ImageViewandroid:id="@+id/img_account"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_account"app:layout_constraintBottom_toTopOf="@+id/guideline27"app:layout_constraintEnd_toStartOf="@+id/guideline23"app:layout_constraintStart_toStartOf="@+id/guideline19"app:layout_constraintTop_toTopOf="@+id/guideline28" /><ImageViewandroid:id="@+id/img_date"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_date"app:layout_constraintBottom_toTopOf="@+id/guideline27"app:layout_constraintEnd_toStartOf="@+id/guideline18"app:layout_constraintHorizontal_bias="0.0"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/guideline28"app:layout_constraintVertical_bias="1.0" /><TextViewandroid:id="@+id/text_note"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/note"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toTopOf="@+id/guideline25"app:layout_constraintEnd_toStartOf="@+id/guideline18"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/guideline26" /><TextViewandroid:id="@+id/text_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/date"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toStartOf="@+id/guideline18"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/guideline27" /><TextViewandroid:id="@+id/text_link"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/link"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toTopOf="@+id/guideline25"app:layout_constraintEnd_toStartOf="@+id/guideline19"app:layout_constraintStart_toStartOf="@+id/guideline18"app:layout_constraintTop_toTopOf="@+id/guideline26" /><TextViewandroid:id="@+id/text_location"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/location"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toTopOf="@+id/guideline25"app:layout_constraintEnd_toStartOf="@+id/guideline23"app:layout_constraintStart_toStartOf="@+id/guideline19"app:layout_constraintTop_toTopOf="@+id/guideline26" /><TextViewandroid:id="@+id/text_mood"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/mood"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toStartOf="@+id/guideline19"app:layout_constraintStart_toStartOf="@+id/guideline18"app:layout_constraintTop_toTopOf="@+id/guideline27" /><TextViewandroid:id="@+id/text_account"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/account"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toStartOf="@+id/guideline23"app:layout_constraintStart_toStartOf="@+id/guideline19"app:layout_constraintTop_toBottomOf="@+id/img_account" /><TextViewandroid:id="@+id/text_question"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/question"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="@+id/guideline23"app:layout_constraintTop_toTopOf="@+id/guideline27" /><TextViewandroid:id="@+id/text_bill"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/bill"android:textColor="@color/colorAccent"android:textSize="@dimen/cate_text_size"app:layout_constraintBottom_toTopOf="@+id/guideline25"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="@+id/guideline23"app:layout_constraintTop_toTopOf="@+id/guideline26" /><ImageViewandroid:id="@+id/img_link"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_link"app:layout_constraintBottom_toTopOf="@+id/guideline26"app:layout_constraintEnd_toStartOf="@+id/guideline19"app:layout_constraintStart_toStartOf="@+id/guideline18"app:layout_constraintTop_toTopOf="@+id/guideline24" /><ImageViewandroid:id="@+id/img_bill"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_bill"app:layout_constraintBottom_toTopOf="@+id/guideline26"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="@+id/guideline23"app:layout_constraintTop_toTopOf="@+id/guideline24" /><ImageViewandroid:id="@+id/img_location"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_location"app:layout_constraintBottom_toTopOf="@+id/guideline26"app:layout_constraintEnd_toStartOf="@+id/guideline23"app:layout_constraintStart_toStartOf="@+id/guideline19"app:layout_constraintTop_toTopOf="@+id/guideline24" /><ImageViewandroid:id="@+id/img_mood"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_mood"app:layout_constraintBottom_toTopOf="@+id/guideline27"app:layout_constraintEnd_toStartOf="@+id/guideline19"app:layout_constraintStart_toStartOf="@+id/guideline18"app:layout_constraintTop_toTopOf="@+id/guideline28" /><ImageViewandroid:id="@+id/img_note"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_note"app:layout_constraintBottom_toTopOf="@+id/guideline26"app:layout_constraintEnd_toStartOf="@+id/guideline18"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/guideline24" /><ImageViewandroid:id="@+id/img_question"android:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/cate_question"app:layout_constraintBottom_toTopOf="@+id/guideline27"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="@+id/guideline23"app:layout_constraintTop_toTopOf="@+id/guideline28" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline18"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"app:layout_constraintGuide_percent="0.25" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline24"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.25" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline26"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.425" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline27"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.85" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline19"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"app:layout_constraintGuide_percent="0.5" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline23"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"app:layout_constraintGuide_percent="0.75" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline25"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.575" /><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline28"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.675" /></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.Guidelineandroid:id="@+id/guideline29"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.55" /></androidx.constraintlayout.widget.ConstraintLayout>
五、項目源碼?
👇👇👇👇👇快捷方式👇👇👇👇👇