提交信息

master
your name 2 years ago
parent 0d76d7f595
commit f82daf3fe3

@ -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,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA" serialisationVersion="2">
<checkstyleVersion>10.9.3</checkstyleVersion>
<scanScope>JavaOnly</scanScope>
<copyLibs>true</copyLibs>
<option name="thirdPartyClasspath" />
<option name="activeLocationIds" />
<option name="locations">
<list>
<ConfigurationLocation id="bundled-sun-checks" type="BUNDLED" scope="All" description="Sun Checks">(bundled)</ConfigurationLocation>
<ConfigurationLocation id="bundled-google-checks" type="BUNDLED" scope="All" description="Google Checks">(bundled)</ConfigurationLocation>
</list>
</option>
</component>
</project>

@ -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,417 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="false" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.ExecutionManager">
<retain-sticky-names value="false" />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</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" />
</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>
<debugger>
<debugger-type value="ASK" />
<use-generic-runners value="true" />
</debugger>
</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,20 @@
<?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="gradleHome" value="$USER_HOME$/.gradle/wrapper/dists/gradle-7.5-bin/f1w0cc9nuo0eivz97x2xlu9sv/gradle-7.5" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" 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,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RenderSettings">
<option name="showDecorations" value="true" />
</component>
</project>

@ -0,0 +1 @@
/build

@ -0,0 +1,43 @@
plugins {
id 'com.android.application'
}
android {
namespace 'com.example.dazuoye'
compileSdk 33
defaultConfig {
applicationId "com.example.dazuoye"
minSdk 33
targetSdk 33
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
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'de.hdodenhof:circleimageview:3.1.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.google.code.gson:gson:2.2.4'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
}

@ -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.example.dazuoye;
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.example.dazuoye", appContext.getPackageName());
}
}

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:enableOnBackInvokedCallback="true"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/statusBar"
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity android:name=".partner.InfoListActivity"
>
</activity>
<activity
android:name=".MainActivity"
android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" ></category>
</intent-filter>
</activity>
<activity android:name=".activity.RegisterActivity"></activity>
<activity android:name=".star.StarAnalysisActivity"></activity>
<activity android:name=".star.RvStaggerActivity"></activity>
<activity android:name=".star.ImageDetailActivity"></activity>
<activity android:name=".star.DetailActivity"></activity>
<activity android:name=".food_grid.FoodGridActivity"
>
</activity>
<activity android:name=".activity.UserActivity"
>
</activity>
</application>
</manifest>

