@ -0,0 +1,15 @@
|
||||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/caches
|
||||
/.idea/libraries
|
||||
/.idea/modules.xml
|
||||
/.idea/workspace.xml
|
||||
/.idea/navEditor.xml
|
||||
/.idea/assetWizardSettings.xml
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
.cxx
|
||||
local.properties
|
@ -0,0 +1,3 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="11" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,407 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DBNavigator.Project.DatabaseFileManager">
|
||||
<open-files />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.ParserDiagnosticsManager">
|
||||
<diagnostics-history />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.Settings">
|
||||
<connections />
|
||||
<browser-settings>
|
||||
<general>
|
||||
<display-mode value="TABBED" />
|
||||
<navigation-history-size value="100" />
|
||||
<show-object-details value="false" />
|
||||
<enable-sticky-paths value="true" />
|
||||
</general>
|
||||
<filters>
|
||||
<object-type-filter>
|
||||
<object-type name="SCHEMA" enabled="true" />
|
||||
<object-type name="USER" enabled="true" />
|
||||
<object-type name="ROLE" enabled="true" />
|
||||
<object-type name="PRIVILEGE" enabled="true" />
|
||||
<object-type name="CHARSET" enabled="true" />
|
||||
<object-type name="TABLE" enabled="true" />
|
||||
<object-type name="VIEW" enabled="true" />
|
||||
<object-type name="MATERIALIZED_VIEW" enabled="true" />
|
||||
<object-type name="NESTED_TABLE" enabled="true" />
|
||||
<object-type name="COLUMN" enabled="true" />
|
||||
<object-type name="INDEX" enabled="true" />
|
||||
<object-type name="CONSTRAINT" enabled="true" />
|
||||
<object-type name="DATASET_TRIGGER" enabled="true" />
|
||||
<object-type name="DATABASE_TRIGGER" enabled="true" />
|
||||
<object-type name="SYNONYM" enabled="true" />
|
||||
<object-type name="SEQUENCE" enabled="true" />
|
||||
<object-type name="PROCEDURE" enabled="true" />
|
||||
<object-type name="FUNCTION" enabled="true" />
|
||||
<object-type name="PACKAGE" enabled="true" />
|
||||
<object-type name="TYPE" enabled="true" />
|
||||
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
|
||||
<object-type name="ARGUMENT" enabled="true" />
|
||||
<object-type name="DIMENSION" enabled="true" />
|
||||
<object-type name="CLUSTER" enabled="true" />
|
||||
<object-type name="DBLINK" enabled="true" />
|
||||
</object-type-filter>
|
||||
</filters>
|
||||
<sorting>
|
||||
<object-type name="COLUMN" sorting-type="NAME" />
|
||||
<object-type name="FUNCTION" sorting-type="NAME" />
|
||||
<object-type name="PROCEDURE" sorting-type="NAME" />
|
||||
<object-type name="ARGUMENT" sorting-type="POSITION" />
|
||||
<object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
|
||||
</sorting>
|
||||
<default-editors>
|
||||
<object-type name="VIEW" editor-type="SELECTION" />
|
||||
<object-type name="PACKAGE" editor-type="SELECTION" />
|
||||
<object-type name="TYPE" editor-type="SELECTION" />
|
||||
</default-editors>
|
||||
</browser-settings>
|
||||
<navigation-settings>
|
||||
<lookup-filters>
|
||||
<lookup-objects>
|
||||
<object-type name="SCHEMA" enabled="true" />
|
||||
<object-type name="USER" enabled="false" />
|
||||
<object-type name="ROLE" enabled="false" />
|
||||
<object-type name="PRIVILEGE" enabled="false" />
|
||||
<object-type name="CHARSET" enabled="false" />
|
||||
<object-type name="TABLE" enabled="true" />
|
||||
<object-type name="VIEW" enabled="true" />
|
||||
<object-type name="MATERIALIZED VIEW" enabled="true" />
|
||||
<object-type name="INDEX" enabled="true" />
|
||||
<object-type name="CONSTRAINT" enabled="true" />
|
||||
<object-type name="DATASET TRIGGER" enabled="true" />
|
||||
<object-type name="DATABASE TRIGGER" enabled="true" />
|
||||
<object-type name="SYNONYM" enabled="false" />
|
||||
<object-type name="SEQUENCE" enabled="true" />
|
||||
<object-type name="PROCEDURE" enabled="true" />
|
||||
<object-type name="FUNCTION" enabled="true" />
|
||||
<object-type name="PACKAGE" enabled="true" />
|
||||
<object-type name="TYPE" enabled="true" />
|
||||
<object-type name="DIMENSION" enabled="false" />
|
||||
<object-type name="CLUSTER" enabled="false" />
|
||||
<object-type name="DBLINK" enabled="true" />
|
||||
</lookup-objects>
|
||||
<force-database-load value="false" />
|
||||
<prompt-connection-selection value="true" />
|
||||
<prompt-schema-selection value="true" />
|
||||
</lookup-filters>
|
||||
</navigation-settings>
|
||||
<dataset-grid-settings>
|
||||
<general>
|
||||
<enable-zooming value="true" />
|
||||
<enable-column-tooltip value="true" />
|
||||
</general>
|
||||
<sorting>
|
||||
<nulls-first value="true" />
|
||||
<max-sorting-columns value="4" />
|
||||
</sorting>
|
||||
<audit-columns>
|
||||
<column-names value="" />
|
||||
<visible value="true" />
|
||||
<editable value="false" />
|
||||
</audit-columns>
|
||||
</dataset-grid-settings>
|
||||
<dataset-editor-settings>
|
||||
<text-editor-popup>
|
||||
<active value="false" />
|
||||
<active-if-empty value="false" />
|
||||
<data-length-threshold value="100" />
|
||||
<popup-delay value="1000" />
|
||||
</text-editor-popup>
|
||||
<values-actions-popup>
|
||||
<show-popup-button value="true" />
|
||||
<element-count-threshold value="1000" />
|
||||
<data-length-threshold value="250" />
|
||||
</values-actions-popup>
|
||||
<general>
|
||||
<fetch-block-size value="100" />
|
||||
<fetch-timeout value="30" />
|
||||
<trim-whitespaces value="true" />
|
||||
<convert-empty-strings-to-null value="true" />
|
||||
<select-content-on-cell-edit value="true" />
|
||||
<large-value-preview-active value="true" />
|
||||
</general>
|
||||
<filters>
|
||||
<prompt-filter-dialog value="true" />
|
||||
<default-filter-type value="BASIC" />
|
||||
</filters>
|
||||
<qualified-text-editor text-length-threshold="300">
|
||||
<content-types>
|
||||
<content-type name="Text" enabled="true" />
|
||||
<content-type name="Properties" enabled="true" />
|
||||
<content-type name="XML" enabled="true" />
|
||||
<content-type name="DTD" enabled="true" />
|
||||
<content-type name="HTML" enabled="true" />
|
||||
<content-type name="XHTML" enabled="true" />
|
||||
<content-type name="Java" enabled="true" />
|
||||
<content-type name="SQL" enabled="true" />
|
||||
<content-type name="PL/SQL" enabled="true" />
|
||||
<content-type name="JSON" enabled="true" />
|
||||
<content-type name="JSON5" enabled="true" />
|
||||
<content-type name="Groovy" enabled="true" />
|
||||
<content-type name="AIDL" enabled="true" />
|
||||
<content-type name="YAML" enabled="true" />
|
||||
<content-type name="Manifest" enabled="true" />
|
||||
</content-types>
|
||||
</qualified-text-editor>
|
||||
<record-navigation>
|
||||
<navigation-target value="VIEWER" />
|
||||
</record-navigation>
|
||||
</dataset-editor-settings>
|
||||
<code-editor-settings>
|
||||
<general>
|
||||
<show-object-navigation-gutter value="false" />
|
||||
<show-spec-declaration-navigation-gutter value="true" />
|
||||
<enable-spellchecking value="true" />
|
||||
<enable-reference-spellchecking value="false" />
|
||||
</general>
|
||||
<confirmations>
|
||||
<save-changes value="false" />
|
||||
<revert-changes value="true" />
|
||||
<exit-on-changes value="ASK" />
|
||||
</confirmations>
|
||||
</code-editor-settings>
|
||||
<code-completion-settings>
|
||||
<filters>
|
||||
<basic-filter>
|
||||
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="function" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
|
||||
<filter-element type="OBJECT" id="schema" selected="true" />
|
||||
<filter-element type="OBJECT" id="role" selected="true" />
|
||||
<filter-element type="OBJECT" id="user" selected="true" />
|
||||
<filter-element type="OBJECT" id="privilege" selected="true" />
|
||||
<user-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="false" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</user-schema>
|
||||
<public-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="false" />
|
||||
<filter-element type="OBJECT" id="view" selected="false" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="false" />
|
||||
<filter-element type="OBJECT" id="index" selected="false" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="false" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="false" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="false" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="false" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="false" />
|
||||
<filter-element type="OBJECT" id="function" selected="false" />
|
||||
<filter-element type="OBJECT" id="package" selected="false" />
|
||||
<filter-element type="OBJECT" id="type" selected="false" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="false" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="false" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="false" />
|
||||
</public-schema>
|
||||
<any-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</any-schema>
|
||||
</basic-filter>
|
||||
<extended-filter>
|
||||
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="function" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
|
||||
<filter-element type="OBJECT" id="schema" selected="true" />
|
||||
<filter-element type="OBJECT" id="user" selected="true" />
|
||||
<filter-element type="OBJECT" id="role" selected="true" />
|
||||
<filter-element type="OBJECT" id="privilege" selected="true" />
|
||||
<user-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</user-schema>
|
||||
<public-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</public-schema>
|
||||
<any-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</any-schema>
|
||||
</extended-filter>
|
||||
</filters>
|
||||
<sorting enabled="true">
|
||||
<sorting-element type="RESERVED_WORD" id="keyword" />
|
||||
<sorting-element type="RESERVED_WORD" id="datatype" />
|
||||
<sorting-element type="OBJECT" id="column" />
|
||||
<sorting-element type="OBJECT" id="table" />
|
||||
<sorting-element type="OBJECT" id="view" />
|
||||
<sorting-element type="OBJECT" id="materialized view" />
|
||||
<sorting-element type="OBJECT" id="index" />
|
||||
<sorting-element type="OBJECT" id="constraint" />
|
||||
<sorting-element type="OBJECT" id="trigger" />
|
||||
<sorting-element type="OBJECT" id="synonym" />
|
||||
<sorting-element type="OBJECT" id="sequence" />
|
||||
<sorting-element type="OBJECT" id="procedure" />
|
||||
<sorting-element type="OBJECT" id="function" />
|
||||
<sorting-element type="OBJECT" id="package" />
|
||||
<sorting-element type="OBJECT" id="type" />
|
||||
<sorting-element type="OBJECT" id="dimension" />
|
||||
<sorting-element type="OBJECT" id="cluster" />
|
||||
<sorting-element type="OBJECT" id="dblink" />
|
||||
<sorting-element type="OBJECT" id="schema" />
|
||||
<sorting-element type="OBJECT" id="role" />
|
||||
<sorting-element type="OBJECT" id="user" />
|
||||
<sorting-element type="RESERVED_WORD" id="function" />
|
||||
<sorting-element type="RESERVED_WORD" id="parameter" />
|
||||
</sorting>
|
||||
<format>
|
||||
<enforce-code-style-case value="true" />
|
||||
</format>
|
||||
</code-completion-settings>
|
||||
<execution-engine-settings>
|
||||
<statement-execution>
|
||||
<fetch-block-size value="100" />
|
||||
<execution-timeout value="20" />
|
||||
<debug-execution-timeout value="600" />
|
||||
<focus-result value="false" />
|
||||
<prompt-execution value="false" />
|
||||
</statement-execution>
|
||||
<script-execution>
|
||||
<command-line-interfaces />
|
||||
<execution-timeout value="300" />
|
||||
</script-execution>
|
||||
<method-execution>
|
||||
<execution-timeout value="30" />
|
||||
<debug-execution-timeout value="600" />
|
||||
<parameter-history-size value="10" />
|
||||
</method-execution>
|
||||
</execution-engine-settings>
|
||||
<operation-settings>
|
||||
<transactions>
|
||||
<uncommitted-changes>
|
||||
<on-project-close value="ASK" />
|
||||
<on-disconnect value="ASK" />
|
||||
<on-autocommit-toggle value="ASK" />
|
||||
</uncommitted-changes>
|
||||
<multiple-uncommitted-changes>
|
||||
<on-commit value="ASK" />
|
||||
<on-rollback value="ASK" />
|
||||
</multiple-uncommitted-changes>
|
||||
</transactions>
|
||||
<session-browser>
|
||||
<disconnect-session value="ASK" />
|
||||
<kill-session value="ASK" />
|
||||
<reload-on-filter-change value="false" />
|
||||
</session-browser>
|
||||
<compiler>
|
||||
<compile-type value="KEEP" />
|
||||
<compile-dependencies value="ASK" />
|
||||
<always-show-controls value="false" />
|
||||
</compiler>
|
||||
</operation-settings>
|
||||
<ddl-file-settings>
|
||||
<extensions>
|
||||
<mapping file-type-id="VIEW" extensions="vw" />
|
||||
<mapping file-type-id="TRIGGER" extensions="trg" />
|
||||
<mapping file-type-id="PROCEDURE" extensions="prc" />
|
||||
<mapping file-type-id="FUNCTION" extensions="fnc" />
|
||||
<mapping file-type-id="PACKAGE" extensions="pkg" />
|
||||
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
|
||||
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
|
||||
<mapping file-type-id="TYPE" extensions="tpe" />
|
||||
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
|
||||
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
|
||||
</extensions>
|
||||
<general>
|
||||
<lookup-ddl-files value="true" />
|
||||
<create-ddl-files value="false" />
|
||||
<synchronize-ddl-files value="true" />
|
||||
<use-qualified-names value="false" />
|
||||
<make-scripts-rerunnable value="true" />
|
||||
</general>
|
||||
</ddl-file-settings>
|
||||
<general-settings>
|
||||
<regional-settings>
|
||||
<date-format value="MEDIUM" />
|
||||
<number-format value="UNGROUPED" />
|
||||
<locale value="SYSTEM_DEFAULT" />
|
||||
<use-custom-formats value="false" />
|
||||
</regional-settings>
|
||||
<environment>
|
||||
<environment-types>
|
||||
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
|
||||
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
|
||||
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
|
||||
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
|
||||
</environment-types>
|
||||
<visibility-settings>
|
||||
<connection-tabs value="true" />
|
||||
<dialog-headers value="true" />
|
||||
<object-editor-tabs value="true" />
|
||||
<script-editor-tabs value="false" />
|
||||
<execution-result-tabs value="true" />
|
||||
</visibility-settings>
|
||||
</environment>
|
||||
</general-settings>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<targetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="C:\Users\LH\.android\avd\Pixel_3a_API_33_x86_64.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2025-04-20T13:01:29.217614900Z" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="GRADLE" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="17" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DesignSurface">
|
||||
<option name="filePathToZoomLevelMap">
|
||||
<map>
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/drawable/bg_boarder.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/activity_main.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/activity_story.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/add_memo_activity_layout.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_dashboard.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_detail.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_home.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_honor.xml" value="0.15" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_memo.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_mine.xml" value="0.25" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/fragment_notifications.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/honor_img.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/honor_item.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/item_listview.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/top_part_04.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/layout/top_part_2.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/menu/bottom_nav_menu.xml" value="0.1" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/menu/bottom_nav_menu_main.xml" value="0.3109375" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/menu/menu_sub.xml" value="0.3109375" />
|
||||
<entry key="..\:/Applacation/Android/RommteStory/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.2815" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/add_memo_activity_layout.xml" value="0.16847826086956522" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/fragment_detail.xml" value="0.15443840579710144" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/fragment_honor.xml" value="0.16847826086956522" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/fragment_memo.xml" value="0.16847826086956522" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/honor_img.xml" value="0.16847826086956522" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/honor_item.xml" value="0.16847826086956522" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/memo_item.xml" value="0.16847826086956522" />
|
||||
<entry key="..\:/Users/LH/Desktop/android/RommteStory/app/src/main/res/layout/top_part_2.xml" value="0.16847826086956522" />
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1 @@
|
||||
/build
|
@ -0,0 +1,58 @@
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk 32
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.lh.app"
|
||||
minSdk 21
|
||||
targetSdk 32
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
buildFeatures {
|
||||
viewBinding true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
||||
implementation 'com.google.android.material:material:1.4.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
|
||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
|
||||
implementation 'androidx.navigation:navigation-fragment:2.3.5'
|
||||
implementation 'androidx.navigation:navigation-ui:2.3.5'
|
||||
implementation 'com.google.android.gms:play-services-location:18.0.0'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
|
||||
//noinspection GradleCompatible
|
||||
implementation 'androidx.recyclerview:recyclerview:1.2.1'//添加RecycleView库依赖
|
||||
//图像类库
|
||||
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
|
||||
|
||||
implementation 'com.google.android.gms:play-services-location:21.0.1'
|
||||
//图片加载
|
||||
implementation 'com.github.bumptech.glide:glide:4.15.1' // 使用最新版本
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1'
|
||||
//高德地图
|
||||
implementation 'com.amap.api:3dmap-location-search:latest.integration'
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
@ -0,0 +1,26 @@
|
||||
package com.lh.app;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||
assertEquals("com.lh.app", appContext.getPackageName());
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.lh.app">
|
||||
<!--允许程序读写手机状态和身份-->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<!-- 获取手机外部存储读写权限 -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<!-- 手机照片访问权限 -->
|
||||
<uses-permission android:name="android.permission.CAMERA"/>
|
||||
|
||||
<!-- 地图权限 -->
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||
<!-- 定位权限 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
|
||||
<!-- 高德地图Key配置 -->
|
||||
<meta-data
|
||||
android:name="com.amap.api.v2.apikey"
|
||||
android:value="93c4ba27c64acc7adc4f22b3576a345f" />
|
||||
|
||||
<application
|
||||
android:name=".MyApplication"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:hardwareAccelerated="true"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/Theme.RommteStory">
|
||||
<activity
|
||||
android:name=".ui.memo.Story_activity"
|
||||
android:windowSoftInputMode="adjustPan"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.memo.AddMemo_activity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
After Width: | Height: | Size: 62 KiB |
@ -0,0 +1,53 @@
|
||||
package com.lh.app;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.res.Configuration;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Created by on .
|
||||
*/
|
||||
public class MyApplication extends Application {
|
||||
private static MyApplication mApp;
|
||||
//声明一个公共的信息映射对象,可当全局变量使用
|
||||
public HashMap<String, String> infoMap = new HashMap<>();
|
||||
public static RoommateDBHelper mHelper;
|
||||
//得到Application唯一实例
|
||||
public static MyApplication getInstance(){
|
||||
return mApp;
|
||||
}
|
||||
|
||||
//在App启用时调用
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
mApp = this;
|
||||
Log.d("ning","MyApplication onCreate");
|
||||
|
||||
mHelper = RoommateDBHelper.getInstance(this);
|
||||
//打开数据库帮助器读写连接
|
||||
mHelper.openWriteLink();
|
||||
mHelper.openReadLink();
|
||||
|
||||
}
|
||||
|
||||
//在App终止时调用
|
||||
@Override
|
||||
public void onTerminate() {
|
||||
super.onTerminate();
|
||||
Log.d("ning","MyApplication onTerminate");
|
||||
//关闭数据库连接
|
||||
mHelper.closeLink();
|
||||
}
|
||||
|
||||
//配置改变时被调用,如:横屏变竖屏
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
Log.d("ning","MyApplication onConfigurationChanged");
|
||||
}
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
package com.lh.app.tool;
|
||||
|
||||
import android.content.ContentUris;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
public class ImageUtils {
|
||||
//uri转bitmap
|
||||
public static Bitmap uriToBitmap(Context context, Uri uri){
|
||||
if (uri == null) return null;
|
||||
Bitmap bitmap = null;
|
||||
try {
|
||||
// decodeStream()可以将output_image.jpg解析成Bitmap对象。
|
||||
bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri));
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
public static String getRealPathFromUri(Context context, Uri uri) {
|
||||
if (uri == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 检查Uri是否是文件类型的Uri
|
||||
if ("file".equalsIgnoreCase(uri.getScheme())) {
|
||||
return uri.getPath();
|
||||
}
|
||||
|
||||
// 检查Uri是否是Content类型的Uri
|
||||
if ("content".equalsIgnoreCase(uri.getScheme())) {
|
||||
String[] projection = { MediaStore.Images.Media.DATA };
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
cursor = context.getContentResolver().query(uri, projection, null, null, null);
|
||||
if (cursor != null && cursor.moveToFirst()) {
|
||||
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
|
||||
return cursor.getString(columnIndex);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (cursor != null) {
|
||||
cursor.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
public static Bitmap stringToBitmap(String filePath) {
|
||||
if (filePath == null || filePath.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
File file = new File(filePath);
|
||||
if (!file.exists()) {
|
||||
return null;
|
||||
}
|
||||
return BitmapFactory.decodeFile(filePath);
|
||||
}
|
||||
/***
|
||||
* 通过文件路径加载 Bitmap 图片
|
||||
* @param filePath 路径
|
||||
* @return Bitmap 图片
|
||||
*/
|
||||
public static Bitmap loadBitmapFromPath(String filePath) {
|
||||
// 创建一个文件对象
|
||||
File imageFile = new File(filePath);
|
||||
|
||||
// 检查文件是否存在
|
||||
if (imageFile.exists()) {
|
||||
// 从文件路径加载 Bitmap
|
||||
return BitmapFactory.decodeFile(imageFile.getAbsolutePath());
|
||||
} else {
|
||||
// 文件不存在,返回 null 或者处理错误
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// 临时创建图片文件
|
||||
public static File createImageFile(Context context) {
|
||||
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
|
||||
String fileName = "JPEG_" + timeStamp + ".jpg";
|
||||
File storageDir = context.getExternalCacheDir(); // 使用缓存目录,避免申请存储权限
|
||||
File photoFile = new File(storageDir, fileName);
|
||||
|
||||
try {
|
||||
if (photoFile.createNewFile()) {
|
||||
return photoFile;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//根据路径读取图片
|
||||
public static Bitmap getBitmapFromPath(String path){
|
||||
Bitmap bitmap = BitmapFactory.decodeFile(path);
|
||||
return bitmap;
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package com.lh.app.tool;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.core.app.NotificationCompat;
|
||||
|
||||
/**
|
||||
* Created by LiShiyao on 2022.11.12.
|
||||
*/
|
||||
public class NotificationUtil {
|
||||
private Context context;
|
||||
private String contentTitle;
|
||||
private String contentText;
|
||||
private int smallIcon;
|
||||
private Bitmap largeIcon;
|
||||
|
||||
public NotificationUtil(Context context, String contentTitle, String contentText, int smallIcon, Bitmap largeIcon) {
|
||||
this.context = context;
|
||||
this.contentTitle = contentTitle;
|
||||
this.contentText = contentText;
|
||||
this.smallIcon = smallIcon;
|
||||
this.largeIcon = largeIcon;
|
||||
}
|
||||
|
||||
//通知提醒
|
||||
public void notification(){
|
||||
//
|
||||
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
|
||||
String channelId = "whatever";
|
||||
String channelName = "whatever content";
|
||||
int important = NotificationManager.IMPORTANCE_HIGH;
|
||||
manager.createNotificationChannel(new NotificationChannel(channelId,channelName,important));
|
||||
}
|
||||
Notification notification;
|
||||
notification = new NotificationCompat.Builder(context,"whatever")
|
||||
.setContentTitle(contentTitle)
|
||||
.setContentText(contentText)
|
||||
.setWhen(System.currentTimeMillis())
|
||||
.setSmallIcon(smallIcon)
|
||||
.setLargeIcon(largeIcon)
|
||||
.setAutoCancel(false)
|
||||
.build();
|
||||
manager.notify(1,notification);
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.lh.app.tool;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class ToastUtil {
|
||||
public static void show(Context context,String desc){
|
||||
Toast.makeText(context, desc, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.lh.app.ui.detail;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class DashboardViewModel extends ViewModel {
|
||||
|
||||
private final MutableLiveData<String> mText;
|
||||
|
||||
public DashboardViewModel() {
|
||||
mText = new MutableLiveData<>();
|
||||
mText.setValue("This is dashboard fragment");
|
||||
}
|
||||
|
||||
public LiveData<String> getText() {
|
||||
return mText;
|
||||
}
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
package com.lh.app.ui.detail;
|
||||
|
||||
|
||||
public class Roommate {
|
||||
private String name;
|
||||
private String id;
|
||||
private long height;//单位cm
|
||||
private float weight;//单位kg
|
||||
private boolean married;
|
||||
private String birthday;
|
||||
private String hobby;
|
||||
public Roommate(){ }
|
||||
|
||||
public Roommate(String name, String id, long height, float weight, boolean married, String birthday, String hobby) {
|
||||
this.name = name;
|
||||
this.id = id;
|
||||
this.height = height;
|
||||
this.weight = weight;
|
||||
this.married = married;
|
||||
this.birthday = birthday;
|
||||
this.hobby = hobby;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public long getHeight() {
|
||||
return height;
|
||||
}
|
||||
public float getWeight() {
|
||||
return weight;
|
||||
}
|
||||
public boolean isMarried() {
|
||||
return married;
|
||||
}
|
||||
public String getHobby() {
|
||||
return hobby;
|
||||
}
|
||||
public String getBirthday() {
|
||||
return birthday;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
public void setHeight(long height) {
|
||||
this.height = height;
|
||||
}
|
||||
public void setWeight(float weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
public void setMarried(boolean married) {
|
||||
this.married = married;
|
||||
}
|
||||
public void setHobby(String hobby) {
|
||||
this.hobby = hobby;
|
||||
}
|
||||
public void setBirthday(String birthday) {
|
||||
this.birthday = birthday;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "User{" +
|
||||
"id=" + id +
|
||||
", name='" + name + '\'' +
|
||||
", height=" + height +
|
||||
", weight=" + weight +
|
||||
", married=" + married +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.lh.app.ui.honor;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.core.content.FileProvider;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
|
||||
/**
|
||||
* Created by LiShiyao on 2022.11.17
|
||||
*/
|
||||
public class Honor {
|
||||
private String content;
|
||||
private String imageLocation;
|
||||
|
||||
public Honor(){}
|
||||
|
||||
public Honor(String content, String imageLocation) {
|
||||
this.content = content;
|
||||
this.imageLocation = imageLocation;
|
||||
}
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public String getImageLocation() {
|
||||
return imageLocation;
|
||||
}
|
||||
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public void setImageLocation(String imageLocation) {
|
||||
this.imageLocation = imageLocation;
|
||||
}
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
package com.lh.app.ui.honor;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.FileProvider;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.lh.app.R;
|
||||
import com.lh.app.tool.ImageUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class HonorAdapter extends RecyclerView.Adapter<HonorAdapter.ViewHolder> {
|
||||
private List<Honor> mHonorList;
|
||||
public static List<Honor> selectHonor = new ArrayList<>();
|
||||
private Context mContext;
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder{
|
||||
View view;
|
||||
ImageView imageImage;
|
||||
TextView tv_describe;
|
||||
CheckBox ckb_honorItem;
|
||||
public ViewHolder(View view){
|
||||
super(view);
|
||||
this.view = view;
|
||||
imageImage = (ImageView) view.findViewById(R.id.img_honor);
|
||||
tv_describe = (TextView) view.findViewById(R.id.tv_describe);
|
||||
ckb_honorItem = view.findViewById(R.id.ckb_honorItem);
|
||||
}
|
||||
}
|
||||
public HonorAdapter(List<Honor> honorList,Context context){
|
||||
mHonorList = honorList;
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view;
|
||||
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.honor_item,parent,false);
|
||||
final ViewHolder holder = new ViewHolder(view);
|
||||
|
||||
//list的点击事件
|
||||
holder.view.setOnClickListener(view1 -> {
|
||||
int position = holder.getAdapterPosition();
|
||||
Honor honor = mHonorList.get(position);
|
||||
Toast.makeText(view.getContext(),"you clicked view " +position,Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
|
||||
return holder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
Honor honor = mHonorList.get(position);
|
||||
Uri uri = Uri.parse(honor.getImageLocation());
|
||||
Glide.with(mContext)
|
||||
.load(uri)
|
||||
.error(R.drawable.ic_no_picture)
|
||||
.into(holder.imageImage);
|
||||
|
||||
holder.tv_describe.setText(honor.getContent());
|
||||
|
||||
//设置单选框监听器
|
||||
holder.ckb_honorItem.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
if(isChecked) selectHonor.add(honor);
|
||||
else selectHonor.remove(honor);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mHonorList.size();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.lh.app.ui.honor;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
|
||||
/** 图像信息类 */
|
||||
public class Image {
|
||||
|
||||
private Bitmap image;
|
||||
private String location;
|
||||
|
||||
public Image(Bitmap image, String location) {
|
||||
this.image = image;
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public Bitmap getImage() {
|
||||
return image;
|
||||
}
|
||||
|
||||
public void setImage(Bitmap image) {
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
public String getLocation() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public void setLocation(String location) {
|
||||
this.location = location;
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.lh.app.ui.honor;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class NotificationsViewModel extends ViewModel {
|
||||
|
||||
private final MutableLiveData<String> mText;
|
||||
|
||||
public NotificationsViewModel() {
|
||||
mText = new MutableLiveData<>();
|
||||
mText.setValue("This is notifications fragment");
|
||||
}
|
||||
|
||||
public LiveData<String> getText() {
|
||||
return mText;
|
||||
}
|
||||
}
|
@ -0,0 +1,228 @@
|
||||
package com.lh.app.ui.memo;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Intent;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
import android.widget.TextClock;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.lh.app.MainActivity;
|
||||
import com.lh.app.MyApplication;
|
||||
import com.lh.app.R;
|
||||
import com.lh.app.RoommateDBHelper;
|
||||
import com.lh.app.tool.NotificationUtil;
|
||||
|
||||
public class AddMemo_activity extends AppCompatActivity {
|
||||
|
||||
private TextClock clock;
|
||||
private EditText title_edt;
|
||||
private EditText content_edt;
|
||||
private Button back_button;
|
||||
private Button success_button;
|
||||
private RadioGroup group;
|
||||
private String select_roommateName = "全部";//选择室友
|
||||
|
||||
public static boolean is_backData = false;//是否带回数据
|
||||
public static Memo jumpMemo = null; //修改前对应的Memo
|
||||
public static boolean is_revise = false;//是否修改数据
|
||||
//数据库帮助器对象实例
|
||||
private RoommateDBHelper mHelper = MyApplication.mHelper;
|
||||
|
||||
@SuppressLint("NonConstantResourceId")
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.add_memo_activity_layout);
|
||||
|
||||
addUI();
|
||||
//判断点击打开页面来源,以下来自子项的点击,即修改内容
|
||||
if(is_revise){
|
||||
//获取传入数据
|
||||
jumpMemo = Roommate_memo_adapter.jumpMemo;
|
||||
//对控件文本及状态进行填充
|
||||
title_edt.setText(jumpMemo.getTitle());
|
||||
content_edt.setText(jumpMemo.getContent());
|
||||
switch (jumpMemo.getName()){
|
||||
case "全部":
|
||||
group.check(R.id.btn_all);
|
||||
break;
|
||||
case "刘治浩":
|
||||
group.check(R.id.btn_lzh);
|
||||
break;
|
||||
case "谭宗辉":
|
||||
group.check(R.id.btn_tzh);
|
||||
break;
|
||||
case "樊彪":
|
||||
group.check(R.id.btn_fb);
|
||||
break;
|
||||
case "李石尧":
|
||||
group.check(R.id.btn_lsy);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
title_edt.setText("");
|
||||
content_edt.setText("");
|
||||
}
|
||||
text_Control();
|
||||
Menu_part();
|
||||
}
|
||||
|
||||
/*添加组件*/
|
||||
@SuppressLint("NonConstantResourceId")
|
||||
private void addUI(){
|
||||
back_button = (Button) findViewById(R.id.back_button);
|
||||
success_button = (Button)findViewById(R.id.success_button) ;
|
||||
title_edt = (EditText)findViewById(R.id.title_edt) ;
|
||||
content_edt = (EditText) findViewById(R.id.content_edt);
|
||||
clock = (TextClock) findViewById(R.id.clock);
|
||||
group = (RadioGroup)findViewById(R.id.radioGroup) ;
|
||||
|
||||
/*对菜单栏按钮点击事件监听*/
|
||||
back_button.setOnClickListener(this::onclick);
|
||||
success_button.setOnClickListener(this::onclick);
|
||||
group.setOnCheckedChangeListener(radioChangeListener);
|
||||
}
|
||||
//RadioGroup监听器
|
||||
@SuppressLint("NonConstantResourceId")
|
||||
private final RadioGroup.OnCheckedChangeListener radioChangeListener = new RadioGroup.OnCheckedChangeListener(){
|
||||
@Override
|
||||
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
||||
switch (checkedId) {
|
||||
case R.id.btn_all:
|
||||
RadioButton radioButton_01 = AddMemo_activity.this.findViewById(R.id.btn_all);
|
||||
select_roommateName = radioButton_01.getText().toString();
|
||||
break;
|
||||
case R.id.btn_lzh:
|
||||
RadioButton radioButton_02 = AddMemo_activity.this.findViewById(R.id.btn_lzh);
|
||||
select_roommateName = radioButton_02.getText().toString();
|
||||
break;
|
||||
case R.id.btn_tzh:
|
||||
RadioButton radioButton_03 = AddMemo_activity.this.findViewById(R.id.btn_tzh);
|
||||
select_roommateName = radioButton_03.getText().toString();
|
||||
break;
|
||||
case R.id.btn_fb:
|
||||
RadioButton radioButton_04 = AddMemo_activity.this.findViewById(R.id.btn_fb);
|
||||
select_roommateName = radioButton_04.getText().toString();
|
||||
break;
|
||||
case R.id.btn_lsy:
|
||||
RadioButton radioButton_05 = AddMemo_activity.this.findViewById(R.id.btn_lsy);
|
||||
select_roommateName = radioButton_05.getText().toString();
|
||||
break;
|
||||
}
|
||||
Toast.makeText(AddMemo_activity.this, "name:" + select_roommateName, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
};
|
||||
//按钮点击事件
|
||||
@SuppressLint("NonConstantResourceId")
|
||||
private void onclick(View view){
|
||||
switch (view.getId()){
|
||||
case R.id.back_button:
|
||||
is_backData = false;
|
||||
is_revise = false;
|
||||
|
||||
MainActivity.isShowViewPage_memo = true;
|
||||
Intent intent = new Intent(AddMemo_activity.this,MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();//销毁当前活动
|
||||
break;
|
||||
case R.id.success_button:
|
||||
//将数据存入内存
|
||||
String name = select_roommateName;
|
||||
String title = String.valueOf(title_edt.getText());
|
||||
String content = String.valueOf(content_edt.getText());
|
||||
String now_time = (String)clock.getText();
|
||||
//对输入进行判断
|
||||
if (!title.equals("") && !content.equals("")) {
|
||||
//打印存入数据
|
||||
String date =String.format(title+" "+content+" "+now_time+" %s", name);
|
||||
Log.d("Roommate_activity","存入数据:"+date);
|
||||
Memo memo = new Memo(name,title,content,now_time);
|
||||
//将增加数据存入数据库
|
||||
ContentValues values01 = new ContentValues();
|
||||
values01.put("name", select_roommateName);
|
||||
values01.put("title",title);
|
||||
values01.put("content",content);
|
||||
values01.put("date",now_time);
|
||||
values01.put("isDelete",false);
|
||||
values01.put("isRevise",false);
|
||||
mHelper.insert(RoommateDBHelper.getTableNameRoommateMemo(),values01);
|
||||
if (is_revise){
|
||||
mHelper.update_roommateMemo(jumpMemo,true,true);
|
||||
}
|
||||
else {
|
||||
//将增加数据存入数据库
|
||||
ContentValues values02 = new ContentValues();
|
||||
values02.put("name", select_roommateName);
|
||||
values02.put("title",title);
|
||||
values02.put("content",content);
|
||||
values02.put("date",now_time);
|
||||
values02.put("isDelete",false);
|
||||
values02.put("isRevise",true);
|
||||
mHelper.insert(RoommateDBHelper.getTableNameRoommateMemo(),values02);
|
||||
}
|
||||
//通知显示
|
||||
notification(memo);
|
||||
//返回界面
|
||||
is_backData = true;
|
||||
jumpMemo = null;
|
||||
is_revise = false;
|
||||
Roommate_memo_adapter.jumpMemo = null;
|
||||
|
||||
Toast.makeText(this, "完成", Toast.LENGTH_SHORT).show();
|
||||
Log.d("Roommate_activity","返回!");
|
||||
//重新转跳到首界面
|
||||
MainActivity.isShowViewPage_memo = true;
|
||||
intent = new Intent(AddMemo_activity.this,MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
else Toast.makeText(this, "标题和内容不能为空", Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
//通知提醒
|
||||
private void notification(Memo memo){
|
||||
//
|
||||
NotificationUtil notificationUtil;
|
||||
if(is_revise){
|
||||
notificationUtil = new NotificationUtil(this,"修改通知","您在备忘录中修改了一条通知!!!",
|
||||
R.drawable.add_small_icon, BitmapFactory.decodeResource(getResources(),memo.getImgID() ));
|
||||
}
|
||||
else {
|
||||
notificationUtil = new NotificationUtil(this,"添加通知","您在备忘录中添加了一条通知!!!",
|
||||
R.drawable.add_small_icon, BitmapFactory.decodeResource(getResources(), memo.getImgID()));
|
||||
}
|
||||
notificationUtil.notification();
|
||||
}
|
||||
|
||||
//对文本进行控制
|
||||
private void text_Control(){
|
||||
content_edt.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);//多行文本输入
|
||||
content_edt.setGravity(Gravity.TOP);//文本显示在最上方
|
||||
content_edt.setSingleLine(false);//改变默认单行模式
|
||||
content_edt.setHorizontallyScrolling(false);//取消水平滚动
|
||||
}
|
||||
/*菜单栏编写*/
|
||||
private void Menu_part(){
|
||||
/*隐藏菜单栏*/
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
if(actionBar != null){
|
||||
actionBar.hide();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.lh.app.ui.memo;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class HomeViewModel extends ViewModel {
|
||||
|
||||
private final MutableLiveData<String> mText;
|
||||
|
||||
public HomeViewModel() {
|
||||
mText = new MutableLiveData<>();
|
||||
mText.setValue("This is home fragment");
|
||||
}
|
||||
|
||||
public LiveData<String> getText() {
|
||||
return mText;
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.lh.app.ui.memo;
|
||||
|
||||
import com.lh.app.R;
|
||||
|
||||
/**
|
||||
* Created by LiShiyao on 2022/10/5.
|
||||
*/
|
||||
public class Memo {
|
||||
private String name;
|
||||
private String title;
|
||||
private String content;
|
||||
private String date;
|
||||
|
||||
public Memo(){}
|
||||
public Memo(String name, String title, String content, String time){
|
||||
this.name = name;
|
||||
this.title = title;
|
||||
this.content = content;
|
||||
this.date = time;
|
||||
}
|
||||
public Memo(String title, String content){
|
||||
this.title = title;
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public String getTitle(){
|
||||
return title;
|
||||
}
|
||||
public String getContent(){
|
||||
return content;
|
||||
}
|
||||
public String getDate(){
|
||||
return date;
|
||||
}
|
||||
public int getImgID(){
|
||||
if ("全部".equals(name)) return R.drawable.img_dog1;
|
||||
else if ("刘治浩".equals(name)) return R.drawable.hyt;
|
||||
else if ("谭宗辉".equals(name)) return R.drawable.pyy;
|
||||
else if ("樊彪".equals(name)) return R.drawable.yyqx;
|
||||
else return R.drawable.dc;
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,30 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="85.84757"
|
||||
android:endY="92.4963"
|
||||
android:startX="42.9492"
|
||||
android:startY="49.59793"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#44000000"
|
||||
android:offset="0.0" />
|
||||
<item
|
||||
android:color="#00000000"
|
||||
android:offset="1.0" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:fillType="nonZero"
|
||||
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000" />
|
||||
</vector>
|
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 460 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 5.2 MiB |
After Width: | Height: | Size: 438 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 9.2 KiB |
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<!-- 圆角 -->
|
||||
<corners
|
||||
android:radius="10dp"
|
||||
android:topLeftRadius="10dp"
|
||||
android:topRightRadius="10dp"
|
||||
android:bottomLeftRadius="10dp"
|
||||
android:bottomRightRadius="10dp"/><!-- 设置圆角半径 -->
|
||||
<!-- 填充 -->
|
||||
<solid android:color="#FDFDC0"/>
|
||||
<!-- 描边 -->
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="#7A7A7A"
|
||||
android:dashWidth="20dp"
|
||||
android:dashGap="0dp"/><!--设置虚线的间隔宽度-->
|
||||
<!-- 大小 -->
|
||||
<size
|
||||
android:width="50dp"
|
||||
android:height="50dp"/><!-- 宽度和高度 -->
|
||||
|
||||
</shape>
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<!-- 圆角 -->
|
||||
<corners
|
||||
android:radius="10dp"
|
||||
android:topLeftRadius="10dp"
|
||||
android:topRightRadius="10dp"
|
||||
android:bottomLeftRadius="10dp"
|
||||
android:bottomRightRadius="8dp"/><!-- 设置圆角半径 -->
|
||||
<!-- 填充 -->
|
||||
<solid android:color="#333232"/>
|
||||
<!-- 大小 -->
|
||||
<size
|
||||
android:width="2dp"
|
||||
android:height="5dp"/><!-- 宽度和高度 -->
|
||||
|
||||
</shape>
|
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" />
|
||||
</vector>
|
@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
|
||||
</vector>
|
||||
|
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector
|
||||
android:height="108dp"
|
||||
android:width="108dp"
|
||||
android:viewportHeight="108"
|
||||
android:viewportWidth="108"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#3DDC84"
|
||||
android:pathData="M0,0h108v108h-108z"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,0L19,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M29,0L29,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M39,0L39,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M49,0L49,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M59,0L59,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M69,0L69,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M79,0L79,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M89,0L89,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M99,0L99,108"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,9L108,9"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,19L108,19"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,29L108,29"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,39L108,39"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,49L108,49"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,59L108,59"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,69L108,69"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,79L108,79"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,89L108,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M0,99L108,99"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,29L89,29"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,39L89,39"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,49L89,49"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,59L89,59"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,69L89,69"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M19,79L89,79"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M29,19L29,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M39,19L39,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M49,19L49,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M59,19L59,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M69,19L69,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
|
||||
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
|
||||
</vector>
|
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
|
||||
</vector>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="#40AE45" android:state_checked="true"/>
|
||||
<item android:color="#45AEBC" android:state_checked="false"/>
|
||||
</selector>
|
@ -0,0 +1,29 @@
|
||||
<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">
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/mViewPager"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@+id/nav_view"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
android:id="@+id/nav_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:background="?android:attr/windowBackground"
|
||||
app:itemIconTint="@drawable/sl_tab_color"
|
||||
app:itemTextColor="@drawable/sl_tab_color"
|
||||
app:menu="@menu/bottom_nav_menu_main" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<include
|
||||
android:id="@+id/menu"
|
||||
layout="@layout/top_part_04"/>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@+id/menu"
|
||||
android:padding="10dp">
|
||||
<TextView
|
||||
android:id="@+id/empty_tv_story"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textSize="24dp"
|
||||
android:text="没有数据~~~"
|
||||
android:layout_centerHorizontal="true"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycleView_story"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/line"
|
||||
android:layout_below="@+id/empty_tv_story"
|
||||
android:layout_marginBottom="5dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/line"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="#9E9999"
|
||||
android:layout_above="@+id/lil_btn"/>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/lil_btn"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="70dp"
|
||||
android:orientation="horizontal"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:padding="10dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/but_remove_story"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="移除" />
|
||||
<Button
|
||||
android:id="@+id/btn_clear_story"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:text="清空记录"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
<include
|
||||
android:id="@+id/Top"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
layout="@layout/top_part_2" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="10dp">
|
||||
<EditText
|
||||
android:id="@+id/title_edt"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:textSize="20sp"
|
||||
android:hint="标题"/>
|
||||
<TextClock
|
||||
android:id="@+id/clock"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/title_edt"
|
||||
android:gravity="left"
|
||||
android:format24Hour="MMM dd日 H:mm"
|
||||
android:textColor="#999999"
|
||||
android:textSize="15sp" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/content_edt"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/radioGroup"
|
||||
android:layout_below="@+id/clock"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@drawable/bg_boarder"
|
||||
android:imeOptions="actionDone"
|
||||
android:inputType="text"
|
||||
android:maxLines="100"
|
||||
android:padding="10dp"
|
||||
android:singleLine="false"
|
||||
android:textColor="#3C3F41"
|
||||
android:textColorLink="#F7413A"
|
||||
android:textCursorDrawable="@drawable/cursor_style"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/radioGroup"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="80dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/btn_all"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:checked="true"
|
||||
android:text="全部" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/btn_lzh"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="-60dp"
|
||||
android:text="李航" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/btn_tzh"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:text="张三龙" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/btn_fb"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:text="李航" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/btn_lsy"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:text="陈瑞育" />
|
||||
|
||||
</RadioGroup>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
@ -0,0 +1,267 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="10dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/L"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_centerHorizontal="true">
|
||||
<TextClock
|
||||
android:id="@+id/timeText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:format24Hour="HH:mm"
|
||||
android:format12Hour="hh:mm"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/black"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24sp"/>
|
||||
<TextClock
|
||||
android:id="@+id/dataTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:format12Hour="yyyy/MM/dd E"
|
||||
android:format24Hour="yyyy/MM/dd E"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginLeft="10dp"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/roommate1_img"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_below="@+id/roommate1"
|
||||
android:layout_marginTop="10dp"
|
||||
android:src="@drawable/hyt" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roommate1"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/L"
|
||||
android:layout_marginTop="10dp"
|
||||
android:fontFamily="@font/you_light"
|
||||
android:text="mate1"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/roommate2_img"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_below="@+id/roommate2"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_toRightOf="@+id/roommate1_img"
|
||||
android:src="@drawable/wyz1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roommate2"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/L"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_toRightOf="@+id/roommate1"
|
||||
android:fontFamily="@font/you_light"
|
||||
android:text="mate2"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/roommate3_img"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_below="@+id/roommate3"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_toRightOf="@+id/roommate2"
|
||||
android:src="@drawable/wz" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roommate3"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/L"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_toRightOf="@id/roommate2"
|
||||
android:fontFamily="@font/you_light"
|
||||
android:text="mate3"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<RatingBar
|
||||
android:id="@+id/roommate1_star"
|
||||
style="?android:attr/ratingBarStyleSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/roommate1_img"
|
||||
android:isIndicator="false"
|
||||
android:numStars="5"
|
||||
android:rating="5"
|
||||
android:stepSize="0.5"
|
||||
tools:ignore="SpeakableTextPresentCheck,SpeakableTextPresentCheck" />
|
||||
|
||||
<RatingBar
|
||||
android:id="@+id/roommate2_star"
|
||||
style="?android:attr/ratingBarStyleSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/roommate2_img"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_toRightOf="@+id/roommate1_star"
|
||||
android:isIndicator="false"
|
||||
android:numStars="5"
|
||||
android:rating="5"
|
||||
android:stepSize="0.5"
|
||||
tools:ignore="SpeakableTextPresentCheck" />
|
||||
|
||||
<RatingBar
|
||||
android:id="@+id/roommate3_star"
|
||||
style="?android:attr/ratingBarStyleSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/roommate3_img"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_toRightOf="@+id/roommate2_star"
|
||||
android:isIndicator="false"
|
||||
android:numStars="5"
|
||||
android:rating="5"
|
||||
android:stepSize="0.5"
|
||||
tools:ignore="SpeakableTextPresentCheck" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/source_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/roommate1_star"
|
||||
android:layout_marginTop="10dp"
|
||||
|
||||
android:text="打回原形" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/but_clear"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/roommate2_star"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_toRightOf="@+id/source_button"
|
||||
android:text="清空数据库" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/source_button"
|
||||
android:layout_marginTop="10dp"
|
||||
android:fontFamily="@font/you_light"
|
||||
android:hint="无内容"
|
||||
android:lineSpacingExtra="10dp"
|
||||
android:padding="10dp"
|
||||
android:textSize="18dp"
|
||||
android:visibility="visible"
|
||||
android:background="#5174C3E3"/>
|
||||
<ScrollView
|
||||
android:id="@+id/scr_enterIfo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:background="#50232323"
|
||||
android:layout_below="@+id/source_button"
|
||||
android:padding="20dp"
|
||||
android:visibility="gone">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="80dp"
|
||||
android:text="录入舍友介绍"
|
||||
android:textSize="25dp" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ed_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:inputType="textPersonName"
|
||||
android:hint="姓名"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ed_sno"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:inputType="number"
|
||||
android:hint="学号"/>
|
||||
<EditText
|
||||
android:id="@+id/ed_weight"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:inputType="number"
|
||||
android:numeric="decimal"
|
||||
android:hint="体重(kg)"/>
|
||||
<EditText
|
||||
android:id="@+id/ed_height"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:inputType="number"
|
||||
android:numeric="integer"
|
||||
android:hint="身高(cm)"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ed_birthday"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:inputType="date"
|
||||
android:hint="出生日期(2000.10.10)"/>
|
||||
|
||||
<!--textMultiLine 多行输入-->
|
||||
<EditText
|
||||
android:id="@+id/ed_hobby"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:inputType="textMultiLine"
|
||||
android:maxLength="100"
|
||||
android:hint="爱好(小于100字)"/>
|
||||
<CheckBox
|
||||
android:id="@+id/ckb_isMarried"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="是否结婚"
|
||||
android:textSize="20dp"
|
||||
android:layout_marginTop="5dp"/>
|
||||
<Button
|
||||
android:id="@+id/sure_but"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginLeft="200dp"
|
||||
android:text="完成"/>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
<com.github.mikephil.charting.charts.LineChart
|
||||
android:id="@+id/show_img_curve"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@+id/source_button"
|
||||
android:background="#50232323"
|
||||
android:padding="20dp"
|
||||
android:visibility="gone"
|
||||
android:orientation="vertical"/>
|
||||
|
||||
</RelativeLayout>
|
@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<TextView
|
||||
android:id="@+id/tv_emptyHonor"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:text="没有数据~~~"
|
||||
android:textSize="24dp" />
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_honor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/L"
|
||||
android:padding="10dp" />
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_inputHonor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/L"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp"
|
||||
android:visibility="gone">
|
||||
<Button
|
||||
android:id="@+id/but_backHonor"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="@drawable/back"/>
|
||||
<ImageView
|
||||
android:id="@+id/img_imgHonor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:src="@drawable/img_add"
|
||||
android:background="@drawable/img_honor_style"
|
||||
android:scaleType="centerInside"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="描述:"
|
||||
android:textSize="28dp"/>
|
||||
<EditText
|
||||
android:id="@+id/edt_contentHonor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="150dp"
|
||||
android:background="@drawable/bg_boarder"
|
||||
android:imeOptions="actionDone"
|
||||
android:inputType="text"
|
||||
android:maxLines="100"
|
||||
android:padding="10dp"
|
||||
android:singleLine="false"
|
||||
android:textColor="#3C3F41"
|
||||
android:textColorLink="#F7413A"
|
||||
android:textCursorDrawable="@drawable/cursor_style"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal"/>
|
||||
<Button
|
||||
android:id="@+id/but_sureHonor"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="确定"/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/L"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="80dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:orientation="horizontal"
|
||||
android:padding="10dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/but_addHonor"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="添加"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/but_removeHonor"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="移除"
|
||||
android:layout_marginLeft="10dp"/>
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_clearHonor"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="清空"
|
||||
android:layout_marginLeft="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/allMemo_Rel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="10dp">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycleView_horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/line" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/empty_tv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:text="没有数据~~~"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/line"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2px"
|
||||
android:background="#AFB1B3"
|
||||
android:layout_above="@+id/L"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/L"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="80dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:orientation="horizontal"
|
||||
android:padding="10dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/add_but"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="添加"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/remove_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="移除"
|
||||
android:layout_marginLeft="10dp"/>
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/clear_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="清空"
|
||||
android:layout_marginLeft="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
@ -0,0 +1,268 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="10dp">
|
||||
|
||||
<com.lh.app.tool.CircleImageView
|
||||
android:id="@+id/img_headPicture"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/img_cat" />
|
||||
<TextView
|
||||
android:id="@+id/text_Account"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/img_headPicture"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="航航子最帅"
|
||||
android:textSize="24dp"/>
|
||||
<TextView
|
||||
android:id="@+id/text_describe"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="2025 你在,我在,便是温暖时光"
|
||||
android:layout_toRightOf="@+id/img_headPicture"
|
||||
android:layout_below="@id/text_Account"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:textSize="18dp"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/line_1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/img_headPicture"
|
||||
android:layout_marginTop="10dp"
|
||||
android:background="#AEABAB" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_below="@+id/line_1">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:id="@id/text_name1"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="姓名:"
|
||||
android:textSize="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center_horizontal"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/text_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/text_name1"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="李航"
|
||||
android:textSize="20dp"
|
||||
android:gravity="center_horizontal"/>
|
||||
<TextView
|
||||
android:id="@+id/line_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/text_name"
|
||||
android:layout_toRightOf="@+id/text_name1"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:background="#AEABAB"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp">
|
||||
<TextView
|
||||
android:id="@id/text_weight2"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="体重(kg):"
|
||||
android:textSize="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center_horizontal"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_weight"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_toRightOf="@+id/text_weight2"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="60"
|
||||
android:textSize="20dp" />
|
||||
<TextView
|
||||
android:id="@+id/line_3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/text_weight"
|
||||
android:layout_toRightOf="@+id/text_weight2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:background="#AEABAB"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp">
|
||||
<TextView
|
||||
android:id="@id/text_height2"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="身高(cm):"
|
||||
android:textSize="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center_horizontal"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/text_height"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/text_height2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="175"
|
||||
android:textSize="20dp"
|
||||
android:gravity="center_horizontal"/>
|
||||
<TextView
|
||||
android:id="@+id/line_4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/text_height"
|
||||
android:layout_toRightOf="@+id/text_height2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:background="#AEABAB"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp">
|
||||
<TextView
|
||||
android:id="@id/text_birthday2"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="生日:"
|
||||
android:textSize="20dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center_horizontal"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/text_birthday"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/text_birthday2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="2000.8.4"
|
||||
android:textSize="20dp"
|
||||
android:gravity="center_horizontal"/>
|
||||
<TextView
|
||||
android:id="@+id/line_5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/text_birthday"
|
||||
android:layout_toRightOf="@+id/text_birthday2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:background="#AEABAB"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@id/text_hobby2"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="爱好:"
|
||||
android:textSize="20dp" />
|
||||
<TextView
|
||||
android:id="@+id/text_hobby"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/text_hobby2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="游泳+篮球+游戏+音乐"
|
||||
android:textSize="20dp"
|
||||
android:gravity="center_horizontal"/>
|
||||
<TextView
|
||||
android:id="@+id/line_6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/text_hobby"
|
||||
android:layout_toRightOf="@+id/text_hobby2"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:background="#AEABAB"/>
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_hobby3"
|
||||
android:layout_width="90dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="当前位置:"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_location"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_toStartOf="@+id/btn_getLocation"
|
||||
android:layout_toEndOf="@+id/text_hobby3"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="---"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_getLocation"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="更新位置"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="10dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/line_7"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@+id/text_location"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_toEndOf="@+id/text_hobby3"
|
||||
android:layout_toStartOf="@id/btn_getLocation"
|
||||
android:background="#AEABAB" />
|
||||
</RelativeLayout>
|
||||
<!-- 高德地图容器 -->
|
||||
<com.amap.api.maps.MapView
|
||||
android:id="@+id/mapView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<!-- 定位按钮 -->
|
||||
<ImageButton
|
||||
android:id="@+id/btn_location"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_margin="16dp"
|
||||
android:background="@drawable/ic_my_location"
|
||||
android:contentDescription="定位到当前位置" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp">
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="请选择一项照片"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:textSize="24dp"/>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/img_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_title"
|
||||
android:nestedScrollingEnabled="false"/>
|
||||
</RelativeLayout>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<CheckBox
|
||||
android:id="@+id/ckb_honorItem"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
<ImageView
|
||||
android:id="@+id/img_honor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_toRightOf="@+id/ckb_honorItem"
|
||||
android:scaleType="centerInside"/>
|
||||
<TextView
|
||||
android:id="@+id/tv_describe"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/img_honor"
|
||||
/>
|
||||
</RelativeLayout>
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 显示查询到的手机本地图片 -->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<!-- 图片显示 -->
|
||||
<ImageView
|
||||
android:id="@+id/image_img"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp">
|
||||
</ImageView>
|
||||
<CheckBox
|
||||
android:id="@+id/is_select"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
</LinearLayout>
|
@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/ck_select"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:padding="5dp" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/body_rel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="90dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_toRightOf="@+id/ck_select"
|
||||
android:background="@drawable/button_style"
|
||||
android:padding="10dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/memo_image"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_gravity="center_horizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_tev"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_toRightOf="@+id/memo_image"
|
||||
android:hint="title"
|
||||
android:textSize="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/content_tev"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/title_tev"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_toEndOf="@+id/memo_image"
|
||||
android:hint="content"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/date_tv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:text="date"
|
||||
android:textSize="12sp" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/lil_showInfo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#8A515050"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/img_back_showInfo"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="80dp"
|
||||
android:src="@drawable/back" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="-45dp"
|
||||
android:text="详情"
|
||||
android:textSize="30dp"
|
||||
android:textColor="#F1E9E9"/>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="350dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="@drawable/button_style"
|
||||
android:padding="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title_default"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="标题:"
|
||||
android:textSize="15dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title_showInfo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/tv_title_default" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_date_default"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_title_showInfo"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="时间:"
|
||||
android:textSize="15dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_date_showInfo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_title_showInfo"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_toRightOf="@+id/tv_date_default" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_content_default"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_date_showInfo"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="内容:"
|
||||
android:textSize="15dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_content_showInfo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_date_showInfo"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_toRightOf="@+id/tv_content_default" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_roommate_default"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_content_showInfo"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="选择室友:"
|
||||
android:textSize="15dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_roommate_showInfo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/tv_content_showInfo"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_toRightOf="@+id/tv_roommate_default" />
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:background="@color/color_TopPart">
|
||||
<Button
|
||||
android:id="@+id/but_back_04"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="@drawable/back"
|
||||
tools:ignore="TouchTargetSizeCheck,TouchTargetSizeCheck,SpeakableTextPresentCheck,SpeakableTextPresentCheck" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title_04"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="@string/menuTitle"
|
||||
android:textSize="24dp" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:background="@color/color_TopPart">
|
||||
<Button
|
||||
android:id="@+id/back_button"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="@drawable/back" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="@string/menuTitle"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/success_button"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="@drawable/success" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_detail"
|
||||
android:icon="@drawable/img_detail"
|
||||
android:title="@string/title_detail"
|
||||
android:checked="true" />
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_memo"
|
||||
android:icon="@drawable/img_memo"
|
||||
android:title="@string/title_memo"
|
||||
android:checked="false"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_communicate"
|
||||
android:icon="@drawable/img_honor"
|
||||
android:title="@string/title_honor"
|
||||
android:checked="false"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_mine"
|
||||
android:icon="@drawable/img_mine"
|
||||
android:title="@string/title_mine"
|
||||
android:checked="false"/>
|
||||
|
||||
</menu>
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
tools:ignore="MissingDefaultResource">
|
||||
<item android:id="@+id/submenu" android:title="选择菜单">
|
||||
<menu>
|
||||
<group android:checkableBehavior="none">
|
||||
<item android:id="@+id/item_revise_introduce" android:title="修改介绍"/>
|
||||
<item android:id="@+id/item_show_curve" android:title="显示节律曲线"/>
|
||||
</group>
|
||||
</menu>
|
||||
</item>
|
||||
</menu>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 8.3 KiB |