@ -0,0 +1,145 @@
{"starinfo":[
{
"logoname": "dapei",
"name": "搭 配",
"date": "这里的每件新衣都给了你十个出门的理由/",
"td": "今天想变身为可爱女孩/",
"gw": "素雅绵柔,穿出你的风格/",
"yy": "舒适有质感,气质和品味/",
"tz": "对“温柔的力量”最好的诠释/",
"zg": "穿对它的时候,它也在塑造你/",
"ys": "旧元素也能碰撞出新花样/",
"zb": "暖色调的搭配让人们骤然舒适起来/",
"hm": "新潮的黑白配,有很强的贵族气息/",
"js": "内短外长的组合极具层次感/",
"info": "你的身材配上这t套衣服在合适不过了/"
},
{
"logoname": "qunzi",
"name": "裙 子",
"date": "没有遇见你,小裙子都觉得怀才不遇",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/"
},
{
"logoname": "shangyi",
"name": "上 衣",
"date": "穿好看的皮囊,见有趣的灵魂",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "kuzi",
"name": "裤 子",
"date": "你的美丽已经不允许你再穿旧衣服了",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "waitao",
"name": "外 套",
"date": "换季添衣啦!衣柜里的衣服没有四季,只有最新与过期",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "peishi",
"name": "配 饰",
"date": "你只要负责漂亮,剩下的让我们负责吧",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "gufeng",
"name": "古 风",
"date": "衣服本身没灵魂,穿在你身上才充满感情",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "lifu",
"name": "礼 服",
"date": "你的美貌已余额不足,请进店充值",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "gongzhuqun",
"name": "公 主 裙",
"date": "我以夏天的名义穿上短裙,也替月亮夺走你的心事",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" },
{
"logoname": "zhiyezhuang",
"name": "职 业 装",
"date": "新时代女性力量就是打破枷锁,在经典中糅合活力",
"td": "优雅蕾丝连衣裙/",
"gw": "奶油米色调太温柔啦/",
"yy": "蕾丝刺绣也超精致确满满浪漫气息/",
"tz": "裙子独特设计不失优雅/",
"zg": "当你穿上这件裙子的时候,感觉春天就要来临啦/",
"ys": "将天真俏皮搬到衣服上/",
"zb": "此面料花色丰富,穿起来舒适又有质感,能充分提现穿着者的气质和品味/",
"hm": "体会到夏日带来的清爽与浪漫",
"js": "将你的身材衬托得淋漓尽致/",
"info": "时尚唯美的外衣,尊贵优雅的典范/" }
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

@ -0,0 +1,168 @@
package com.example.dazuoye;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import com.example.dazuoye.activity.RegisterActivity;
import com.example.dazuoye.activity.UserActivity;
import com.example.dazuoye.bean.StarInfobean;
import com.example.dazuoye.luck.luckFragment;
import com.example.dazuoye.me.meFragment;
import com.example.dazuoye.partner.partnerFragment;
import com.example.dazuoye.star.DetailActivity;
import com.example.dazuoye.star.ImageDetailActivity;
import com.example.dazuoye.star.RvStaggerActivity;
import com.example.dazuoye.star.starFragment;
import com.example.dazuoye.utils.AssetsUtils;
import com.google.gson.Gson;
public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener,View.OnClickListener{
RadioGroup mainRg;
// 声明四个按钮对应的fragment对象
Fragment starFrag,luckFrag,partnerFrag,meFrag;
private Button registerButton, loginButton,regButton,user_searchProduct;
private EditText usernameText,paswdEdit,surePasswordEdit,phoneEdit,usernameEdit,passwordEdit;
private FragmentManager m;
private FragmentManager manager;
private FragmentTransaction transaction;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainRg=findViewById(R.id.main_rg);
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
//设计监听点击了哪个单选按钮
mainRg.setOnCheckedChangeListener(this);
// 加载星座相关数据 /assets/xzcontent/xzcontent.json
StarInfobean infobean = loadData();
Bundle bundle = new Bundle();
bundle.putSerializable("info",infobean);
// 创建碎片对象
starFrag = new starFragment();
starFrag.setArguments(bundle);
luckFrag = new luckFragment();
luckFrag.setArguments(bundle);
partnerFrag = new partnerFragment();
partnerFrag.setArguments(bundle);
meFrag = new meFragment();
meFrag.setArguments(bundle);
//将四个fragment动态加载一起加载到布局当中
addFragmentpage();
}
private StarInfobean loadData() {
String json = AssetsUtils.getJsonFromAssets(this, "xzcontent/xzcontent.json");
Gson gson = new Gson();
StarInfobean infoBean = gson.fromJson(json, StarInfobean.class);
AssetsUtils.saveBitmapFromAssets(this,infoBean);
return infoBean;
}
//将主页当中有用的碎片显示,没用的隐藏
private void addFragmentpage() {
manager = getSupportFragmentManager();
FragmentTransaction transaction1 = manager.beginTransaction();
//将四个fragment统一的添加到布局当中
transaction1.add(R.id.main_layout_center,starFrag);
transaction1.add(R.id.main_layout_center,partnerFrag);
transaction1.add(R.id.main_layout_center,luckFrag);
transaction1.add(R.id.main_layout_center,meFrag);
//隐藏后面三个
transaction1.hide(partnerFrag);
transaction1.hide(luckFrag);
transaction1.hide(meFrag);
transaction1.commit();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.user_searchProduct:
{Intent intent=new Intent(this, RegisterActivity.class);
startActivity(intent);}
break;
case R.id.register:
{Intent intent = new Intent(MainActivity.this, UserActivity.class);
startActivity(intent);}
break;
case R.id.login:
{Intent intent = new Intent(this, RegisterActivity.class);
startActivity(intent);}
break;
}
}
//界面组件初始化
private void init() {
usernameText = findViewById(R.id.username);
paswdEdit = findViewById(R.id.password);
loginButton = findViewById(R.id.login);
loginButton.setOnClickListener((View.OnClickListener) this);
registerButton = findViewById(R.id.register);
registerButton.setOnClickListener((View.OnClickListener) this);
usernameEdit = findViewById(R.id.reg_username);
passwordEdit = findViewById(R.id.reg_password);
phoneEdit = findViewById(R.id.telephone);
surePasswordEdit = findViewById(R.id.reg_sure_password);
regButton = findViewById(R.id.reg_register);
View sexGroup = findViewById(R.id.sex);
user_searchProduct=findViewById(R.id.user_searchProduct);
user_searchProduct.setOnClickListener(this);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
FragmentTransaction transaction1 = manager.beginTransaction();
switch (checkedId){
case R.id.main_rb_star:
transaction1.hide(partnerFrag);
transaction1.hide(luckFrag);
transaction1.hide(meFrag);
transaction1.show(starFrag);
break;
case R.id.main_rb_partner:
transaction1.hide(starFrag);
transaction1.hide(luckFrag);
transaction1.hide(meFrag);
transaction1.show(partnerFrag);
break;
case R.id.main_rb_luck:
transaction1.hide(partnerFrag);
transaction1.hide(starFrag);
transaction1.hide(meFrag);
transaction1.show(luckFrag);
break;
case R.id.main_rb_me:
transaction1.hide(partnerFrag);
transaction1.hide(luckFrag);
transaction1.hide(starFrag);
transaction1.show(meFrag);
break;
}
transaction1.commit();
}
}

@ -0,0 +1,113 @@
package com.example.dazuoye.activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.MainActivity;
import com.example.dazuoye.R;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
private EditText usernameEdit, passwordEdit, surePasswordEdit,phoneEdit;
private Button regButton;
private RadioGroup sexGroup;
private String sexStr = "男";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_register);
init();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.reg_register:
{validateRegister(v);
Intent intent = new Intent(this, UserActivity.class);
startActivity(intent); }
break;
}
}
/**
*
*/
private void init() {
usernameEdit = findViewById(R.id.reg_username);
passwordEdit = findViewById(R.id.reg_password);
phoneEdit = findViewById(R.id.telephone);
surePasswordEdit = findViewById(R.id.reg_sure_password);
regButton = findViewById(R.id.reg_register);
regButton.setOnClickListener(this);
sexGroup = findViewById(R.id.sex);
sexGroup.setOnCheckedChangeListener(this);
}
// @Override
// public void onClick(View v) {
// switch (v.getId()) {
// case R.id.reg_register:
// //注册验证方法
// validateRegister(v);
// break;
// }
// }
/**
*
*/
public void validateRegister(View view) {
Intent intent = new Intent(RegisterActivity.this, UserActivity.class);
String username = usernameEdit.getText().toString();
String phone = phoneEdit.getText().toString();
String password = passwordEdit.getText().toString();
String surePassword = surePasswordEdit.getText().toString();
// 打印用户输入的信息
Log.d("RegisterActivity", "username: " + username + ", phone: " + phone + ", password: " + password + ", surePassword: " + surePassword);
//判断两次密码是否输入一致
if (password.equals(surePassword)) {
//这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
if (!username.equals("") || !password.equals("") || !phone.equals("")){
Bundle bundle = new Bundle();
bundle.putString("username", username);
bundle.putString("phone", phone);
bundle.putString("password", password);
bundle.putString("sex", sexStr);
// 打印 Bundle 中的信息
Log.d("RegisterActivity", "bundle: " + bundle.toString());
intent.putExtras(bundle);
// 打印启动页面的信息
Log.d("RegisterActivity", "start intent: " + intent.toString());
startActivity(intent);}
else {
Toast.makeText(RegisterActivity.this, "账号、密码或电话未填写", Toast.LENGTH_SHORT).show();
}
}
else{
Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCheckedChanged (RadioGroup group,int checkedId){
//根据用户选择来改变sex的值
sexStr = checkedId == R.id.reg_man ? "男" : "女";
}
}

@ -0,0 +1,89 @@
package com.example.dazuoye.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.example.dazuoye.MainActivity;
import com.example.dazuoye.R;
import com.example.dazuoye.me.meFragment;
public class UserActivity extends FragmentActivity {
private ImageView userIconImage;
private TextView usernameText, userSexText, userphoneText;
private LinearLayout usernameLine, userSexline, userphoneline, userPayLine, userSettingLine, userGeneralLine;
private FragmentManager fragmentManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_me);
// FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment fragment = new meFragment();
fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = null;
transaction.replace(R.id.fragment_container, fragment);
transaction.commit();
Log.d("RegisterActivity", "Enter UserActivity");
}
public FragmentManager getSupportFragmentManager() {
return null;
}
public void onClick(View view) {
Intent intent=new Intent();
switch (view.getId()) {
case R.id.user_searchProduct:
intent.setClass(UserActivity.this, RegisterActivity.class);
break;
}
startActivity(intent);
}
/**
*
*/
private void init() {
userIconImage = findViewById(R.id.user_icon);
usernameText = findViewById(R.id.user_username);
userSexText = findViewById(R.id.user_sex);
userphoneText = findViewById(R.id.user_phone);
usernameLine = findViewById(R.id.user_username_line);
userSexline = findViewById(R.id.user_sex_line);
userphoneline = findViewById(R.id.user_phone_line);
userPayLine = findViewById(R.id.user_pay);
userSettingLine = findViewById(R.id.user_setting);
userGeneralLine = findViewById(R.id.user_general);
setData();
}
/**
*
*/
private void setData() {
Intent intent = UserActivity.this.getIntent();
Bundle bundle = intent.getExtras();
usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
userphoneText.setText(String.format("电话号码:%s", bundle.getString("phone")));
userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
}
}

@ -0,0 +1,52 @@
package com.example.dazuoye.bean;
import java.io.Serializable;
public class FoodBean implements Serializable{
private String title;
private String notmatch;
private String desc;
private int picId;
public FoodBean(String title, String notmatch, String desc, int picId) {
this.title = title;
this.notmatch = notmatch;
this.desc = desc;
this.picId = picId;
}
public FoodBean() {
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getNotmatch() {
return notmatch;
}
public void setNotmatch(String notmatch) {
this.notmatch = notmatch;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getPicId() {
return picId;
}
public void setPicId(int picId) {
this.picId = picId;
}
}

@ -0,0 +1,24 @@
package com.example.dazuoye.bean;
import com.example.dazuoye.R;
import java.util.ArrayList;
import java.util.List;
public class FoodUtils {
private static final String[] qunzi = { "裙子1", "裙子2","上衣1"," 上衣2", "外套1","外套2"};
private static final String[] shangyi = { "裙子1", "裙子2","上衣1"," 上衣2","外套1","外套2" };
private static final int[] resId = { R.drawable.qunzi1,R.drawable.qunzi2,R.drawable.shangyi1,R.drawable.shangyi2,R.drawable.waitao1,R.drawable.waitao2};
private static final String [] shangpinjieshao={"商品介绍1","商品介绍2","商品介绍3","商品介绍4","商品介绍5","商品介绍6"};
public static List<FoodBean> getAllFoodList(){
List<FoodBean> list = new ArrayList<>();
for (int i = 0; i < qunzi.length; i++) {
FoodBean bean = new FoodBean(qunzi[i],shangyi[i],shangpinjieshao[i],resId[i]);
list.add(bean);
}
return list;
}
}

@ -0,0 +1,154 @@
package com.example.dazuoye.bean;
import java.io.Serializable;
import java.util.List;
public class StarInfobean implements Serializable {
private List<StarinfoBean> starinfo;
public List<StarinfoBean> getStarinfo() {
return starinfo;
}
public void setStarinfo(List<StarinfoBean> starinfo) {
this.starinfo = starinfo;
}
public static class StarinfoBean implements Serializable{
/**
* logoname : dapei
* name :
* date : 321-419
* td :
* gw :
* yy :
* tz :
* zg :
* ys :
* zb :
* hm : 5
* js :
* info :
*/
private String logoname;
private String name;
private String date;
private String td;
private String gw;
private String yy;
private String tz;
private String zg;
private String ys;
private String zb;
private String hm;
private String js;
private String info;
public String getLogoname() {
return logoname;
}
public void setLogoname(String logoname) {
this.logoname = logoname;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTd() {
return td;
}
public void setTd(String td) {
this.td = td;
}
public String getGw() {
return gw;
}
public void setGw(String gw) {
this.gw = gw;
}
public String getYy() {
return yy;
}
public void setYy(String yy) {
this.yy = yy;
}
public String getTz() {
return tz;
}
public void setTz(String tz) {
this.tz = tz;
}
public String getZg() {
return zg;
}
public void setZg(String zg) {
this.zg = zg;
}
public String getYs() {
return ys;
}
public void setYs(String ys) {
this.ys = ys;
}
public String getZb() {
return zb;
}
public void setZb(String zb) {
this.zb = zb;
}
public String getHm() {
return hm;
}
public void setHm(String hm) {
this.hm = hm;
}
public String getJs() {
return js;
}
public void setJs(String js) {
this.js = js;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
}

@ -0,0 +1,48 @@
package com.example.dazuoye.food_grid;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.FoodBean;
public class FoodDescActivity extends AppCompatActivity {
TextView titleTv1,titleTv2,descTv,notTv;
ImageView backIv,bigPicIv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_star);
initView();
// 接受上一级页面传来的数据
Intent intent = getIntent();
FoodBean foodBean = (FoodBean) intent.getSerializableExtra("food");
// 设置显示控件
titleTv1.setText(foodBean.getTitle());
titleTv2.setText(foodBean.getTitle());
descTv.setText(foodBean.getDesc());
notTv.setText(foodBean.getNotmatch());
bigPicIv.setImageResource(foodBean.getPicId());
}
private void initView() {
titleTv1 = findViewById(R.id.fooddesc_tv_title1);
titleTv2 = findViewById(R.id.fooddesc_tv_title2);
descTv = findViewById(R.id.fooddesc_tv_desc);
notTv = findViewById(R.id.fooddesc_tv_not);
backIv = findViewById(R.id.fooddesc_iv_back);
bigPicIv = findViewById(R.id.fooddesc_iv_bigpic);
backIv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish(); //销毁当前的activity
}
});
}
}

@ -0,0 +1,48 @@
package com.example.dazuoye.food_grid;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.FoodBean;
import com.example.dazuoye.bean.FoodUtils;
import java.util.List;
public class FoodGridActivity extends AppCompatActivity {
GridView gv;
List<FoodBean>mDatas;
private FoodGridAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_star);
// gv = findViewById(R.id.food_grid_gv);
// 数据源
mDatas = FoodUtils.getAllFoodList();
// 创建适配器对象
adapter = new FoodGridAdapter(this, mDatas);
// 设置适配器
gv.setAdapter(adapter);
setListener();
}
private void setListener() {
gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FoodBean foodBean = mDatas.get(position);
Intent intent = new Intent(FoodGridActivity.this, FoodDescActivity.class);
intent.putExtra("food",foodBean);
startActivity(intent);
}
});
}
}

@ -0,0 +1,66 @@
package com.example.dazuoye.food_grid;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.FoodBean;
import java.util.List;
public class FoodGridAdapter extends BaseAdapter{
Context context;
List<FoodBean>mDatas;
public FoodGridAdapter(Context context, List<FoodBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
}
@Override
public int getCount() {
return mDatas.size();
}
@Override
public Object getItem(int position) {
return mDatas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 1.声明ViewHolder
ViewHolder holder = null;
if (convertView == null) { //2.判断是否有复用的view如果没有就创建
convertView = LayoutInflater.from(context).inflate(R.layout.item_foodgrid,null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
// 获取指定位置的数据
FoodBean foodBean = mDatas.get(position);
holder.iv.setImageResource(foodBean.getPicId());
holder.tv.setText(foodBean.getTitle());
return convertView;
}
class ViewHolder{
ImageView iv;
TextView tv;
public ViewHolder(View view){
iv = view.findViewById(R.id.item_grid_iv);
tv = view.findViewById(R.id.item_grid_tv);
}
}
}

@ -0,0 +1,66 @@
package com.example.dazuoye.luck;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.dazuoye.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link luckFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class luckFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
// public luckFragment() {
// // Required empty public constructor
// }
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment luckFragment.
*/
// TODO: Rename and change types and number of parameters
public static luckFragment newInstance(String param1, String param2) {
luckFragment fragment = new luckFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_luck, container, false);
}
}

@ -0,0 +1,70 @@
package com.example.dazuoye.me;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.dazuoye.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link meFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class meFragment extends Fragment {
private FragmentManager fragmentManager;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
// public meFragment() {
// // Required empty public constructor
// }
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment meFragment.
*/
// TODO: Rename and change types and number of parameters
public static meFragment newInstance(String param1, String param2) {
meFragment fragment = new meFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager fragmentManager = getChildFragmentManager();
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
fragmentManager = getChildFragmentManager();
return inflater.inflate(R.layout.fragment_me, container, false);
}
}

@ -0,0 +1,103 @@
package com.example.dazuoye.partner;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.FoodBean;
import com.example.dazuoye.bean.FoodUtils;
import com.example.dazuoye.food_grid.FoodDescActivity;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.List;
public class InfoListActivity extends AppCompatActivity implements View.OnClickListener{
EditText searchEt;
ImageView searchIv,flushIv;
ListView showLv;
// ListView内部数据源
List<FoodBean>mDatas;
List<FoodBean>allFoodList;
private InfoListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_partner);
// 查找控件
initView();
// 2.找到ListView对应的数据源
mDatas = new ArrayList<>();
allFoodList = FoodUtils.getAllFoodList();
mDatas.addAll(allFoodList);
// 3.创建适配器 BaseAdapter的子类
adapter = new InfoListAdapter(this, mDatas);
showLv.setAdapter(adapter); //4.设置适配器
// 设置单向点击监听功能
setListener();
}
private void setListener() {
showLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FoodBean foodBean = mDatas.get(position);
Intent intent = new Intent(InfoListActivity.this, FoodDescActivity.class);
intent.putExtra("food",foodBean);
startActivity(intent);
}
});
}
private void initView() {
searchEt = findViewById(R.id.starfrag_layout);
searchIv = findViewById(R.id.starfrag_gv);
flushIv = findViewById(R.id.starfrag_vp);
showLv = findViewById(R.id.starfrag_grid);
searchIv.setOnClickListener(this); //添加点击事件的监听器
flushIv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
// case R.id.info_iv_flush: //刷新点击
// searchEt.setText("");
// mDatas.clear();
// mDatas.addAll(allFoodList);
// adapter.notifyDataSetChanged();
// break;
case R.id.searchview: //搜索点击
// 1.获取输入内容,判断不为空
String msg = searchEt.getText().toString().trim(); //获取输入信息
if (TextUtils.isEmpty(msg)) {
Toast.makeText(this,"输入内容不能为空!",Toast.LENGTH_SHORT).show();
return;
}
// 判断所有食物列表的标题是否包含输入内容,如果包含,就添加到小集合中
List<FoodBean>list = new ArrayList<>();
for (int i = 0; i < allFoodList.size(); i++) {
String title = allFoodList.get(i).getTitle();
if (title.contains(msg)) {
list.add(allFoodList.get(i));
}
}
mDatas.clear(); // 清空ListView的适配器数据源内容
mDatas.addAll(list); // 添加新的数据到数据源中
adapter.notifyDataSetChanged(); // 提示适配器更新
break;
}
}
}

@ -0,0 +1,67 @@
package com.example.dazuoye.partner;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.FoodBean;
import java.util.List;
public class InfoListAdapter extends BaseAdapter{
Context context;
List<FoodBean>mDatas;
public InfoListAdapter(Context context, List<FoodBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
}
// 决定了ListView列表展示的行数
@Override
public int getCount() {
return mDatas.size();
}
//返回指定位置对应的数据
@Override
public Object getItem(int position) {
return mDatas.get(position);
}
// 返回指定位置所对应的id
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.rv_vertical_item,null); //将布局转换成view对象的方法
holder=new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
// 加载控件显示的内容
// 获取集合指定位置的数据
FoodBean foodBean = mDatas.get(position);
holder.titleTv.setText(foodBean.getTitle());
holder.notTv.setText("不可匹配:"+foodBean.getNotmatch());
holder.iv.setImageResource(foodBean.getPicId());
return convertView;
}
class ViewHolder{
ImageView iv;
TextView titleTv,notTv;
public ViewHolder(View view){
iv = view.findViewById(R.id.item_info_iv);
titleTv = view.findViewById(R.id.item_info_tv_title);
notTv = view.findViewById(R.id.item_info_tv_notmatch);
}
}
}

@ -0,0 +1,33 @@
package com.example.dazuoye.partner;
//封装商品实体类
public class MyGoods {
private String name;//名称
private String price;//价格
private Integer icon;//图片
private String introduce;//介绍
public MyGoods(){
}
public MyGoods(String name,String price,Integer icon,String introduce){
this.name=name;
this.price=price;
this.icon=icon;
this.introduce=introduce;
}
public String getName(){
return name;
}
public String getPrice(){
return price;
}
public Integer getIcon(){
return icon;
}
public String getIntroduce(){
return introduce;
}
}

@ -0,0 +1,66 @@
package com.example.dazuoye.partner;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.dazuoye.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link partnerFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class partnerFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
// public partnerFragment() {
// // Required empty public constructor
// }
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment partnerFragment.
*/
// TODO: Rename and change types and number of parameters
public static partnerFragment newInstance(String param1, String param2) {
partnerFragment fragment = new partnerFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_partner, container, false);
}
}

@ -0,0 +1,62 @@
package com.example.dazuoye.star;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.dazuoye.R;
import java.util.List;
public class AnalysisBaseAdapter extends BaseAdapter {
Context context;
List<StarAnalysisBean> mDatas;
public AnalysisBaseAdapter(Context context, List<StarAnalysisBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
}
@Override
public int getCount() {
return mDatas.size();
}
@Override
public Object getItem(int position) {
return mDatas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_star_analysis,null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
StarAnalysisBean bean = mDatas.get(position);
holder.titleTv.setText(bean.getTitle());
holder.contentTv.setText(bean.getContent());
holder.contentTv.setBackgroundResource(bean.getColor());
return convertView;
}
class ViewHolder{
TextView titleTv,contentTv;
public ViewHolder(View view){
titleTv = view.findViewById(R.id.itemstar_tv_title);
contentTv = view.findViewById(R.id.itemstar_tv_content);
}
}
}

@ -0,0 +1,44 @@
package com.example.dazuoye.star;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.R;
public class DetailActivity extends AppCompatActivity {
private ImageView detailImage;
private TextView detailText;
private Button backButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_layout);
detailImage = findViewById(R.id.detail_image_view);
detailText = findViewById(R.id.detail_text_view);
backButton = findViewById(R.id.back_button);
// 获取点击图片传递进来的intent从中取出图片资源ID和文字信息
Intent intent = getIntent();
int imageResId = intent.getIntExtra("image", R.drawable.qunzi1);
String text = intent.getStringExtra("text");
// 设置详情页面的图片和文字信息
detailImage.setImageResource(imageResId);
detailText.setText(text);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish(); // 关闭当前Activity回到上一个界面
}
});
}
}

@ -0,0 +1,76 @@
package com.example.dazuoye.star;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.dazuoye.R;
public class ImageAdapter extends BaseAdapter {
private static final int[] IMAGES = {R.drawable.qunzi1, R.drawable.qunzi2, R.drawable.shangyi1,
R.drawable.shangyi2, R.drawable.waitao1, R.drawable.waitao2};
private static final String[] TITLES = {"裙子1 ¥188","裙子2 ¥168","上衣1 ¥88","上衣2 ¥78",
"外套1 ¥198","外套2 ¥198"};
private Context mContext;
public ImageAdapter(Context context) {
mContext = context;
}
@Override
public int getCount() {
return IMAGES.length;
}
@Override
public Object getItem(int position) {
return IMAGES[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
// 创建一个新的视图
view = LayoutInflater.from(mContext).inflate(R.layout.activity_image_detail, parent, false);
} else {
view = convertView;
}
ImageView imageView = view.findViewById(R.id.image_view);
TextView textView = view.findViewById(R.id.text_view);
// 导入图像资源
imageView.setImageResource(IMAGES[position]);
// 设置文本
textView.setText(TITLES[position]);
// 设置点击事件
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext,ImageDetailActivity.class);
// 点击图像时将图像资源ID和标题添加到Intent中
intent.putExtra("image_resource", IMAGES[position]);
intent.putExtra("title", TITLES[position]);
mContext.startActivity(intent);
}
});
return view;
}
}

@ -0,0 +1,27 @@
package com.example.dazuoye.star;
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.R;
public class ImageDetailActivity extends AppCompatActivity {
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_detail);
mImageView = findViewById(R.id.image_view);
// 获取从Intent传递的图像资源ID
int imageResource = getIntent().getIntExtra("image_resource", 0);
// 将图像资源ID设置给ImageView控件
mImageView.setImageResource(imageResource);
}
}

@ -0,0 +1,16 @@
package com.example.dazuoye.star;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.example.dazuoye.R;
public class RvStaggerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

@ -0,0 +1,103 @@
package com.example.dazuoye.star;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.StarInfobean;
import com.example.dazuoye.utils.AssetsUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import de.hdodenhof.circleimageview.CircleImageView;
public class StarAnalysisActivity extends AppCompatActivity implements View.OnClickListener {
TextView titleTv;
ImageView backIv;
CircleImageView iconIv;
TextView nameTv,dateTv;
ListView analysisLv;
StarInfobean.StarinfoBean bean;
private Map<String, Bitmap> contentlogoImgMap;
private TextView footerTv; //ListView底部布局当中需要改变的TextView
List<StarAnalysisBean>mDatas;
private AnalysisBaseAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_star_analysis);
// 获取上一级界面传递过来的数据
Intent intent = getIntent();
bean = (StarInfobean.StarinfoBean) intent.getSerializableExtra("star");
initView();
mDatas = new ArrayList<>(); //初始化显示在ListView上的数据源
adapter = new AnalysisBaseAdapter(this, mDatas);
analysisLv.setAdapter(adapter);
addDataToList();
}
/* 加载ListView当中的数据源内容*/
private void addDataToList() {
StarAnalysisBean sab1 = new StarAnalysisBean("新品1 ¥188", bean.getTd(), R.drawable.search_box_bg);
StarAnalysisBean sab2 = new StarAnalysisBean("新品2 ¥158", bean.getGw(), R.drawable.search_box_bg);
StarAnalysisBean sab3 = new StarAnalysisBean("新品3 ¥188", bean.getYy(),R.drawable.search_box_bg);
StarAnalysisBean sab4 = new StarAnalysisBean("新品4 ¥198", bean.getTz(), R.drawable.search_box_bg);
StarAnalysisBean sab5 = new StarAnalysisBean("新品5 ¥138", bean.getZg(),R.drawable.search_box_bg);
StarAnalysisBean sab6 = new StarAnalysisBean("新品6 ¥148", bean.getYs(),R.drawable.search_box_bg);
StarAnalysisBean sab7 = new StarAnalysisBean("新品7 ¥158", bean.getZb(),R.drawable.search_box_bg);
StarAnalysisBean sab8 = new StarAnalysisBean("新品8 ¥168", bean.getHm(), R.drawable.search_box_bg);
StarAnalysisBean sab9 = new StarAnalysisBean("新品9 ¥188", bean.getJs(),R.drawable.search_box_bg);
mDatas.add(sab1);
mDatas.add(sab2);
mDatas.add(sab3);
mDatas.add(sab4);
mDatas.add(sab5);
mDatas.add(sab6);
mDatas.add(sab7);
mDatas.add(sab8);
mDatas.add(sab9);
// 数据源发生变化,提示适配器更新
adapter.notifyDataSetChanged();
}
/* 初始化控件*/
private void initView() {
titleTv = findViewById(R.id.title_tv);
backIv = findViewById(R.id.title_iv_back);
iconIv = findViewById(R.id.staranalysis_iv);
nameTv = findViewById(R.id.staranalysis_tv_name);
dateTv = findViewById(R.id.staranalysis_tv_date);
analysisLv = findViewById(R.id.staranalysis_lv);
// 为ListView添加底部布局
LinearLayout footerView = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.footer_star_analysis, null);
analysisLv.addFooterView(footerView);
footerTv = footerView.findViewById(R.id.footerstar_tv_info);
// 将数据进行显示
titleTv.setText("独衣无二");
backIv.setOnClickListener(this);
nameTv.setText(bean.getName());
dateTv.setText(bean.getDate());
Map<String, Bitmap> contentlogoImgMap = AssetsUtils.getContentlogoImgMap();
Bitmap bitmap = contentlogoImgMap.get(bean.getLogoname());
iconIv.setImageBitmap(bitmap);
footerTv.setText(bean.getInfo());
}
@Override
public void onClick(View v) {
finish();
}
}

@ -0,0 +1,37 @@
package com.example.dazuoye.star;
public class StarAnalysisBean {
private String title;
private String content;
private int color;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getColor() {
return color;
}
public void setColor(int color) {
this.color = color;
}
public StarAnalysisBean(String title, String content, int color) {
this.title = title;
this.content = content;
this.color = color;
}
}

@ -0,0 +1,40 @@
package com.example.dazuoye.star;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import java.util.List;
public class StarPagerAdapter extends PagerAdapter {
Context context;
List<ImageView>imgList;
public StarPagerAdapter(Context context, List<ImageView> imgList) {
this.context = context;
this.imgList = imgList;
}
@Override
public int getCount() {
return imgList.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView = imgList.get(position);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
ImageView imageView = imgList.get(position);
container.removeView(imageView);
}
}

@ -0,0 +1,78 @@
package com.example.dazuoye.star;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.StarInfobean;
import com.example.dazuoye.utils.AssetsUtils;
import java.util.List;
import java.util.Map;
import de.hdodenhof.circleimageview.CircleImageView;
public class starBaseAdapter extends BaseAdapter {
Context context;
List<StarInfobean.StarinfoBean> mDatas;
Map<String, Bitmap> logoMap;
public starBaseAdapter(Context context, List<StarInfobean.StarinfoBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
logoMap = AssetsUtils.getLogoImgMap();
}
@Override
public int getCount() {
return mDatas.size();
}
@Override
public Object getItem(int position) {
return mDatas.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_star_gv, null);
holder = new ViewHolder(convertView) {
};
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// 获取指定位置的数据
StarInfobean.StarinfoBean bean = mDatas.get(position);
holder.tv.setText(bean.getName());
// 获得图片的名称,根据名称在内存当中进行查找
String logoname = bean.getLogoname();
Bitmap bitmap = logoMap.get(logoname);
holder.iv.setImageBitmap(bitmap);
return convertView;
}
// 对于item当中的控件进行声明和初始化的操作
class ViewHolder {
CircleImageView iv;
TextView tv;
public ViewHolder(View view) {
iv = view.findViewById(R.id.item_star_iv);
tv = view.findViewById(R.id.item_star_tv);
}
}
}

@ -0,0 +1,194 @@
package com.example.dazuoye.star;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.appcompat.widget.SearchView;
import androidx.viewpager.widget.ViewPager;
import com.example.dazuoye.R;
import com.example.dazuoye.bean.StarInfobean;
import java.util.ArrayList;
import java.util.List;
public class starFragment extends Fragment {
ViewPager starVp;
GridView starGv;
LinearLayout pointlayout;
private List<StarInfobean.StarinfoBean> mDatas;
private starBaseAdapter starBaseAdapter;
private StarPagerAdapter starPagerAdapter;
// 声明图片数组
int[] imgIds = {R.drawable.lunbotu, R.drawable.lunbotu1, R.drawable.lunbotu2, R.drawable.lunbotu3, R.drawable.lunbotu4};
// 声明ViewPager的数据源
List<ImageView> ivList;
// 声明管理指示器小圆点的集合
List<ImageView> pointList;
// 完成定时装置,实现自动滑动的效果
Handler handler = new Handler(){
@SuppressLint("HandlerLeak")
@Override
public void handleMessage(@NonNull Message msg) {
if (msg.what == 1) {
// 获取当前ViewPager显示的页面
int currentItem = starVp.getCurrentItem();
// 判断是否为最后一张,如果是最后一张回到第一张,否则显示最后一张
if (currentItem == ivList.size()-1) {
starVp.setCurrentItem(0);
}else {
currentItem++;
starVp.setCurrentItem(currentItem);
}
// 形成循环发送--接受消息的效果,在接受消息的同时,也要进行消息发送
handler.sendEmptyMessageDelayed(1,5000);
}
}
};
// // TODO: Rename parameter arguments, choose names that match
// // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
// private static final String ARG_PARAM1 = "param1";
// private static final String ARG_PARAM2 = "param2";
//
// // TODO: Rename and change types of parameters
// private String mParam1;
// private String mParam2;
// private List<StarInfobean.StarinfoBean> maDas;
// public starFragment() {
// // Required empty public constructor
// }
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment starFragment.
*/
// TODO: Rename and change types and number of parameters
// public static starFragment newInstance(String param1, String param2) {
// starFragment fragment = new starFragment();
// Bundle args = new Bundle();
// args.putString(ARG_PARAM1, param1);
// args.putString(ARG_PARAM2, param2);
// fragment.setArguments(args);
// return fragment;
// }
//
// @Override
// public void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// if (getArguments() != null) {
// mParam1 = getArguments().getString(ARG_PARAM1);
// mParam2 = getArguments().getString(ARG_PARAM2);
// }
// }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_star, container, false);
initView(view);
Bundle bundle = getArguments();
StarInfobean infoBean = (StarInfobean) bundle.getSerializable("info");
mDatas = infoBean.getStarinfo();
// 创建适配器
starBaseAdapter = new starBaseAdapter(getContext(), mDatas);
starGv.setAdapter(starBaseAdapter);
initPager();
setVPListener();
setGVListener();
// 延迟5秒钟发送一条消息通知可以切换viewpager的图片了
handler.sendEmptyMessageDelayed(1,5000);
// 获取SearchView对象
SearchView searchView = view.findViewById(R.id.searchview);
// 在搜索框中设置文本
searchView.setQueryHint("请输入搜索关键字");
return view;
}
/* 设置GridView的监听事件函数*/
private void setGVListener() {
starGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
StarInfobean.StarinfoBean bean = mDatas.get(position);
Intent intent = new Intent(getContext(), StarAnalysisActivity.class);
intent.putExtra("star",bean);
startActivity(intent);
}
});
}
/* 设置ViewPager显示的页面*/
private void initPager() {
ivList = new ArrayList<>();
pointList = new ArrayList<>();
for (int i = 0; i < imgIds.length; i++) {
ImageView iv = new ImageView(getContext());
iv.setImageResource(imgIds[i]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
// 设置图片view的宽高
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
iv.setLayoutParams(lp);
// 将图片view加载到集合当中
ivList.add(iv);
// 创建图片对应的指示器小圆点
ImageView piv = new ImageView(getContext());
piv.setImageResource(R.mipmap.point_normal);
LinearLayout.LayoutParams plp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
plp.setMargins(20, 0, 0, 0);
piv.setLayoutParams(plp);
// 将小圆点添加到布局当中
pointlayout.addView(piv);
// 为了便于操作,将小圆点添加到统一管理的集合中
pointList.add(piv);
}
// 默认第一个小圆点是获取焦点的状态
pointList.get(0).setImageResource(R.mipmap.point_focus);
starPagerAdapter = new StarPagerAdapter(getContext(), ivList);
starVp.setAdapter(starPagerAdapter);
}
private void initView(View view) {
starVp = view.findViewById(R.id.starfrag_vp);
starGv = view.findViewById(R.id.starfrag_gv);
pointlayout = view.findViewById(R.id.starfrag_layout);
}
/* 设置viewpager的监听器函数*/
private void setVPListener() {
starVp.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
for (int i = 0; i < pointList.size(); i++) {
pointList.get(i).setImageResource(R.mipmap.point_normal);
}
pointList.get(position).setImageResource(R.mipmap.point_focus);
}
});
}
}

@ -0,0 +1,86 @@
package com.example.dazuoye.utils;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.example.dazuoye.bean.StarInfobean;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.BitSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AssetsUtils {
//读取assets文件夹内容存放在字符串
private static Map<String,Bitmap> logoImgMap;
private static Map<String,Bitmap>contentlogoImgMap;
public static String getJsonFromAssets(Context context, String filename) {
AssetManager am = context.getResources().getAssets();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//获取输入流
try {
InputStream is= am.open(filename);
//读取内容存放到内存流中
int hasRead=0;
byte[] buf = new byte[1024];
while (true){
hasRead=is.read(buf);
if (hasRead==-1){
break;
}
baos.write(buf,0,hasRead);
}
String msg=baos.toString();
is.close();;
return msg;
} catch (Exception e) {
}
return null;
}
/* 读取Assets文件夹下的图片返回Bitmap对象*/
public static Bitmap getBitmapFromAssets(Context context, String filename){
Bitmap bitmap = null;
// 获取文件夹管理者
AssetManager am = context.getResources().getAssets();
try {
InputStream is = am.open(filename);
// 通过位图管理器,将输入流转换成位图对象
bitmap = BitmapFactory.decodeStream(is);
is.close();
}catch (Exception e){
e.printStackTrace();
}
return bitmap;
}
/*
* @des Assets便
*
* */
public static void saveBitmapFromAssets(Context context, StarInfobean starInfoBean){
logoImgMap = new HashMap<>();
contentlogoImgMap = new HashMap<>();
List<StarInfobean.StarinfoBean> starList = starInfoBean.getStarinfo();
for (int i = 0; starList.size() > i; i++) {
String logoname = starList.get(i).getLogoname();
String filename = "xzlogo/"+logoname+".png";
Bitmap logoBm = getBitmapFromAssets(context, filename);
logoImgMap.put(logoname,logoBm);
String contentName = "xzcontentlogo/"+logoname+".png";
Bitmap bitmap = getBitmapFromAssets(context, contentName);
contentlogoImgMap.put(logoname,bitmap);
}
}
public static Map<String, Bitmap> getLogoImgMap() {
return logoImgMap;
}
public static Map<String, Bitmap> getContentlogoImgMap() {
return contentlogoImgMap;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#3fc0c0c0" />
<corners
android:topLeftRadius="20dp"
android:topRightRadius="20dp"
android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp" />
<stroke android:width="1dp" android:color="@color/white" />
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#7fc5bbbb" />
<corners
android:topLeftRadius="20dp"
android:topRightRadius="20dp"
android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp" />
<stroke android:width="1dp" android:color="@color/white" />
</shape>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#8fe45114" />
<corners
android:topLeftRadius="20dp"
android:topRightRadius="20dp"
android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp" />
<stroke android:width="1dp" android:color="@color/white" />
</shape>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#8fc0c0c0" />
<corners
android:topLeftRadius="20dp"
android:topRightRadius="20dp"
android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp" />
<stroke android:width="1dp" android:color="@color/white" />
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="20dp"/>
<stroke android:width="2dp" android:color="#B0E0E6"/>
<solid android:color="#FCE6C9"/>
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@mipmap/ib_luck_focus"></item>
<item android:state_checked="false" android:drawable="@mipmap/ib_luck_normal"></item>
<item android:drawable="@mipmap/ib_luck_normal"></item>
</selector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@mipmap/ib_me_focus"></item>
<item android:state_checked="false" android:drawable="@mipmap/ib_me_normal"></item>
<item android:drawable="@mipmap/ib_me_normal"></item>
</selector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@mipmap/ib_partner_focus"></item>
<item android:state_checked="false" android:drawable="@mipmap/ib_partner_normal"></item>
<item android:drawable="@mipmap/ib_partner_normal"></item>
</selector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@mipmap/ib_star_focus"></item>
<item android:state_checked="false" android:drawable="@mipmap/ib_star_normal"></item>
<item android:drawable="@mipmap/ib_star_normal"></item>
</selector>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#ff69b4"></item>
<item android:state_checked="false" android:color="#808080"></item>
<item android:color="#808080"></item>
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save