Commit b4a2140e7266c771444e644ffed29e16b03a597a
0 parents
Exists in
master
登录,注册 ,忘记密码,修改密码,更换手机号等。。界面
Showing
72 changed files
with
2581 additions
and
0 deletions
Show diff stats
.gitignore
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | +# 忽略 /CallTecher/app/build/ 目录下的所有文件 | |
| 2 | +CallTecher/app/build/ | |
| 3 | + | |
| 4 | +# 忽略 /CallTecher/.idea/ 目录下的所有文件 | |
| 5 | +CallTecher/.idea/ | |
| 6 | + | |
| 7 | +# 忽略 /CallTecher/.gradle/ 目录下的所有文件 | |
| 8 | +CallTecher/.gradle/ | |
| 9 | + | |
| 10 | +# 忽略 /CallTecher/build/ 目录下的所有文件 | |
| 11 | +CallTecher/build/ | |
| 12 | + | |
| 13 | +# 忽略 /CallTecher/ZBLibrary/build/ 目录下的所有文件 | |
| 14 | +CallTecher/ZBLibrary/build/ | |
| 15 | + | ... | ... |
PersonalCenter/.gitignore
PersonalCenter/.idea/compiler.xml
| ... | ... | @@ -0,0 +1,22 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project version="4"> | |
| 3 | + <component name="CompilerConfiguration"> | |
| 4 | + <resourceExtensions /> | |
| 5 | + <wildcardResourcePatterns> | |
| 6 | + <entry name="!?*.java" /> | |
| 7 | + <entry name="!?*.form" /> | |
| 8 | + <entry name="!?*.class" /> | |
| 9 | + <entry name="!?*.groovy" /> | |
| 10 | + <entry name="!?*.scala" /> | |
| 11 | + <entry name="!?*.flex" /> | |
| 12 | + <entry name="!?*.kt" /> | |
| 13 | + <entry name="!?*.clj" /> | |
| 14 | + <entry name="!?*.aj" /> | |
| 15 | + </wildcardResourcePatterns> | |
| 16 | + <annotationProcessing> | |
| 17 | + <profile default="true" name="Default" enabled="false"> | |
| 18 | + <processorPath useClasspath="true" /> | |
| 19 | + </profile> | |
| 20 | + </annotationProcessing> | |
| 21 | + </component> | |
| 22 | +</project> | |
| 0 | 23 | \ No newline at end of file | ... | ... |
PersonalCenter/.idea/copyright/profiles_settings.xml
PersonalCenter/.idea/gradle.xml
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project version="4"> | |
| 3 | + <component name="GradleSettings"> | |
| 4 | + <option name="linkedExternalProjectsSettings"> | |
| 5 | + <GradleProjectSettings> | |
| 6 | + <option name="distributionType" value="DEFAULT_WRAPPED" /> | |
| 7 | + <option name="externalProjectPath" value="$PROJECT_DIR$" /> | |
| 8 | + <option name="modules"> | |
| 9 | + <set> | |
| 10 | + <option value="$PROJECT_DIR$" /> | |
| 11 | + <option value="$PROJECT_DIR$/app" /> | |
| 12 | + </set> | |
| 13 | + </option> | |
| 14 | + <option name="resolveModulePerSourceSet" value="false" /> | |
| 15 | + </GradleProjectSettings> | |
| 16 | + </option> | |
| 17 | + </component> | |
| 18 | +</project> | |
| 0 | 19 | \ No newline at end of file | ... | ... |
PersonalCenter/.idea/misc.xml
| ... | ... | @@ -0,0 +1,62 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project version="4"> | |
| 3 | + <component name="EntryPointsManager"> | |
| 4 | + <entry_points version="2.0" /> | |
| 5 | + </component> | |
| 6 | + <component name="NullableNotNullManager"> | |
| 7 | + <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> | |
| 8 | + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> | |
| 9 | + <option name="myNullables"> | |
| 10 | + <value> | |
| 11 | + <list size="4"> | |
| 12 | + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> | |
| 13 | + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> | |
| 14 | + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> | |
| 15 | + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> | |
| 16 | + </list> | |
| 17 | + </value> | |
| 18 | + </option> | |
| 19 | + <option name="myNotNulls"> | |
| 20 | + <value> | |
| 21 | + <list size="4"> | |
| 22 | + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> | |
| 23 | + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> | |
| 24 | + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> | |
| 25 | + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> | |
| 26 | + </list> | |
| 27 | + </value> | |
| 28 | + </option> | |
| 29 | + </component> | |
| 30 | + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> | |
| 31 | + <OptionsSetting value="true" id="Add" /> | |
| 32 | + <OptionsSetting value="true" id="Remove" /> | |
| 33 | + <OptionsSetting value="true" id="Checkout" /> | |
| 34 | + <OptionsSetting value="true" id="Update" /> | |
| 35 | + <OptionsSetting value="true" id="Status" /> | |
| 36 | + <OptionsSetting value="true" id="Edit" /> | |
| 37 | + <ConfirmationsSetting value="0" id="Add" /> | |
| 38 | + <ConfirmationsSetting value="0" id="Remove" /> | |
| 39 | + </component> | |
| 40 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | |
| 41 | + <output url="file://$PROJECT_DIR$/build/classes" /> | |
| 42 | + </component> | |
| 43 | + <component name="ProjectType"> | |
| 44 | + <option name="id" value="Android" /> | |
| 45 | + </component> | |
| 46 | + <component name="masterDetails"> | |
| 47 | + <states> | |
| 48 | + <state key="ProjectJDKs.UI"> | |
| 49 | + <settings> | |
| 50 | + <last-edited>1.8</last-edited> | |
| 51 | + <splitter-proportions> | |
| 52 | + <option name="proportions"> | |
| 53 | + <list> | |
| 54 | + <option value="0.2" /> | |
| 55 | + </list> | |
| 56 | + </option> | |
| 57 | + </splitter-proportions> | |
| 58 | + </settings> | |
| 59 | + </state> | |
| 60 | + </states> | |
| 61 | + </component> | |
| 62 | +</project> | |
| 0 | 63 | \ No newline at end of file | ... | ... |
PersonalCenter/.idea/modules.xml
| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project version="4"> | |
| 3 | + <component name="ProjectModuleManager"> | |
| 4 | + <modules> | |
| 5 | + <module fileurl="file://$PROJECT_DIR$/PersonalCenter.iml" filepath="$PROJECT_DIR$/PersonalCenter.iml" /> | |
| 6 | + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> | |
| 7 | + </modules> | |
| 8 | + </component> | |
| 9 | +</project> | |
| 0 | 10 | \ No newline at end of file | ... | ... |
PersonalCenter/.idea/runConfigurations.xml
| ... | ... | @@ -0,0 +1,12 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project version="4"> | |
| 3 | + <component name="RunConfigurationProducerService"> | |
| 4 | + <option name="ignoredProducers"> | |
| 5 | + <set> | |
| 6 | + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> | |
| 7 | + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> | |
| 8 | + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> | |
| 9 | + </set> | |
| 10 | + </option> | |
| 11 | + </component> | |
| 12 | +</project> | |
| 0 | 13 | \ No newline at end of file | ... | ... |
PersonalCenter/app/.gitignore
| ... | ... | @@ -0,0 +1 @@ |
| 1 | +/build | ... | ... |
PersonalCenter/app/build.gradle
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +apply plugin: 'com.android.application' | |
| 2 | + | |
| 3 | +android { | |
| 4 | + compileSdkVersion 25 | |
| 5 | + buildToolsVersion "25.0.3" | |
| 6 | + defaultConfig { | |
| 7 | + applicationId "com.hjx.personalcenter" | |
| 8 | + minSdkVersion 9 | |
| 9 | + targetSdkVersion 25 | |
| 10 | + versionCode 1 | |
| 11 | + versionName "1.0" | |
| 12 | + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | |
| 13 | + } | |
| 14 | + buildTypes { | |
| 15 | + release { | |
| 16 | + minifyEnabled false | |
| 17 | + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
| 18 | + } | |
| 19 | + } | |
| 20 | +} | |
| 21 | + | |
| 22 | +dependencies { | |
| 23 | + compile fileTree(dir: 'libs', include: ['*.jar']) | |
| 24 | + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { | |
| 25 | + exclude group: 'com.android.support', module: 'support-annotations' | |
| 26 | + }) | |
| 27 | + compile 'com.android.support:appcompat-v7:25.3.1' | |
| 28 | + testCompile 'junit:junit:4.12' | |
| 29 | +} | ... | ... |
PersonalCenter/app/proguard-rules.pro
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +# Add project specific ProGuard rules here. | |
| 2 | +# By default, the flags in this file are appended to flags specified | |
| 3 | +# in C:\Users\h\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt | |
| 4 | +# You can edit the include path and order by changing the proguardFiles | |
| 5 | +# directive in build.gradle. | |
| 6 | +# | |
| 7 | +# For more details, see | |
| 8 | +# http://developer.android.com/guide/developing/tools/proguard.html | |
| 9 | + | |
| 10 | +# Add any project specific keep options here: | |
| 11 | + | |
| 12 | +# If your project uses WebView with JS, uncomment the following | |
| 13 | +# and specify the fully qualified class name to the JavaScript interface | |
| 14 | +# class: | |
| 15 | +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |
| 16 | +# public *; | |
| 17 | +#} | ... | ... |
PersonalCenter/app/src/androidTest/java/com/hjx/personalcenter/ExampleInstrumentedTest.java
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +package com.hjx.personalcenter; | |
| 2 | + | |
| 3 | +import android.content.Context; | |
| 4 | +import android.support.test.InstrumentationRegistry; | |
| 5 | +import android.support.test.runner.AndroidJUnit4; | |
| 6 | + | |
| 7 | +import org.junit.Test; | |
| 8 | +import org.junit.runner.RunWith; | |
| 9 | + | |
| 10 | +import static org.junit.Assert.*; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * Instrumentation test, which will execute on an Android device. | |
| 14 | + * | |
| 15 | + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | |
| 16 | + */ | |
| 17 | +@RunWith(AndroidJUnit4.class) | |
| 18 | +public class ExampleInstrumentedTest { | |
| 19 | + @Test | |
| 20 | + public void useAppContext() throws Exception { | |
| 21 | + // Context of the app under test. | |
| 22 | + Context appContext = InstrumentationRegistry.getTargetContext(); | |
| 23 | + | |
| 24 | + assertEquals("com.hjx.personalcenter", appContext.getPackageName()); | |
| 25 | + } | |
| 26 | +} | ... | ... |
PersonalCenter/app/src/main/AndroidManifest.xml
| ... | ... | @@ -0,0 +1,71 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + package="com.hjx.personalcenter"> | |
| 4 | + | |
| 5 | + <application | |
| 6 | + android:allowBackup="true" | |
| 7 | + android:icon="@mipmap/ic_launcher" | |
| 8 | + android:label="@string/app_name" | |
| 9 | + android:supportsRtl="true" | |
| 10 | + android:theme="@style/Theme.AppCompat.NoActionBar"> | |
| 11 | + <activity | |
| 12 | + android:name=".activity.MainActivity" | |
| 13 | + android:launchMode="singleTask" | |
| 14 | + android:screenOrientation="landscape"> | |
| 15 | + <intent-filter> | |
| 16 | + <action android:name="android.intent.action.MAIN" /> | |
| 17 | + | |
| 18 | + <category android:name="android.intent.category.LAUNCHER" /> | |
| 19 | + </intent-filter> | |
| 20 | + </activity> | |
| 21 | + <activity | |
| 22 | + android:name=".activity.LoginAndRegisterActivity" | |
| 23 | + android:launchMode="singleTask" | |
| 24 | + android:screenOrientation="landscape"> | |
| 25 | + | |
| 26 | + </activity> | |
| 27 | + <activity | |
| 28 | + android:name=".activity.ForgotPasswordActivity" | |
| 29 | + android:launchMode="singleTask" | |
| 30 | + android:screenOrientation="landscape"> | |
| 31 | + | |
| 32 | + </activity> | |
| 33 | + <activity | |
| 34 | + android:name=".activity.ChangePasswordActivity" | |
| 35 | + android:launchMode="singleTask" | |
| 36 | + android:screenOrientation="landscape"> | |
| 37 | + | |
| 38 | + </activity> | |
| 39 | + <activity | |
| 40 | + android:name=".activity.RegisterInfoActivity" | |
| 41 | + android:launchMode="singleTask" | |
| 42 | + android:screenOrientation="landscape"> | |
| 43 | + | |
| 44 | + </activity> | |
| 45 | + <activity | |
| 46 | + android:name=".activity.ElectronicCardValidationActivity" | |
| 47 | + android:launchMode="singleTask" | |
| 48 | + android:screenOrientation="landscape"> | |
| 49 | + | |
| 50 | + </activity> | |
| 51 | + <activity | |
| 52 | + android:name=".activity.ChangeBangDingActivity" | |
| 53 | + android:launchMode="singleTask" | |
| 54 | + android:screenOrientation="landscape"> | |
| 55 | + | |
| 56 | + </activity> | |
| 57 | + <activity | |
| 58 | + android:name=".activity.ChangeElectronicCardInfoActivity" | |
| 59 | + android:launchMode="singleTask" | |
| 60 | + android:screenOrientation="landscape"> | |
| 61 | + | |
| 62 | + </activity> | |
| 63 | + <activity | |
| 64 | + android:name=".activity.ChangeEletronicCardPhone" | |
| 65 | + android:launchMode="singleTask" | |
| 66 | + android:screenOrientation="landscape"> | |
| 67 | + | |
| 68 | + </activity> | |
| 69 | + </application> | |
| 70 | + | |
| 71 | +</manifest> | |
| 0 | 72 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ChangeBangDingActivity.java
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.os.Bundle; | |
| 5 | + | |
| 6 | +import com.hjx.personalcenter.R; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by h on 2017/8/9. | |
| 10 | + */ | |
| 11 | + | |
| 12 | +public class ChangeBangDingActivity extends Activity { | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_chage_binding); | |
| 17 | + } | |
| 18 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ChangeElectronicCardInfoActivity.java
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.os.Bundle; | |
| 5 | + | |
| 6 | +import com.hjx.personalcenter.R; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by h on 2017/8/9. | |
| 10 | + */ | |
| 11 | + | |
| 12 | +public class ChangeElectronicCardInfoActivity extends Activity{ | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_change_card_info); | |
| 17 | + } | |
| 18 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ChangeEletronicCardPhone.java
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.os.Bundle; | |
| 5 | + | |
| 6 | +import com.hjx.personalcenter.R; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by h on 2017/8/9. | |
| 10 | + */ | |
| 11 | + | |
| 12 | +public class ChangeEletronicCardPhone extends Activity { | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_electronicard_phone); | |
| 17 | + } | |
| 18 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ChangePasswordActivity.java
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.os.Bundle; | |
| 5 | + | |
| 6 | +import com.hjx.personalcenter.R; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by h on 2017/8/9. | |
| 10 | + */ | |
| 11 | + | |
| 12 | +public class ChangePasswordActivity extends Activity { | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_changepsword); | |
| 17 | + } | |
| 18 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ElectronicCardValidationActivity.java
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.os.Bundle; | |
| 5 | + | |
| 6 | +import com.hjx.personalcenter.R; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by h on 2017/8/9. | |
| 10 | + */ | |
| 11 | + | |
| 12 | +public class ElectronicCardValidationActivity extends Activity { | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_electroniccard_validation); | |
| 17 | + } | |
| 18 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ForgotPasswordActivity.java
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.os.Bundle; | |
| 5 | + | |
| 6 | +import com.hjx.personalcenter.R; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by h on 2017/8/9. | |
| 10 | + */ | |
| 11 | + | |
| 12 | +public class ForgotPasswordActivity extends Activity { | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_forgetpsword); | |
| 17 | + } | |
| 18 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/LoginAndRegisterActivity.java
| ... | ... | @@ -0,0 +1,72 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.os.Bundle; | |
| 4 | +import android.support.annotation.Nullable; | |
| 5 | +import android.support.v4.app.Fragment; | |
| 6 | +import android.support.v4.view.ViewPager; | |
| 7 | +import android.support.v7.app.AppCompatActivity; | |
| 8 | + | |
| 9 | +import com.hjx.personalcenter.R; | |
| 10 | +import com.hjx.personalcenter.adapter.LoginAndRegisterAdapter; | |
| 11 | +import com.hjx.personalcenter.fragment.RegisterFragment; | |
| 12 | +import com.hjx.personalcenter.fragment.LoginFragment; | |
| 13 | +import com.hjx.personalcenter.thirdparty.SlidingTabLayout; | |
| 14 | + | |
| 15 | +import java.util.ArrayList; | |
| 16 | +import java.util.Arrays; | |
| 17 | +import java.util.List; | |
| 18 | + | |
| 19 | +/** | |
| 20 | + * 登录和注册 熊巍 | |
| 21 | + * Created by h on 2017/8/8. | |
| 22 | + */ | |
| 23 | + | |
| 24 | +public class LoginAndRegisterActivity extends AppCompatActivity { | |
| 25 | + private ViewPager viewPager; | |
| 26 | + private SlidingTabLayout tableLayout; | |
| 27 | + private List<Fragment> loginlist; | |
| 28 | + private LoginAndRegisterAdapter logindapter; | |
| 29 | + private List<String> title = Arrays.asList("登录", "注册"); | |
| 30 | + | |
| 31 | + @Override | |
| 32 | + protected void onCreate(@Nullable Bundle savedInstanceState) { | |
| 33 | + super.onCreate(savedInstanceState); | |
| 34 | + setContentView(R.layout.activity_loginandregister); | |
| 35 | + initView(); | |
| 36 | + initData(); | |
| 37 | + setLister(); | |
| 38 | + } | |
| 39 | + | |
| 40 | + private void initView() { | |
| 41 | + viewPager = (ViewPager) findViewById(R.id.viewpager_login); | |
| 42 | + tableLayout = (SlidingTabLayout) findViewById(R.id.TabLayout_id); | |
| 43 | + } | |
| 44 | + | |
| 45 | + private void initData() { | |
| 46 | + loginlist = new ArrayList<>(); | |
| 47 | + for (int i = 0; i < title.size(); i++) { | |
| 48 | + if (title.get(i).equals("登录")) { | |
| 49 | + loginlist.add(LoginFragment.newInstance(i + 1)); | |
| 50 | + } else { | |
| 51 | + loginlist.add(RegisterFragment.newInstance(i + 1)); | |
| 52 | + } | |
| 53 | + } | |
| 54 | + | |
| 55 | + | |
| 56 | + //设置Tab上的标题 | |
| 57 | + tableLayout.setData(title); | |
| 58 | + //设置关联的ViewPager | |
| 59 | + tableLayout.setViewPager(viewPager, 0); | |
| 60 | + logindapter = new LoginAndRegisterAdapter(loginlist, getSupportFragmentManager()); | |
| 61 | + //给ViewPager设置适配器 | |
| 62 | + viewPager.setAdapter(logindapter); | |
| 63 | + //设置滑动时数据不丢失 | |
| 64 | + viewPager.setOffscreenPageLimit(1); | |
| 65 | + //将TabLayout和ViewPager关联起来。 | |
| 66 | + } | |
| 67 | + | |
| 68 | + private void setLister() { | |
| 69 | + } | |
| 70 | + | |
| 71 | + | |
| 72 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.content.Intent; | |
| 4 | +import android.support.v7.app.AppCompatActivity; | |
| 5 | +import android.os.Bundle; | |
| 6 | +import android.view.View; | |
| 7 | +import android.widget.TextView; | |
| 8 | + | |
| 9 | +import com.hjx.personalcenter.R; | |
| 10 | + | |
| 11 | +public class MainActivity extends AppCompatActivity { | |
| 12 | + TextView ssss; | |
| 13 | + @Override | |
| 14 | + protected void onCreate(Bundle savedInstanceState) { | |
| 15 | + super.onCreate(savedInstanceState); | |
| 16 | + setContentView(R.layout.activity_main); | |
| 17 | + ssss = (TextView) findViewById(R.id.ssss); | |
| 18 | + ssss.setOnClickListener(new View.OnClickListener() { | |
| 19 | + @Override | |
| 20 | + public void onClick(View v) { | |
| 21 | + Intent intent = new Intent(MainActivity.this,LoginAndRegisterActivity.class); | |
| 22 | + startActivity(intent); | |
| 23 | + } | |
| 24 | + }); | |
| 25 | + } | |
| 26 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java
| ... | ... | @@ -0,0 +1,84 @@ |
| 1 | +package com.hjx.personalcenter.activity; | |
| 2 | + | |
| 3 | +import android.app.Activity; | |
| 4 | +import android.app.AlertDialog; | |
| 5 | +import android.content.DialogInterface; | |
| 6 | +import android.os.Bundle; | |
| 7 | +import android.view.View; | |
| 8 | +import android.widget.Button; | |
| 9 | +import android.widget.EditText; | |
| 10 | +import android.widget.TextView; | |
| 11 | +import android.widget.Toast; | |
| 12 | + | |
| 13 | +import com.hjx.personalcenter.R; | |
| 14 | + | |
| 15 | +/**填写注册信息 熊巍 | |
| 16 | + * Created by h on 2017/8/9. | |
| 17 | + */ | |
| 18 | + | |
| 19 | +public class RegisterInfoActivity extends Activity implements View.OnClickListener { | |
| 20 | + private EditText et_username; | |
| 21 | + private TextView et_region,et_grade,et_school; | |
| 22 | + private Button btn_ok; | |
| 23 | + String[] items; | |
| 24 | + | |
| 25 | + @Override | |
| 26 | + protected void onCreate(Bundle savedInstanceState) { | |
| 27 | + super.onCreate(savedInstanceState); | |
| 28 | + setContentView(R.layout.activity_registerinfo); | |
| 29 | + initView(); | |
| 30 | + initData(); | |
| 31 | + initLister(); | |
| 32 | + } | |
| 33 | + | |
| 34 | + private void initView() { | |
| 35 | + et_username = (EditText) findViewById(R.id.et_username); | |
| 36 | + et_region = (TextView) findViewById(R.id.et_region); | |
| 37 | + et_grade = (TextView) findViewById(R.id.et_grade); | |
| 38 | + et_school = (TextView) findViewById(R.id.et_school); | |
| 39 | + btn_ok = (Button) findViewById(R.id.btn_ok); | |
| 40 | + | |
| 41 | + | |
| 42 | + } | |
| 43 | + | |
| 44 | + private void initData() { | |
| 45 | + items = new String[] { "魏", "蜀", "吴" }; | |
| 46 | + | |
| 47 | + } | |
| 48 | + | |
| 49 | + private void initLister() { | |
| 50 | + et_region.setOnClickListener(this); | |
| 51 | + et_grade.setOnClickListener(this); | |
| 52 | + et_school.setOnClickListener(this); | |
| 53 | + | |
| 54 | + | |
| 55 | + } | |
| 56 | + | |
| 57 | + @Override | |
| 58 | + public void onClick(View v) { | |
| 59 | + switch (v.getId()){ | |
| 60 | + case R.id.et_region: | |
| 61 | + break; | |
| 62 | + case R.id.et_grade: | |
| 63 | + choisegrade(); | |
| 64 | + break; | |
| 65 | + case R.id.et_school: | |
| 66 | + break; | |
| 67 | + case R.id.btn_ok: | |
| 68 | + break; | |
| 69 | + } | |
| 70 | + | |
| 71 | + } | |
| 72 | + | |
| 73 | + private void choisegrade() { | |
| 74 | + AlertDialog dialog = new AlertDialog.Builder(this) | |
| 75 | + .setTitle("选择年级") | |
| 76 | + .setItems(items, new DialogInterface.OnClickListener() { | |
| 77 | + @Override | |
| 78 | + public void onClick(DialogInterface dialog, int which) { | |
| 79 | + Toast.makeText(RegisterInfoActivity.this, items[which], Toast.LENGTH_SHORT).show(); | |
| 80 | + } | |
| 81 | + }).create(); | |
| 82 | + dialog.show(); | |
| 83 | + } | |
| 84 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/adapter/LoginAndRegisterAdapter.java
| ... | ... | @@ -0,0 +1,31 @@ |
| 1 | +package com.hjx.personalcenter.adapter; | |
| 2 | + | |
| 3 | +import android.support.v4.app.Fragment; | |
| 4 | +import android.support.v4.app.FragmentManager; | |
| 5 | +import android.support.v4.app.FragmentPagerAdapter; | |
| 6 | + | |
| 7 | +import java.util.List; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * Created by Administrator on 2016/11/7. | |
| 11 | + */ | |
| 12 | + | |
| 13 | +public class LoginAndRegisterAdapter extends FragmentPagerAdapter { | |
| 14 | + private List<Fragment> list; | |
| 15 | + | |
| 16 | + public LoginAndRegisterAdapter(List<Fragment> list, FragmentManager fragmentManager) { | |
| 17 | + super(fragmentManager); | |
| 18 | + this.list = list; | |
| 19 | + } | |
| 20 | + | |
| 21 | + @Override | |
| 22 | + public int getCount() { | |
| 23 | + return list.size(); | |
| 24 | + } | |
| 25 | + | |
| 26 | + @Override | |
| 27 | + public Fragment getItem(int position) { | |
| 28 | + return list.get(position); | |
| 29 | + } | |
| 30 | + | |
| 31 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/fragment/LoginFragment.java
| ... | ... | @@ -0,0 +1,71 @@ |
| 1 | +package com.hjx.personalcenter.fragment; | |
| 2 | + | |
| 3 | +import android.content.Intent; | |
| 4 | +import android.os.Bundle; | |
| 5 | +import android.support.annotation.Nullable; | |
| 6 | +import android.support.v4.app.Fragment; | |
| 7 | +import android.view.LayoutInflater; | |
| 8 | +import android.view.View; | |
| 9 | +import android.view.ViewGroup; | |
| 10 | +import android.widget.TextView; | |
| 11 | + | |
| 12 | +import com.hjx.personalcenter.R; | |
| 13 | +import com.hjx.personalcenter.activity.ForgotPasswordActivity; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * 登录 | |
| 17 | + * Created by h on 2017/8/8. | |
| 18 | + */ | |
| 19 | + | |
| 20 | +public class LoginFragment extends Fragment implements View.OnClickListener { | |
| 21 | + private View mView; | |
| 22 | + private int type; | |
| 23 | + private TextView tv_forget_pwd; | |
| 24 | + public static String TABLAYOUT_FRAGMENT = "tab_fragment"; | |
| 25 | + | |
| 26 | + public static LoginFragment newInstance(int type) { | |
| 27 | + LoginFragment fragment = new LoginFragment(); | |
| 28 | + Bundle bundle = new Bundle(); | |
| 29 | + bundle.putSerializable(TABLAYOUT_FRAGMENT, type); | |
| 30 | + fragment.setArguments(bundle); | |
| 31 | + return fragment; | |
| 32 | + | |
| 33 | + } | |
| 34 | + | |
| 35 | + @Override | |
| 36 | + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | |
| 37 | + if (mView == null) { | |
| 38 | + mView = inflater.inflate(R.layout.fragment_loginandregister_login, container, false); | |
| 39 | + initView(mView); | |
| 40 | + initData(); | |
| 41 | + setLister(); | |
| 42 | + | |
| 43 | + | |
| 44 | + } | |
| 45 | + return mView; | |
| 46 | + } | |
| 47 | + //初始化 | |
| 48 | + private void initView(View mView) { | |
| 49 | + tv_forget_pwd = (TextView) mView.findViewById(R.id.tv_forget_pwd); | |
| 50 | + | |
| 51 | + } | |
| 52 | + private void initData() { | |
| 53 | + } | |
| 54 | + private void setLister() { | |
| 55 | + tv_forget_pwd.setOnClickListener(this); | |
| 56 | + } | |
| 57 | + | |
| 58 | + | |
| 59 | + @Override | |
| 60 | + public void onClick(View v) { | |
| 61 | + switch (v.getId()){ | |
| 62 | + case R.id.tv_forget_pwd: | |
| 63 | + Intent intent = new Intent(); | |
| 64 | + intent.setClass(getActivity(),ForgotPasswordActivity.class); | |
| 65 | + startActivity(intent); | |
| 66 | + getActivity().overridePendingTransition(R.anim.rightin, R.anim.rightout); | |
| 67 | + break; | |
| 68 | + } | |
| 69 | + | |
| 70 | + } | |
| 71 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/fragment/RegisterFragment.java
| ... | ... | @@ -0,0 +1,70 @@ |
| 1 | +package com.hjx.personalcenter.fragment; | |
| 2 | + | |
| 3 | +import android.content.Intent; | |
| 4 | +import android.os.Bundle; | |
| 5 | +import android.support.annotation.Nullable; | |
| 6 | +import android.support.v4.app.Fragment; | |
| 7 | +import android.view.LayoutInflater; | |
| 8 | +import android.view.View; | |
| 9 | +import android.view.ViewGroup; | |
| 10 | +import android.widget.Button; | |
| 11 | + | |
| 12 | +import com.hjx.personalcenter.R; | |
| 13 | +import com.hjx.personalcenter.activity.RegisterInfoActivity; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * 注册 | |
| 17 | + * Created by Administrator on 2016/11/7. | |
| 18 | + */ | |
| 19 | + | |
| 20 | +public class RegisterFragment extends Fragment implements View.OnClickListener { | |
| 21 | + private View mView; | |
| 22 | + private Button btn_register; | |
| 23 | + private int type; | |
| 24 | + public static String TABLAYOUT_FRAGMENT = "tab_fragment"; | |
| 25 | + | |
| 26 | + public static RegisterFragment newInstance(int type) { | |
| 27 | + RegisterFragment fragment = new RegisterFragment(); | |
| 28 | + Bundle bundle = new Bundle(); | |
| 29 | + bundle.putSerializable(TABLAYOUT_FRAGMENT, type); | |
| 30 | + fragment.setArguments(bundle); | |
| 31 | + return fragment; | |
| 32 | + | |
| 33 | + } | |
| 34 | + @Override | |
| 35 | + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | |
| 36 | + if (mView == null) { | |
| 37 | + mView = inflater.inflate(R.layout.fragment_loginandregister_register, container, false); | |
| 38 | + initView(mView); | |
| 39 | + initData(); | |
| 40 | + setLister(); | |
| 41 | + | |
| 42 | + | |
| 43 | + } | |
| 44 | + return mView; | |
| 45 | + } | |
| 46 | + | |
| 47 | + private void initView(View mView) { | |
| 48 | + btn_register = (Button) mView.findViewById(R.id.btn_register); | |
| 49 | + | |
| 50 | + } | |
| 51 | + private void initData() { | |
| 52 | + } | |
| 53 | + private void setLister() { | |
| 54 | + btn_register.setOnClickListener(this); | |
| 55 | + } | |
| 56 | + | |
| 57 | + | |
| 58 | + @Override | |
| 59 | + public void onClick(View v) { | |
| 60 | + switch (v.getId()){ | |
| 61 | + case R.id.btn_register: | |
| 62 | + Intent intent = new Intent(); | |
| 63 | + intent.setClass(getActivity(),RegisterInfoActivity.class); | |
| 64 | + startActivity(intent); | |
| 65 | + getActivity().overridePendingTransition(R.anim.rightin, R.anim.rightout); | |
| 66 | + break; | |
| 67 | + } | |
| 68 | + | |
| 69 | + } | |
| 70 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/thirdparty/SlidingTabLayout.java
| ... | ... | @@ -0,0 +1,304 @@ |
| 1 | +package com.hjx.personalcenter.thirdparty; | |
| 2 | + | |
| 3 | +import android.content.Context; | |
| 4 | +import android.graphics.Bitmap; | |
| 5 | +import android.graphics.BitmapFactory; | |
| 6 | +import android.graphics.Canvas; | |
| 7 | +import android.support.v4.view.ViewPager; | |
| 8 | +import android.support.v4.view.ViewPager.OnPageChangeListener; | |
| 9 | +import android.util.AttributeSet; | |
| 10 | +import android.util.DisplayMetrics; | |
| 11 | +import android.util.TypedValue; | |
| 12 | +import android.view.Gravity; | |
| 13 | +import android.view.View; | |
| 14 | +import android.view.WindowManager; | |
| 15 | +import android.widget.HorizontalScrollView; | |
| 16 | +import android.widget.LinearLayout; | |
| 17 | +import android.widget.TextView; | |
| 18 | + | |
| 19 | +import com.hjx.personalcenter.R; | |
| 20 | + | |
| 21 | +import java.util.List; | |
| 22 | + | |
| 23 | +/** | |
| 24 | + * 首页滑动条 | |
| 25 | + * | |
| 26 | + * @author gaok | |
| 27 | + * @date 2017/7/6 | |
| 28 | + */ | |
| 29 | +public class SlidingTabLayout extends HorizontalScrollView { | |
| 30 | + private Context mContext; | |
| 31 | + private int selection = 0; | |
| 32 | + /** | |
| 33 | + * tab容器 | |
| 34 | + */ | |
| 35 | + private LinearLayout mItemsLayout; | |
| 36 | + /** | |
| 37 | + * 指示器 | |
| 38 | + */ | |
| 39 | + private Bitmap mSlideIcon; | |
| 40 | + /** | |
| 41 | + * 指示器初始X偏移量 | |
| 42 | + */ | |
| 43 | + private int mInitTranslationX; | |
| 44 | + /** | |
| 45 | + * 指示器初始Y偏移量 | |
| 46 | + */ | |
| 47 | + private int mInitTranslationY; | |
| 48 | + /** | |
| 49 | + * 滑动过程中指示器的水平偏移量 | |
| 50 | + */ | |
| 51 | + private int mTranslationX; | |
| 52 | + /** | |
| 53 | + * tab总数 | |
| 54 | + */ | |
| 55 | + private int mTotalItemsCount; | |
| 56 | + /** | |
| 57 | + * 指示器绘制数据的初始化标志 | |
| 58 | + */ | |
| 59 | + private boolean isFirstTime = true; | |
| 60 | + /** | |
| 61 | + * 页面可见的tab数量,默认4个 | |
| 62 | + */ | |
| 63 | + private int VISIBLE_TAB_COUNT = 2; | |
| 64 | + /** | |
| 65 | + * 移动到倒数第几个,容器开始滑动 | |
| 66 | + */ | |
| 67 | + private int START_SCROLL = 2; | |
| 68 | + /** | |
| 69 | + * 标题正常时的颜色 | |
| 70 | + */ | |
| 71 | + private static final int COLOR_TEXT_NORMAL = 0xFF666666; | |
| 72 | + /** | |
| 73 | + * 标题选中时的颜色 | |
| 74 | + */ | |
| 75 | + private static final int COLOR_TEXT_HIGHLIGHTCOLOR = 0xFF21c4ff; | |
| 76 | + private ViewPager mViewPager; | |
| 77 | + private List<String> mTabTitles; | |
| 78 | + private int mTabVisibleCount = VISIBLE_TAB_COUNT; | |
| 79 | + private OnPageChangeListener onPageChangeListener; | |
| 80 | + | |
| 81 | + public SlidingTabLayout(Context context) { | |
| 82 | + this(context, null); | |
| 83 | + } | |
| 84 | + | |
| 85 | + public SlidingTabLayout(Context context, AttributeSet attrs) { | |
| 86 | + super(context, attrs); | |
| 87 | + this.mContext = context; | |
| 88 | + this.mSlideIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.blank); | |
| 89 | + this.mItemsLayout = new LinearLayout(context); | |
| 90 | + initTabStripParams(); | |
| 91 | + addView(mItemsLayout, 0, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); | |
| 92 | + } | |
| 93 | + | |
| 94 | + public void scroll(int position, float positionOffset) { | |
| 95 | + int tabWidth = mItemsLayout.getChildAt(position).getWidth(); | |
| 96 | + mTranslationX = (int) ((position + positionOffset) * tabWidth); | |
| 97 | + | |
| 98 | + // 容器滚动,当移动到倒数最后一个的时候,开始滚动 | |
| 99 | + if (positionOffset > 0 && position >= (VISIBLE_TAB_COUNT - START_SCROLL) && mTotalItemsCount > VISIBLE_TAB_COUNT) { | |
| 100 | + if (VISIBLE_TAB_COUNT != 1) { | |
| 101 | + //注意这里是整体滑动,使得tabs跟指示器保持相对静止 | |
| 102 | + this.scrollTo((position - (VISIBLE_TAB_COUNT - START_SCROLL)) * tabWidth + (int) (tabWidth * positionOffset), 0); | |
| 103 | + } else | |
| 104 | + // 为count为1时 的特殊处理 | |
| 105 | + { | |
| 106 | + this.scrollTo(position * tabWidth + (int) (tabWidth * positionOffset), 0); | |
| 107 | + } | |
| 108 | + } | |
| 109 | + invalidate(); | |
| 110 | + } | |
| 111 | + | |
| 112 | + private void initTabStripParams() { | |
| 113 | + mItemsLayout.setClipChildren(false); | |
| 114 | + mItemsLayout.setClipToPadding(false); | |
| 115 | + mItemsLayout.setGravity(Gravity.BOTTOM); | |
| 116 | + mItemsLayout.setPadding(0, 0, 0, 0); | |
| 117 | + } | |
| 118 | + | |
| 119 | + /** | |
| 120 | + * 绘制指示器 | |
| 121 | + */ | |
| 122 | + @Override | |
| 123 | + protected void dispatchDraw(Canvas canvas) { | |
| 124 | + canvas.save(); | |
| 125 | + // 平移到正确的位置 | |
| 126 | + canvas.translate(mInitTranslationX + mTranslationX, this.mInitTranslationY);//修正tabs的平移量 | |
| 127 | + canvas.drawBitmap(this.mSlideIcon, 0, 0, null); | |
| 128 | + canvas.restore(); | |
| 129 | + super.dispatchDraw(canvas); | |
| 130 | + } | |
| 131 | + | |
| 132 | + @Override | |
| 133 | + protected void onLayout(boolean changed, int l, int t, int r, int b) { | |
| 134 | + super.onLayout(changed, l, t, r, b); | |
| 135 | + if (isFirstTime && (mTotalItemsCount > 0) && getItemView(this.selection) != null) { | |
| 136 | + View currentItemView = getItemView(this.selection); | |
| 137 | + this.mInitTranslationX = (currentItemView.getLeft() + currentItemView.getWidth() / 2 - this.mSlideIcon.getWidth() / 2); | |
| 138 | + this.mInitTranslationY = (b - t - this.mSlideIcon.getHeight()); | |
| 139 | + isFirstTime = false; | |
| 140 | + } | |
| 141 | + } | |
| 142 | + | |
| 143 | + public void setVisibleTabCount(int VISIBLE_TAB_COUNT) { | |
| 144 | + this.VISIBLE_TAB_COUNT = VISIBLE_TAB_COUNT; | |
| 145 | + } | |
| 146 | + | |
| 147 | + public void setStartScroll(int START_SCROLL) { | |
| 148 | + this.START_SCROLL = START_SCROLL; | |
| 149 | + } | |
| 150 | + | |
| 151 | + public View getItemView(int itemPosition) { | |
| 152 | + if ((itemPosition >= 0) && (itemPosition < this.mTotalItemsCount)) { | |
| 153 | + return this.mItemsLayout.getChildAt(itemPosition); | |
| 154 | + } | |
| 155 | + return null; | |
| 156 | + } | |
| 157 | + | |
| 158 | + public void setData(List<String> datas) { | |
| 159 | + mTotalItemsCount = 0; | |
| 160 | + // 如果传入的list有值,则移除布局文件中设置的view | |
| 161 | + if (datas != null && datas.size() > 0) { | |
| 162 | + this.mItemsLayout.removeAllViews(); | |
| 163 | + this.mTabTitles = datas; | |
| 164 | + | |
| 165 | + for (String title : mTabTitles) { | |
| 166 | + // 添加view | |
| 167 | + this.mItemsLayout.addView(generateTextView(title)); | |
| 168 | + mTotalItemsCount++; | |
| 169 | + } | |
| 170 | + // 设置item的click事件 | |
| 171 | + setItemClickEvent(); | |
| 172 | + } | |
| 173 | + } | |
| 174 | + | |
| 175 | + /** | |
| 176 | + * 对外的ViewPager的回调接口 | |
| 177 | + * | |
| 178 | + * @author zhy | |
| 179 | + */ | |
| 180 | + public interface PageChangeListener { | |
| 181 | + void onPageScrolled(int position, float positionOffset, int positionOffsetPixels); | |
| 182 | + | |
| 183 | + void onPageSelected(int position); | |
| 184 | + | |
| 185 | + void onPageScrollStateChanged(int state); | |
| 186 | + } | |
| 187 | + | |
| 188 | + // 设置关联的ViewPager | |
| 189 | + public void setViewPager(ViewPager mViewPager, int pos) { | |
| 190 | + this.mViewPager = mViewPager; | |
| 191 | + | |
| 192 | + mViewPager.addOnPageChangeListener(new OnPageChangeListener() { | |
| 193 | + @Override | |
| 194 | + public void onPageSelected(int position) { | |
| 195 | + // 设置字体颜色高亮 | |
| 196 | + resetTextViewColor(); | |
| 197 | + highLightTextView(position); | |
| 198 | + | |
| 199 | + // 回调 | |
| 200 | + if (onPageChangeListener != null) { | |
| 201 | + onPageChangeListener.onPageSelected(position); | |
| 202 | + } | |
| 203 | + } | |
| 204 | + | |
| 205 | + @Override | |
| 206 | + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { | |
| 207 | + // 滚动 | |
| 208 | + scroll(position, positionOffset); | |
| 209 | + | |
| 210 | + // 回调 | |
| 211 | + if (onPageChangeListener != null) { | |
| 212 | + onPageChangeListener.onPageScrolled(position, positionOffset, positionOffsetPixels); | |
| 213 | + } | |
| 214 | + | |
| 215 | + } | |
| 216 | + | |
| 217 | + @Override | |
| 218 | + public void onPageScrollStateChanged(int state) { | |
| 219 | + // 回调 | |
| 220 | + if (onPageChangeListener != null) { | |
| 221 | + onPageChangeListener.onPageScrollStateChanged(state); | |
| 222 | + } | |
| 223 | + | |
| 224 | + } | |
| 225 | + }); | |
| 226 | + // 设置当前页 | |
| 227 | + mViewPager.setCurrentItem(pos); | |
| 228 | + // 高亮 | |
| 229 | + highLightTextView(pos); | |
| 230 | + } | |
| 231 | + | |
| 232 | + /** | |
| 233 | + * 重置文本颜色 | |
| 234 | + */ | |
| 235 | + private void resetTextViewColor() { | |
| 236 | + for (int i = 0; i < mItemsLayout.getChildCount(); i++) { | |
| 237 | + View view = mItemsLayout.getChildAt(i); | |
| 238 | + if (view instanceof TextView) { | |
| 239 | + ((TextView) view).setTextColor(COLOR_TEXT_NORMAL); | |
| 240 | + } | |
| 241 | + } | |
| 242 | + } | |
| 243 | + | |
| 244 | + /** | |
| 245 | + * 高亮文本 | |
| 246 | + * | |
| 247 | + * @param position | |
| 248 | + */ | |
| 249 | + protected void highLightTextView(int position) { | |
| 250 | + View view = mItemsLayout.getChildAt(position); | |
| 251 | + if (view instanceof TextView) { | |
| 252 | + ((TextView) view).setTextColor(COLOR_TEXT_HIGHLIGHTCOLOR); | |
| 253 | + } | |
| 254 | + | |
| 255 | + } | |
| 256 | + | |
| 257 | + private void setItemClickEvent() { | |
| 258 | + int cCount = mItemsLayout.getChildCount(); | |
| 259 | + for (int i = 0; i < cCount; i++) { | |
| 260 | + final int j = i; | |
| 261 | + View view = mItemsLayout.getChildAt(i); | |
| 262 | + view.setOnClickListener(new OnClickListener() { | |
| 263 | + @Override | |
| 264 | + public void onClick(View v) { | |
| 265 | + mViewPager.setCurrentItem(j); | |
| 266 | + } | |
| 267 | + }); | |
| 268 | + } | |
| 269 | + } | |
| 270 | + | |
| 271 | + /** | |
| 272 | + * 根据标题生成我们的TextView | |
| 273 | + * | |
| 274 | + * @param text | |
| 275 | + * @return | |
| 276 | + */ | |
| 277 | + private TextView generateTextView(String text) { | |
| 278 | + TextView tv = new TextView(getContext()); | |
| 279 | + LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); | |
| 280 | + lp.width = getScreenWidth() / mTabVisibleCount; | |
| 281 | + tv.setGravity(Gravity.CENTER); | |
| 282 | + tv.setTextColor(COLOR_TEXT_NORMAL); | |
| 283 | + tv.setText(text); | |
| 284 | + tv.setTextSize(TypedValue.TYPE_NULL, 34); | |
| 285 | + tv.setLayoutParams(lp); | |
| 286 | + return tv; | |
| 287 | + } | |
| 288 | + | |
| 289 | + /** | |
| 290 | + * 获得屏幕的宽度 | |
| 291 | + * | |
| 292 | + * @return | |
| 293 | + */ | |
| 294 | + public int getScreenWidth() { | |
| 295 | + WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); | |
| 296 | + DisplayMetrics outMetrics = new DisplayMetrics(); | |
| 297 | + wm.getDefaultDisplay().getMetrics(outMetrics); | |
| 298 | + return outMetrics.widthPixels; | |
| 299 | + } | |
| 300 | + | |
| 301 | + public LinearLayout getLinearLayout() { | |
| 302 | + return mItemsLayout; | |
| 303 | + } | |
| 304 | +} | |
| 0 | 305 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/anim/rightin.xml
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<set xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:interpolator="@android:anim/decelerate_interpolator"> | |
| 4 | + <scale android:fromXScale="0.1" android:toXScale="1.0" | |
| 5 | + android:fromYScale="0.1" android:toYScale="1.0" | |
| 6 | + android:pivotX="50%p" android:pivotY="50%p" | |
| 7 | + android:duration="300" /> | |
| 8 | + <!-- 这里为了看到动画演示效果,把动画持续时间设为3秒 --> | |
| 9 | + <alpha | |
| 10 | + android:fromAlpha="0.1" | |
| 11 | + android:toAlpha="1.0" | |
| 12 | + android:duration="300" /> | |
| 13 | +</set> | |
| 0 | 14 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/anim/rightout.xml
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<set xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:interpolator="@android:anim/decelerate_interpolator" | |
| 4 | + android:zAdjustment="top"> | |
| 5 | + <scale android:fromXScale="1.0" android:toXScale=".5" | |
| 6 | + android:fromYScale="1.0" android:toYScale=".5" | |
| 7 | + android:pivotX="50%p" android:pivotY="50%p" | |
| 8 | + android:duration="300" /> | |
| 9 | + <!-- 系统内置的动画持续时间 | |
| 10 | + android:duration="@android:integer/config_mediumAnimTime" | |
| 11 | + --> | |
| 12 | + <alpha android:fromAlpha="1.0" android:toAlpha="0" | |
| 13 | + android:duration="300"/> | |
| 14 | +</set> | |
| 0 | 15 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/color/btn_text_color.xml
| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | |
| 3 | + | |
| 4 | + <item android:state_selected="true" android:color="@color/login_text_blue"/> | |
| 5 | + <item android:state_focused="true" android:color="@color/login_text_blue"/> | |
| 6 | + <item android:state_pressed="true" android:color="@color/login_text_blue"/> | |
| 7 | + <item android:color="@color/login_text_black"/> | |
| 8 | + | |
| 9 | +</selector> | |
| 0 | 10 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/blue_btn_bg_normal.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="@color/login_text_blue" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="8dp" | |
| 9 | + android:bottomRightRadius="8dp" | |
| 10 | + android:topLeftRadius="8dp" | |
| 11 | + android:topRightRadius="8dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="1px" | |
| 15 | + android:color="@color/login_text_blue" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/blue_btn_bg_pressed.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="@color/login_text_blue" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="8dp" | |
| 9 | + android:bottomRightRadius="8dp" | |
| 10 | + android:topLeftRadius="8dp" | |
| 11 | + android:topRightRadius="8dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="1px" | |
| 15 | + android:color="@color/login_text_blue" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/btn_rect_normal.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="#ffffffff" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="0dp" | |
| 9 | + android:bottomRightRadius="8dp" | |
| 10 | + android:topLeftRadius="0dp" | |
| 11 | + android:topRightRadius="8dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="2px" | |
| 15 | + android:color="@color/login_edittext_normal" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/edittext_input_normal.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="#ffffffff" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="8dp" | |
| 9 | + android:bottomRightRadius="8dp" | |
| 10 | + android:topLeftRadius="8dp" | |
| 11 | + android:topRightRadius="8dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="2px" | |
| 15 | + android:color="@color/login_edittext_normal" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/edittext_input_pressed.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="#ffffffff" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="8dp" | |
| 9 | + android:bottomRightRadius="8dp" | |
| 10 | + android:topLeftRadius="8dp" | |
| 11 | + android:topRightRadius="8dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="2px" | |
| 15 | + android:color="@color/login_edittext_pressed" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/edittext_rect_input_normal.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="#ffffffff" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="8dp" | |
| 9 | + android:bottomRightRadius="0dp" | |
| 10 | + android:topLeftRadius="8dp" | |
| 11 | + android:topRightRadius="0dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="2px" | |
| 15 | + android:color="@color/login_edittext_normal" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/edittext_rect_input_pressed.xml
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:shape="rectangle" > | |
| 4 | + | |
| 5 | + <solid android:color="#ffffffff" /> | |
| 6 | + | |
| 7 | + <corners | |
| 8 | + android:bottomLeftRadius="8dp" | |
| 9 | + android:bottomRightRadius="0dp" | |
| 10 | + android:topLeftRadius="8dp" | |
| 11 | + android:topRightRadius="0dp" /> | |
| 12 | + | |
| 13 | + <stroke | |
| 14 | + android:width="2px" | |
| 15 | + android:color="@color/login_edittext_pressed" /> | |
| 16 | + | |
| 17 | +</shape> | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/selector_blue_btn_bg.xml
| ... | ... | @@ -0,0 +1,6 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | |
| 3 | + <item android:drawable="@drawable/blue_btn_bg_pressed" android:state_pressed="true"/> | |
| 4 | + <item android:drawable="@drawable/blue_btn_bg_pressed" android:state_checked="true"/> | |
| 5 | + <item android:drawable="@drawable/blue_btn_bg_normal"/> | |
| 6 | +</selector> | |
| 0 | 7 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/selector_edittext_bg.xml
| ... | ... | @@ -0,0 +1,6 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | |
| 3 | + <item android:drawable="@drawable/edittext_input_pressed" android:state_pressed="true"/> | |
| 4 | + <item android:drawable="@drawable/edittext_input_pressed" android:state_focused="true"/> | |
| 5 | + <item android:drawable="@drawable/edittext_input_normal"/> | |
| 6 | +</selector> | |
| 0 | 7 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/drawable/selector_edittext_rect_bg.xml
| ... | ... | @@ -0,0 +1,6 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | |
| 3 | + <item android:drawable="@drawable/edittext_rect_input_pressed" android:state_pressed="true"/> | |
| 4 | + <item android:drawable="@drawable/edittext_rect_input_pressed" android:state_focused="true"/> | |
| 5 | + <item android:drawable="@drawable/edittext_rect_input_normal"/> | |
| 6 | +</selector> | |
| 0 | 7 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_chage_binding.xml
| ... | ... | @@ -0,0 +1,97 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical"> | |
| 7 | + <RelativeLayout | |
| 8 | + android:id="@+id/title" | |
| 9 | + android:layout_width="match_parent" | |
| 10 | + android:layout_height="wrap_content" | |
| 11 | + android:background="@color/login_text_blue" | |
| 12 | + android:minHeight="50dp" > | |
| 13 | + | |
| 14 | + <ImageView | |
| 15 | + android:id="@+id/cancel" | |
| 16 | + android:layout_width="wrap_content" | |
| 17 | + android:layout_height="wrap_content" | |
| 18 | + android:layout_centerVertical="true" | |
| 19 | + android:paddingLeft="20dp" | |
| 20 | + android:paddingRight="20dp" | |
| 21 | + android:src="@mipmap/title_back" /> | |
| 22 | + | |
| 23 | + <TextView | |
| 24 | + android:id="@+id/menu_title" | |
| 25 | + android:layout_width="wrap_content" | |
| 26 | + android:layout_height="wrap_content" | |
| 27 | + android:layout_centerInParent="true" | |
| 28 | + android:text="@string/string_electroniccard_change_bangding" | |
| 29 | + android:textColor="@android:color/white" | |
| 30 | + android:textSize="22sp" /> | |
| 31 | + </RelativeLayout> | |
| 32 | + <RelativeLayout | |
| 33 | + android:layout_width="match_parent" | |
| 34 | + android:layout_height="match_parent" | |
| 35 | + android:layout_below="@id/title" | |
| 36 | + android:background="#ffffffff" | |
| 37 | + android:orientation="vertical" | |
| 38 | + android:paddingLeft="250dp" | |
| 39 | + android:paddingRight="250dp" > | |
| 40 | + | |
| 41 | + <EditText | |
| 42 | + android:id="@+id/et_phonenumber" | |
| 43 | + style="@style/login_register_edit_style" | |
| 44 | + android:layout_marginTop="150dp" | |
| 45 | + android:hint="手机号" | |
| 46 | + android:inputType="phone" /> | |
| 47 | + | |
| 48 | + <TextView | |
| 49 | + android:id="@+id/phonenumber_error_hint" | |
| 50 | + style="@style/registererrhint_style" | |
| 51 | + android:layout_below="@id/et_phonenumber" /> | |
| 52 | + | |
| 53 | + <LinearLayout | |
| 54 | + android:id="@+id/rl_authcode" | |
| 55 | + android:layout_width="match_parent" | |
| 56 | + android:layout_height="wrap_content" | |
| 57 | + android:layout_below="@id/et_phonenumber" | |
| 58 | + android:layout_marginTop="30dp" | |
| 59 | + android:orientation="horizontal"> | |
| 60 | + | |
| 61 | + <EditText | |
| 62 | + android:id="@+id/et_authcode" | |
| 63 | + style="@style/login_register_edit_rect_style" | |
| 64 | + android:layout_marginRight="-4px" | |
| 65 | + android:layout_weight="1" | |
| 66 | + android:hint="验证码" | |
| 67 | + android:numeric="integer" /> | |
| 68 | + | |
| 69 | + <Button | |
| 70 | + android:id="@+id/btn_authcode" | |
| 71 | + style="@style/login_register_btn_authcode_rect_style" | |
| 72 | + android:layout_marginLeft="0px" | |
| 73 | + android:layout_marginTop="0px" | |
| 74 | + android:layout_weight="2" | |
| 75 | + android:text="获取验证码" | |
| 76 | + android:textColor="@color/btn_text_color" /> | |
| 77 | + </LinearLayout> | |
| 78 | + | |
| 79 | + <TextView | |
| 80 | + android:id="@+id/authcode_error_hint" | |
| 81 | + style="@style/registererrhint_style" | |
| 82 | + android:layout_below="@id/rl_authcode" /> | |
| 83 | + | |
| 84 | + <TextView | |
| 85 | + android:id="@+id/password_error_hint" | |
| 86 | + style="@style/registererrhint_style" | |
| 87 | + android:layout_below="@id/rl_authcode" /> | |
| 88 | + | |
| 89 | + <Button | |
| 90 | + android:id="@+id/btn_register" | |
| 91 | + style="@style/button_login_register_style" | |
| 92 | + android:layout_below="@id/rl_authcode" | |
| 93 | + android:layout_marginTop="30dp" | |
| 94 | + android:text="@string/ok" /> | |
| 95 | + </RelativeLayout> | |
| 96 | + | |
| 97 | +</RelativeLayout> | |
| 0 | 98 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_change_card_info.xml
| ... | ... | @@ -0,0 +1,130 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical"> | |
| 7 | + | |
| 8 | + <RelativeLayout | |
| 9 | + android:id="@+id/title" | |
| 10 | + android:layout_width="match_parent" | |
| 11 | + android:layout_height="wrap_content" | |
| 12 | + android:background="@color/login_text_blue" | |
| 13 | + android:minHeight="50dp"> | |
| 14 | + | |
| 15 | + <ImageView | |
| 16 | + android:id="@+id/cancel" | |
| 17 | + android:layout_width="wrap_content" | |
| 18 | + android:layout_height="wrap_content" | |
| 19 | + android:layout_centerVertical="true" | |
| 20 | + android:paddingLeft="20dp" | |
| 21 | + android:paddingRight="20dp" | |
| 22 | + android:src="@mipmap/title_back" /> | |
| 23 | + | |
| 24 | + <TextView | |
| 25 | + android:id="@+id/menu_title" | |
| 26 | + android:layout_width="wrap_content" | |
| 27 | + android:layout_height="wrap_content" | |
| 28 | + android:layout_centerInParent="true" | |
| 29 | + android:text="@string/string_electroniccard_info_change" | |
| 30 | + android:textColor="@android:color/white" | |
| 31 | + android:textSize="22sp" /> | |
| 32 | + </RelativeLayout> | |
| 33 | + | |
| 34 | + <RelativeLayout | |
| 35 | + android:layout_width="match_parent" | |
| 36 | + android:layout_height="match_parent" | |
| 37 | + android:layout_below="@id/title" | |
| 38 | + android:background="#ffffffff" | |
| 39 | + android:orientation="vertical" | |
| 40 | + android:paddingLeft="250dp" | |
| 41 | + android:paddingRight="250dp"> | |
| 42 | + | |
| 43 | + <EditText | |
| 44 | + android:id="@+id/et_phonenumber" | |
| 45 | + style="@style/login_register_edit_style" | |
| 46 | + android:layout_marginTop="150dp" | |
| 47 | + android:hint="手机号" | |
| 48 | + android:inputType="phone" /> | |
| 49 | + | |
| 50 | + <TextView | |
| 51 | + android:id="@+id/phonenumber_error_hint" | |
| 52 | + style="@style/registererrhint_style" | |
| 53 | + android:layout_below="@id/et_phonenumber" /> | |
| 54 | + | |
| 55 | + <LinearLayout | |
| 56 | + android:id="@+id/rl_authcode" | |
| 57 | + android:layout_width="match_parent" | |
| 58 | + android:layout_height="wrap_content" | |
| 59 | + android:layout_below="@id/et_phonenumber" | |
| 60 | + android:layout_marginTop="30dp" | |
| 61 | + android:orientation="horizontal"> | |
| 62 | + | |
| 63 | + <EditText | |
| 64 | + android:id="@+id/et_authcode" | |
| 65 | + style="@style/login_register_edit_rect_style" | |
| 66 | + android:layout_marginRight="-4px" | |
| 67 | + android:layout_weight="1" | |
| 68 | + android:hint="验证码" | |
| 69 | + android:numeric="integer" /> | |
| 70 | + | |
| 71 | + <Button | |
| 72 | + android:id="@+id/btn_authcode" | |
| 73 | + style="@style/login_register_btn_authcode_rect_style" | |
| 74 | + android:layout_marginLeft="0px" | |
| 75 | + android:layout_marginTop="0px" | |
| 76 | + android:layout_weight="2" | |
| 77 | + android:text="获取验证码" | |
| 78 | + android:textColor="@color/btn_text_color" /> | |
| 79 | + </LinearLayout> | |
| 80 | + | |
| 81 | + <TextView | |
| 82 | + android:id="@+id/authcode_error_hint" | |
| 83 | + style="@style/registererrhint_style" | |
| 84 | + android:layout_below="@id/rl_authcode" /> | |
| 85 | + | |
| 86 | + <RelativeLayout | |
| 87 | + android:id="@+id/pwd_rl" | |
| 88 | + android:layout_width="match_parent" | |
| 89 | + android:layout_height="wrap_content" | |
| 90 | + android:layout_below="@id/rl_authcode" | |
| 91 | + android:layout_marginTop="30dp"> | |
| 92 | + | |
| 93 | + <EditText | |
| 94 | + android:id="@+id/et_newpassword" | |
| 95 | + style="@style/login_register_edit_style" | |
| 96 | + android:hint="请选择地区" | |
| 97 | + android:inputType="textPassword" /> | |
| 98 | + | |
| 99 | + <ImageView | |
| 100 | + android:id="@+id/iv_pwd_change" | |
| 101 | + style="@style/iv_pwd_change_style" /> | |
| 102 | + </RelativeLayout> | |
| 103 | + | |
| 104 | + <TextView | |
| 105 | + android:id="@+id/newpassword_error_hint" | |
| 106 | + style="@style/registererrhint_style" | |
| 107 | + android:layout_below="@id/pwd_rl" /> | |
| 108 | + | |
| 109 | + <EditText | |
| 110 | + android:id="@+id/et_again_newpassword" | |
| 111 | + style="@style/login_register_edit_style" | |
| 112 | + android:layout_below="@id/pwd_rl" | |
| 113 | + android:layout_marginTop="30dp" | |
| 114 | + android:hint="请选择详细地址" | |
| 115 | + android:inputType="textPassword" /> | |
| 116 | + | |
| 117 | + <TextView | |
| 118 | + android:id="@+id/again_newpassword_error_hint" | |
| 119 | + style="@style/registererrhint_style" | |
| 120 | + android:layout_below="@id/et_again_newpassword" /> | |
| 121 | + | |
| 122 | + <Button | |
| 123 | + android:id="@+id/btn_ok" | |
| 124 | + style="@style/button_login_register_style" | |
| 125 | + android:layout_below="@id/et_again_newpassword" | |
| 126 | + android:layout_marginTop="30dp" | |
| 127 | + android:text="@string/ok" /> | |
| 128 | + </RelativeLayout> | |
| 129 | + | |
| 130 | +</RelativeLayout> | |
| 0 | 131 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_changepsword.xml
| ... | ... | @@ -0,0 +1,99 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical" > | |
| 7 | + | |
| 8 | + <RelativeLayout | |
| 9 | + android:id="@+id/title" | |
| 10 | + android:layout_width="match_parent" | |
| 11 | + android:layout_height="wrap_content" | |
| 12 | + android:background="@color/login_text_blue" | |
| 13 | + android:minHeight="50dp" > | |
| 14 | + | |
| 15 | + <ImageView | |
| 16 | + android:id="@+id/cancel" | |
| 17 | + android:layout_width="wrap_content" | |
| 18 | + android:layout_height="wrap_content" | |
| 19 | + android:layout_centerVertical="true" | |
| 20 | + android:paddingLeft="20dp" | |
| 21 | + android:paddingRight="20dp" | |
| 22 | + android:src="@mipmap/title_back" /> | |
| 23 | + | |
| 24 | + <TextView | |
| 25 | + android:id="@+id/menu_title" | |
| 26 | + android:layout_width="wrap_content" | |
| 27 | + android:layout_height="wrap_content" | |
| 28 | + android:layout_centerInParent="true" | |
| 29 | + android:text="@string/string_menu_title" | |
| 30 | + android:textColor="@android:color/white" | |
| 31 | + android:textSize="22sp" /> | |
| 32 | + </RelativeLayout> | |
| 33 | + | |
| 34 | + <RelativeLayout | |
| 35 | + android:layout_width="match_parent" | |
| 36 | + android:layout_height="match_parent" | |
| 37 | + android:layout_below="@id/title" | |
| 38 | + android:background="#ffffffff" | |
| 39 | + android:orientation="vertical" | |
| 40 | + android:paddingLeft="250dp" | |
| 41 | + android:paddingRight="250dp" > | |
| 42 | + | |
| 43 | + <RelativeLayout | |
| 44 | + android:id="@+id/pwd_rl" | |
| 45 | + android:layout_width="match_parent" | |
| 46 | + android:layout_height="wrap_content" | |
| 47 | + android:layout_marginTop="100dp" | |
| 48 | + > | |
| 49 | + <EditText | |
| 50 | + android:id="@+id/et_oldpassword" | |
| 51 | + style="@style/login_register_edit_style" | |
| 52 | + android:hint="输入原密码" | |
| 53 | + android:inputType="textPassword" /> | |
| 54 | + <ImageView | |
| 55 | + android:id="@+id/iv_pwd_change" | |
| 56 | + style="@style/iv_pwd_change_style" | |
| 57 | + /> | |
| 58 | + </RelativeLayout> | |
| 59 | + | |
| 60 | + <TextView | |
| 61 | + android:id="@+id/oldpassword_error_hint" | |
| 62 | + style="@style/registererrhint_style" | |
| 63 | + android:layout_below="@id/pwd_rl" /> | |
| 64 | + | |
| 65 | + <EditText | |
| 66 | + android:id="@+id/et_newpassword" | |
| 67 | + style="@style/login_register_edit_style" | |
| 68 | + android:layout_below="@id/pwd_rl" | |
| 69 | + android:layout_marginTop="30dp" | |
| 70 | + android:hint="密码为英文和数字组成,最少8位" | |
| 71 | + android:inputType="textPassword" /> | |
| 72 | + | |
| 73 | + <TextView | |
| 74 | + android:id="@+id/newpassword_error_hint" | |
| 75 | + style="@style/registererrhint_style" | |
| 76 | + android:layout_below="@id/et_newpassword" /> | |
| 77 | + | |
| 78 | + <EditText | |
| 79 | + android:id="@+id/et_again_newpassword" | |
| 80 | + style="@style/login_register_edit_style" | |
| 81 | + android:layout_below="@id/et_newpassword" | |
| 82 | + android:layout_marginTop="30dp" | |
| 83 | + android:hint="再次输入新密码" | |
| 84 | + android:inputType="textPassword" /> | |
| 85 | + | |
| 86 | + <TextView | |
| 87 | + android:id="@+id/again_newpassword_error_hint" | |
| 88 | + style="@style/registererrhint_style" | |
| 89 | + android:layout_below="@id/et_again_newpassword" /> | |
| 90 | + | |
| 91 | + <Button | |
| 92 | + android:id="@+id/btn_ok" | |
| 93 | + style="@style/button_login_register_style" | |
| 94 | + android:layout_below="@id/et_again_newpassword" | |
| 95 | + android:layout_marginTop="30dp" | |
| 96 | + android:text="确 定" /> | |
| 97 | + </RelativeLayout> | |
| 98 | + | |
| 99 | +</RelativeLayout> | |
| 0 | 100 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_electronicard_phone.xml
| ... | ... | @@ -0,0 +1,97 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical"> | |
| 7 | + <RelativeLayout | |
| 8 | + android:id="@+id/title" | |
| 9 | + android:layout_width="match_parent" | |
| 10 | + android:layout_height="wrap_content" | |
| 11 | + android:background="@color/login_text_blue" | |
| 12 | + android:minHeight="50dp" > | |
| 13 | + | |
| 14 | + <ImageView | |
| 15 | + android:id="@+id/cancel" | |
| 16 | + android:layout_width="wrap_content" | |
| 17 | + android:layout_height="wrap_content" | |
| 18 | + android:layout_centerVertical="true" | |
| 19 | + android:paddingLeft="20dp" | |
| 20 | + android:paddingRight="20dp" | |
| 21 | + android:src="@mipmap/title_back" /> | |
| 22 | + | |
| 23 | + <TextView | |
| 24 | + android:id="@+id/menu_title" | |
| 25 | + android:layout_width="wrap_content" | |
| 26 | + android:layout_height="wrap_content" | |
| 27 | + android:layout_centerInParent="true" | |
| 28 | + android:text="@string/string_electroniccard_info_change" | |
| 29 | + android:textColor="@android:color/white" | |
| 30 | + android:textSize="22sp" /> | |
| 31 | + </RelativeLayout> | |
| 32 | + <RelativeLayout | |
| 33 | + android:layout_width="match_parent" | |
| 34 | + android:layout_height="match_parent" | |
| 35 | + android:layout_below="@id/title" | |
| 36 | + android:background="#ffffffff" | |
| 37 | + android:orientation="vertical" | |
| 38 | + android:paddingLeft="250dp" | |
| 39 | + android:paddingRight="250dp" > | |
| 40 | + | |
| 41 | + <EditText | |
| 42 | + android:id="@+id/et_phonenumber" | |
| 43 | + style="@style/login_register_edit_style" | |
| 44 | + android:layout_marginTop="150dp" | |
| 45 | + android:hint="手机号" | |
| 46 | + android:inputType="phone" /> | |
| 47 | + | |
| 48 | + <TextView | |
| 49 | + android:id="@+id/phonenumber_error_hint" | |
| 50 | + style="@style/registererrhint_style" | |
| 51 | + android:layout_below="@id/et_phonenumber" /> | |
| 52 | + | |
| 53 | + <LinearLayout | |
| 54 | + android:id="@+id/rl_authcode" | |
| 55 | + android:layout_width="match_parent" | |
| 56 | + android:layout_height="wrap_content" | |
| 57 | + android:layout_below="@id/et_phonenumber" | |
| 58 | + android:layout_marginTop="30dp" | |
| 59 | + android:orientation="horizontal"> | |
| 60 | + | |
| 61 | + <EditText | |
| 62 | + android:id="@+id/et_authcode" | |
| 63 | + style="@style/login_register_edit_rect_style" | |
| 64 | + android:layout_marginRight="-4px" | |
| 65 | + android:layout_weight="1" | |
| 66 | + android:hint="验证码" | |
| 67 | + android:numeric="integer" /> | |
| 68 | + | |
| 69 | + <Button | |
| 70 | + android:id="@+id/btn_authcode" | |
| 71 | + style="@style/login_register_btn_authcode_rect_style" | |
| 72 | + android:layout_marginLeft="0px" | |
| 73 | + android:layout_marginTop="0px" | |
| 74 | + android:layout_weight="2" | |
| 75 | + android:text="获取验证码" | |
| 76 | + android:textColor="@color/btn_text_color" /> | |
| 77 | + </LinearLayout> | |
| 78 | + | |
| 79 | + <TextView | |
| 80 | + android:id="@+id/authcode_error_hint" | |
| 81 | + style="@style/registererrhint_style" | |
| 82 | + android:layout_below="@id/rl_authcode" /> | |
| 83 | + | |
| 84 | + <TextView | |
| 85 | + android:id="@+id/password_error_hint" | |
| 86 | + style="@style/registererrhint_style" | |
| 87 | + android:layout_below="@id/pwd_rl" /> | |
| 88 | + | |
| 89 | + <Button | |
| 90 | + android:id="@+id/btn_register" | |
| 91 | + style="@style/button_login_register_style" | |
| 92 | + android:layout_below="@id/rl_authcode" | |
| 93 | + android:layout_marginTop="30dp" | |
| 94 | + android:text="@string/ok" /> | |
| 95 | + </RelativeLayout> | |
| 96 | + | |
| 97 | +</RelativeLayout> | |
| 0 | 98 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_electroniccard_validation.xml
| ... | ... | @@ -0,0 +1,97 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical"> | |
| 7 | + <RelativeLayout | |
| 8 | + android:id="@+id/title" | |
| 9 | + android:layout_width="match_parent" | |
| 10 | + android:layout_height="wrap_content" | |
| 11 | + android:background="@color/login_text_blue" | |
| 12 | + android:minHeight="50dp" > | |
| 13 | + | |
| 14 | + <ImageView | |
| 15 | + android:id="@+id/cancel" | |
| 16 | + android:layout_width="wrap_content" | |
| 17 | + android:layout_height="wrap_content" | |
| 18 | + android:layout_centerVertical="true" | |
| 19 | + android:paddingLeft="20dp" | |
| 20 | + android:paddingRight="20dp" | |
| 21 | + android:src="@mipmap/title_back" /> | |
| 22 | + | |
| 23 | + <TextView | |
| 24 | + android:id="@+id/menu_title" | |
| 25 | + android:layout_width="wrap_content" | |
| 26 | + android:layout_height="wrap_content" | |
| 27 | + android:layout_centerInParent="true" | |
| 28 | + android:text="@string/string_electroniccard_info_change" | |
| 29 | + android:textColor="@android:color/white" | |
| 30 | + android:textSize="22sp" /> | |
| 31 | + </RelativeLayout> | |
| 32 | + <RelativeLayout | |
| 33 | + android:layout_width="match_parent" | |
| 34 | + android:layout_height="match_parent" | |
| 35 | + android:layout_below="@id/title" | |
| 36 | + android:background="#ffffffff" | |
| 37 | + android:orientation="vertical" | |
| 38 | + android:paddingLeft="250dp" | |
| 39 | + android:paddingRight="250dp" > | |
| 40 | + | |
| 41 | + <EditText | |
| 42 | + android:id="@+id/et_phonenumber" | |
| 43 | + style="@style/login_register_edit_style" | |
| 44 | + android:layout_marginTop="150dp" | |
| 45 | + android:hint="手机号" | |
| 46 | + android:inputType="phone" /> | |
| 47 | + | |
| 48 | + <TextView | |
| 49 | + android:id="@+id/phonenumber_error_hint" | |
| 50 | + style="@style/registererrhint_style" | |
| 51 | + android:layout_below="@id/et_phonenumber" /> | |
| 52 | + | |
| 53 | + <LinearLayout | |
| 54 | + android:id="@+id/rl_authcode" | |
| 55 | + android:layout_width="match_parent" | |
| 56 | + android:layout_height="wrap_content" | |
| 57 | + android:layout_below="@id/et_phonenumber" | |
| 58 | + android:layout_marginTop="30dp" | |
| 59 | + android:orientation="horizontal"> | |
| 60 | + | |
| 61 | + <EditText | |
| 62 | + android:id="@+id/et_authcode" | |
| 63 | + style="@style/login_register_edit_rect_style" | |
| 64 | + android:layout_marginRight="-4px" | |
| 65 | + android:layout_weight="1" | |
| 66 | + android:hint="验证码" | |
| 67 | + android:numeric="integer" /> | |
| 68 | + | |
| 69 | + <Button | |
| 70 | + android:id="@+id/btn_authcode" | |
| 71 | + style="@style/login_register_btn_authcode_rect_style" | |
| 72 | + android:layout_marginLeft="0px" | |
| 73 | + android:layout_marginTop="0px" | |
| 74 | + android:layout_weight="2" | |
| 75 | + android:text="获取验证码" | |
| 76 | + android:textColor="@color/btn_text_color" /> | |
| 77 | + </LinearLayout> | |
| 78 | + | |
| 79 | + <TextView | |
| 80 | + android:id="@+id/authcode_error_hint" | |
| 81 | + style="@style/registererrhint_style" | |
| 82 | + android:layout_below="@id/rl_authcode" /> | |
| 83 | + | |
| 84 | + <TextView | |
| 85 | + android:id="@+id/password_error_hint" | |
| 86 | + style="@style/registererrhint_style" | |
| 87 | + android:layout_below="@id/pwd_rl" /> | |
| 88 | + | |
| 89 | + <Button | |
| 90 | + android:id="@+id/btn_register" | |
| 91 | + style="@style/button_login_register_style" | |
| 92 | + android:layout_below="@id/rl_authcode" | |
| 93 | + android:layout_marginTop="30dp" | |
| 94 | + android:text="@string/string_regist_next" /> | |
| 95 | + </RelativeLayout> | |
| 96 | + | |
| 97 | +</RelativeLayout> | |
| 0 | 98 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_forgetpsword.xml
| ... | ... | @@ -0,0 +1,130 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical"> | |
| 7 | + | |
| 8 | + <RelativeLayout | |
| 9 | + android:id="@+id/title" | |
| 10 | + android:layout_width="match_parent" | |
| 11 | + android:layout_height="wrap_content" | |
| 12 | + android:background="@color/login_text_blue" | |
| 13 | + android:minHeight="50dp"> | |
| 14 | + | |
| 15 | + <ImageView | |
| 16 | + android:id="@+id/cancel" | |
| 17 | + android:layout_width="wrap_content" | |
| 18 | + android:layout_height="wrap_content" | |
| 19 | + android:layout_centerVertical="true" | |
| 20 | + android:paddingLeft="20dp" | |
| 21 | + android:paddingRight="20dp" | |
| 22 | + android:src="@mipmap/title_back" /> | |
| 23 | + | |
| 24 | + <TextView | |
| 25 | + android:id="@+id/menu_title" | |
| 26 | + android:layout_width="wrap_content" | |
| 27 | + android:layout_height="wrap_content" | |
| 28 | + android:layout_centerInParent="true" | |
| 29 | + android:text="@string/string_menu_title" | |
| 30 | + android:textColor="@android:color/white" | |
| 31 | + android:textSize="22sp" /> | |
| 32 | + </RelativeLayout> | |
| 33 | + | |
| 34 | + <RelativeLayout | |
| 35 | + android:layout_width="match_parent" | |
| 36 | + android:layout_height="match_parent" | |
| 37 | + android:layout_below="@id/title" | |
| 38 | + android:background="#ffffffff" | |
| 39 | + android:orientation="vertical" | |
| 40 | + android:paddingLeft="250dp" | |
| 41 | + android:paddingRight="250dp"> | |
| 42 | + | |
| 43 | + <EditText | |
| 44 | + android:id="@+id/et_phonenumber" | |
| 45 | + style="@style/login_register_edit_style" | |
| 46 | + android:layout_marginTop="150dp" | |
| 47 | + android:hint="手机号" | |
| 48 | + android:inputType="phone" /> | |
| 49 | + | |
| 50 | + <TextView | |
| 51 | + android:id="@+id/phonenumber_error_hint" | |
| 52 | + style="@style/registererrhint_style" | |
| 53 | + android:layout_below="@id/et_phonenumber" /> | |
| 54 | + | |
| 55 | + <LinearLayout | |
| 56 | + android:id="@+id/rl_authcode" | |
| 57 | + android:layout_width="match_parent" | |
| 58 | + android:layout_height="wrap_content" | |
| 59 | + android:layout_below="@id/et_phonenumber" | |
| 60 | + android:layout_marginTop="30dp" | |
| 61 | + android:orientation="horizontal"> | |
| 62 | + | |
| 63 | + <EditText | |
| 64 | + android:id="@+id/et_authcode" | |
| 65 | + style="@style/login_register_edit_rect_style" | |
| 66 | + android:layout_marginRight="-4px" | |
| 67 | + android:layout_weight="1" | |
| 68 | + android:hint="验证码" | |
| 69 | + android:numeric="integer" /> | |
| 70 | + | |
| 71 | + <Button | |
| 72 | + android:id="@+id/btn_authcode" | |
| 73 | + style="@style/login_register_btn_authcode_rect_style" | |
| 74 | + android:layout_marginLeft="0px" | |
| 75 | + android:layout_marginTop="0px" | |
| 76 | + android:layout_weight="2" | |
| 77 | + android:text="获取验证码" | |
| 78 | + android:textColor="@color/btn_text_color" /> | |
| 79 | + </LinearLayout> | |
| 80 | + | |
| 81 | + <TextView | |
| 82 | + android:id="@+id/authcode_error_hint" | |
| 83 | + style="@style/registererrhint_style" | |
| 84 | + android:layout_below="@id/rl_authcode" /> | |
| 85 | + | |
| 86 | + <RelativeLayout | |
| 87 | + android:id="@+id/pwd_rl" | |
| 88 | + android:layout_width="match_parent" | |
| 89 | + android:layout_height="wrap_content" | |
| 90 | + android:layout_below="@id/rl_authcode" | |
| 91 | + android:layout_marginTop="30dp"> | |
| 92 | + | |
| 93 | + <EditText | |
| 94 | + android:id="@+id/et_newpassword" | |
| 95 | + style="@style/login_register_edit_style" | |
| 96 | + android:hint="密码为英文和数字组成,最少8位" | |
| 97 | + android:inputType="textPassword" /> | |
| 98 | + | |
| 99 | + <ImageView | |
| 100 | + android:id="@+id/iv_pwd_change" | |
| 101 | + style="@style/iv_pwd_change_style" /> | |
| 102 | + </RelativeLayout> | |
| 103 | + | |
| 104 | + <TextView | |
| 105 | + android:id="@+id/newpassword_error_hint" | |
| 106 | + style="@style/registererrhint_style" | |
| 107 | + android:layout_below="@id/pwd_rl" /> | |
| 108 | + | |
| 109 | + <EditText | |
| 110 | + android:id="@+id/et_again_newpassword" | |
| 111 | + style="@style/login_register_edit_style" | |
| 112 | + android:layout_below="@id/pwd_rl" | |
| 113 | + android:layout_marginTop="30dp" | |
| 114 | + android:hint="再次输入新密码" | |
| 115 | + android:inputType="textPassword" /> | |
| 116 | + | |
| 117 | + <TextView | |
| 118 | + android:id="@+id/again_newpassword_error_hint" | |
| 119 | + style="@style/registererrhint_style" | |
| 120 | + android:layout_below="@id/et_again_newpassword" /> | |
| 121 | + | |
| 122 | + <Button | |
| 123 | + android:id="@+id/btn_ok" | |
| 124 | + style="@style/button_login_register_style" | |
| 125 | + android:layout_below="@id/et_again_newpassword" | |
| 126 | + android:layout_marginTop="30dp" | |
| 127 | + android:text="确 定" /> | |
| 128 | + </RelativeLayout> | |
| 129 | + | |
| 130 | +</RelativeLayout> | |
| 0 | 131 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_loginandregister.xml
| ... | ... | @@ -0,0 +1,39 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + xmlns:tools="http://schemas.android.com/tools" | |
| 4 | + android:id="@android:id/tabhost" | |
| 5 | + android:layout_width="fill_parent" | |
| 6 | + android:layout_height="fill_parent" | |
| 7 | + android:background="@color/white" | |
| 8 | + tools:context="com.hjx.personalcenter.activity.LoginAndRegisterActivity"> | |
| 9 | + | |
| 10 | + | |
| 11 | + <ImageView | |
| 12 | + android:id="@+id/iv_logo" | |
| 13 | + android:layout_width="wrap_content" | |
| 14 | + android:layout_height="wrap_content" | |
| 15 | + android:layout_centerHorizontal="true" | |
| 16 | + android:layout_marginTop="55dp" | |
| 17 | + android:layout_marginBottom="0dp" | |
| 18 | + android:src="@mipmap/logo" /> | |
| 19 | + | |
| 20 | + <LinearLayout | |
| 21 | + android:layout_width="wrap_content" | |
| 22 | + android:layout_height="wrap_content" | |
| 23 | + android:layout_below="@+id/iv_logo" | |
| 24 | + android:orientation="vertical"> | |
| 25 | + | |
| 26 | + <com.hjx.personalcenter.thirdparty.SlidingTabLayout | |
| 27 | + android:id="@+id/TabLayout_id" | |
| 28 | + android:layout_width="match_parent" | |
| 29 | + android:layout_height="50dp"> | |
| 30 | + </com.hjx.personalcenter.thirdparty.SlidingTabLayout> | |
| 31 | + | |
| 32 | + <android.support.v4.view.ViewPager | |
| 33 | + android:id="@+id/viewpager_login" | |
| 34 | + android:layout_width="match_parent" | |
| 35 | + android:layout_height="match_parent" | |
| 36 | + android:background="@color/white" /> | |
| 37 | + </LinearLayout> | |
| 38 | + | |
| 39 | +</RelativeLayout> | |
| 0 | 40 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_main.xml
| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent"> | |
| 5 | + | |
| 6 | + <TextView | |
| 7 | + android:id="@+id/ssss" | |
| 8 | + android:layout_width="wrap_content" | |
| 9 | + android:layout_height="wrap_content" | |
| 10 | + android:text="Hello World!" /> | |
| 11 | +</RelativeLayout> | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_registerinfo.xml
| ... | ... | @@ -0,0 +1,78 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent"> | |
| 5 | + <RelativeLayout | |
| 6 | + android:id="@+id/title" | |
| 7 | + android:layout_width="match_parent" | |
| 8 | + android:layout_height="wrap_content" | |
| 9 | + android:background="@color/login_text_blue" | |
| 10 | + android:minHeight="50dp" > | |
| 11 | + | |
| 12 | + <ImageView | |
| 13 | + android:id="@+id/cancel" | |
| 14 | + android:layout_width="wrap_content" | |
| 15 | + android:layout_height="wrap_content" | |
| 16 | + android:layout_centerVertical="true" | |
| 17 | + android:paddingLeft="20dp" | |
| 18 | + android:paddingRight="20dp" | |
| 19 | + android:visibility="gone" | |
| 20 | + android:src="@mipmap/title_back" /> | |
| 21 | + | |
| 22 | + <TextView | |
| 23 | + android:id="@+id/menu_title" | |
| 24 | + android:layout_width="wrap_content" | |
| 25 | + android:layout_height="wrap_content" | |
| 26 | + android:layout_centerInParent="true" | |
| 27 | + android:text="@string/string_regist_info" | |
| 28 | + android:textColor="@android:color/white" | |
| 29 | + android:textSize="22sp" /> | |
| 30 | + </RelativeLayout> | |
| 31 | + <LinearLayout | |
| 32 | + android:layout_width="match_parent" | |
| 33 | + android:layout_height="match_parent" | |
| 34 | + android:layout_below="@id/title" | |
| 35 | + android:background="#ffffffff" | |
| 36 | + android:orientation="vertical" | |
| 37 | + android:paddingLeft="250dp" | |
| 38 | + android:paddingRight="250dp"> | |
| 39 | + <EditText | |
| 40 | + android:id="@+id/et_username" | |
| 41 | + style="@style/login_register_edit_style" | |
| 42 | + android:layout_marginTop="100dp" | |
| 43 | + android:textColor="@color/login_text_black" | |
| 44 | + android:hint="@string/string_regist_username" /> | |
| 45 | + <TextView | |
| 46 | + android:id="@+id/et_region" | |
| 47 | + style="@style/login_register_edit_style" | |
| 48 | + android:layout_marginTop="30dp" | |
| 49 | + android:textColor="@color/login_text_black" | |
| 50 | + android:hint="@string/string_regist_region" /> | |
| 51 | + | |
| 52 | + <TextView | |
| 53 | + android:id="@+id/et_grade" | |
| 54 | + style="@style/login_register_edit_style" | |
| 55 | + android:layout_marginTop="30dp" | |
| 56 | + android:textColor="@color/login_text_black" | |
| 57 | + android:hint="@string/string_regist_grade" /> | |
| 58 | + | |
| 59 | + <TextView | |
| 60 | + android:id="@+id/et_school" | |
| 61 | + style="@style/login_register_edit_style" | |
| 62 | + android:layout_marginTop="30dp" | |
| 63 | + android:textColor="@color/login_text_black" | |
| 64 | + android:hint="@string/string_regist_school" /> | |
| 65 | + <Button | |
| 66 | + android:id="@+id/btn_ok" | |
| 67 | + style="@style/button_login_register_style" | |
| 68 | + android:layout_marginTop="30dp" | |
| 69 | + android:text="@string/string_regist_next" /> | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + </LinearLayout> | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | +</RelativeLayout> | |
| 0 | 79 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/fragment_loginandregister_login.xml
| ... | ... | @@ -0,0 +1,44 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical" | |
| 7 | + android:paddingLeft="250dp" | |
| 8 | + android:paddingRight="250dp" > | |
| 9 | + | |
| 10 | + | |
| 11 | + <EditText | |
| 12 | + android:id="@+id/et_phonenumber" | |
| 13 | + style="@style/login_register_edit_style" | |
| 14 | + android:layout_marginTop="20dp" | |
| 15 | + android:textColor="@color/login_text_black" | |
| 16 | + android:inputType="phone" | |
| 17 | + android:hint="手机号" /> | |
| 18 | + | |
| 19 | + <EditText | |
| 20 | + android:id="@+id/et_password" | |
| 21 | + style="@style/login_register_edit_style" | |
| 22 | + android:layout_below="@id/et_phonenumber" | |
| 23 | + android:layout_marginTop="30dp" | |
| 24 | + android:textColor="@color/login_text_black" | |
| 25 | + android:hint="密码" | |
| 26 | + android:inputType="textPassword" /> | |
| 27 | + | |
| 28 | + <Button | |
| 29 | + android:id="@+id/btn_login" | |
| 30 | + style="@style/button_login_register_style" | |
| 31 | + android:layout_below="@id/et_password" | |
| 32 | + android:layout_marginTop="30dp" | |
| 33 | + android:text="登 录" /> | |
| 34 | + | |
| 35 | + <TextView | |
| 36 | + android:id="@+id/tv_forget_pwd" | |
| 37 | + style="@style/text_forget_pwd_style" | |
| 38 | + android:layout_alignParentRight="true" | |
| 39 | + android:layout_below="@id/btn_login" | |
| 40 | + android:layout_marginTop="15dp" | |
| 41 | + android:text="@string/forget_pwd" | |
| 42 | + android:textColor="@color/btn_text_color" /> | |
| 43 | + | |
| 44 | +</RelativeLayout> | |
| 0 | 45 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/fragment_loginandregister_register.xml
| ... | ... | @@ -0,0 +1,83 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | + android:layout_width="match_parent" | |
| 4 | + android:layout_height="match_parent" | |
| 5 | + android:background="#ffffffff" | |
| 6 | + android:orientation="vertical" | |
| 7 | + android:paddingLeft="250dp" | |
| 8 | + android:paddingRight="250dp"> | |
| 9 | + | |
| 10 | + <EditText | |
| 11 | + android:id="@+id/et_phonenumber" | |
| 12 | + style="@style/login_register_edit_style" | |
| 13 | + android:layout_marginTop="20dp" | |
| 14 | + android:hint="手机号" | |
| 15 | + android:inputType="phone" /> | |
| 16 | + | |
| 17 | + <TextView | |
| 18 | + android:id="@+id/phonenumber_error_hint" | |
| 19 | + style="@style/registererrhint_style" | |
| 20 | + android:layout_below="@id/et_phonenumber" /> | |
| 21 | + | |
| 22 | + <LinearLayout | |
| 23 | + android:id="@+id/rl_authcode" | |
| 24 | + android:layout_width="match_parent" | |
| 25 | + android:layout_height="wrap_content" | |
| 26 | + android:layout_below="@id/et_phonenumber" | |
| 27 | + android:layout_marginTop="30dp" | |
| 28 | + android:orientation="horizontal"> | |
| 29 | + | |
| 30 | + <EditText | |
| 31 | + android:id="@+id/et_authcode" | |
| 32 | + style="@style/login_register_edit_rect_style" | |
| 33 | + android:layout_marginRight="-4px" | |
| 34 | + android:layout_weight="1" | |
| 35 | + android:hint="验证码" | |
| 36 | + android:numeric="integer" /> | |
| 37 | + | |
| 38 | + <Button | |
| 39 | + android:id="@+id/btn_authcode" | |
| 40 | + style="@style/login_register_btn_authcode_rect_style" | |
| 41 | + android:layout_marginLeft="0px" | |
| 42 | + android:layout_marginTop="0px" | |
| 43 | + android:layout_weight="2" | |
| 44 | + android:text="获取验证码" | |
| 45 | + android:textColor="@color/btn_text_color" /> | |
| 46 | + </LinearLayout> | |
| 47 | + | |
| 48 | + <TextView | |
| 49 | + android:id="@+id/authcode_error_hint" | |
| 50 | + style="@style/registererrhint_style" | |
| 51 | + android:layout_below="@id/rl_authcode" /> | |
| 52 | + | |
| 53 | + <RelativeLayout | |
| 54 | + android:id="@+id/pwd_rl" | |
| 55 | + android:layout_width="match_parent" | |
| 56 | + android:layout_height="wrap_content" | |
| 57 | + android:layout_below="@id/rl_authcode" | |
| 58 | + android:layout_marginTop="30dp"> | |
| 59 | + | |
| 60 | + <EditText | |
| 61 | + android:id="@+id/et_password" | |
| 62 | + style="@style/login_register_edit_style" | |
| 63 | + android:hint="密码为英文和数字组成,最少8位" | |
| 64 | + android:inputType="textPassword" /> | |
| 65 | + | |
| 66 | + <ImageView | |
| 67 | + android:id="@+id/iv_pwd_change" | |
| 68 | + style="@style/iv_pwd_change_style" /> | |
| 69 | + </RelativeLayout> | |
| 70 | + | |
| 71 | + <TextView | |
| 72 | + android:id="@+id/password_error_hint" | |
| 73 | + style="@style/registererrhint_style" | |
| 74 | + android:layout_below="@id/pwd_rl" /> | |
| 75 | + | |
| 76 | + <Button | |
| 77 | + android:id="@+id/btn_register" | |
| 78 | + style="@style/button_login_register_style" | |
| 79 | + android:layout_below="@id/pwd_rl" | |
| 80 | + android:layout_marginTop="30dp" | |
| 81 | + android:text="立即注册" /> | |
| 82 | + | |
| 83 | +</RelativeLayout> | |
| 0 | 84 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/mipmap-hdpi/ic_launcher.png
3.34 KB
PersonalCenter/app/src/main/res/mipmap-mdpi/ic_launcher.png
2.15 KB
PersonalCenter/app/src/main/res/mipmap-xhdpi/blank.PNG
171 Bytes
PersonalCenter/app/src/main/res/mipmap-xhdpi/ic_launcher.png
4.73 KB
PersonalCenter/app/src/main/res/mipmap-xhdpi/logo.png
21.1 KB
PersonalCenter/app/src/main/res/mipmap-xhdpi/pwd_hide.png
561 Bytes
PersonalCenter/app/src/main/res/mipmap-xhdpi/title_back.png
544 Bytes
PersonalCenter/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
7.54 KB
PersonalCenter/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
4.73 KB
PersonalCenter/app/src/main/res/values-w820dp/dimens.xml
| ... | ... | @@ -0,0 +1,6 @@ |
| 1 | +<resources> | |
| 2 | + <!-- Example customization of dimensions originally defined in res/values/dimens.xml | |
| 3 | + (such as screen margins) for screens with more than 820dp of available width. This | |
| 4 | + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> | |
| 5 | + <dimen name="activity_horizontal_margin">64dp</dimen> | |
| 6 | +</resources> | ... | ... |
PersonalCenter/app/src/main/res/values/colors.xml
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<resources> | |
| 3 | + <color name="colorPrimary">#3F51B5</color> | |
| 4 | + <color name="colorPrimaryDark">#303F9F</color> | |
| 5 | + <color name="colorAccent">#FF4081</color> | |
| 6 | + <color name="white">#ffffffff</color> | |
| 7 | + <color name="login_edittext_hint">#afafaf</color> | |
| 8 | + <color name="login_text_blue">#1cb8ff</color> | |
| 9 | + <color name="login_text_black">#313131</color> | |
| 10 | + <color name="login_edittext_normal">#d4d4d4</color> | |
| 11 | + <color name="error_hint">#ED1c24</color> | |
| 12 | + <color name="login_edittext_pressed">#1cb8ff</color> | |
| 13 | +</resources> | ... | ... |
PersonalCenter/app/src/main/res/values/dimens.xml
PersonalCenter/app/src/main/res/values/strings.xml
| ... | ... | @@ -0,0 +1,23 @@ |
| 1 | +<resources> | |
| 2 | + <string name="app_name">PersonalCenter</string> | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + //登录注册 | |
| 7 | + <string name="cancel">取 消</string> | |
| 8 | + <string name="ok">确 定</string> | |
| 9 | + <string name="forget_pwd">忘记密码</string> | |
| 10 | + <string name="string_menu_title">修改密码</string> | |
| 11 | + <string name="string_regist_info">填写注册信息</string> | |
| 12 | + <string name="string_regist_username">用户名</string> | |
| 13 | + <string name="string_regist_region">地区</string> | |
| 14 | + <string name="string_regist_grade">年级</string> | |
| 15 | + <string name="string_regist_school">学校</string> | |
| 16 | + <string name="string_regist_next">下一步</string> | |
| 17 | + //电子保卡 | |
| 18 | + <string name="string_electroniccard_info_title">填写保卡信息</string> | |
| 19 | + <string name="string_electroniccard_info_change">修改保卡信息</string> | |
| 20 | + <string name="string_electroniccard_change_bangding">更换绑定</string> | |
| 21 | + | |
| 22 | + | |
| 23 | +</resources> | ... | ... |
PersonalCenter/app/src/main/res/values/styles.xml
| ... | ... | @@ -0,0 +1,82 @@ |
| 1 | +<resources> | |
| 2 | + | |
| 3 | + <!-- Base application theme. --> | |
| 4 | + <style name="AppTheme" parent="Theme.AppCompat"> | |
| 5 | + <!-- Customize your theme here. --> | |
| 6 | + <item name="colorPrimary">@color/colorPrimary</item> | |
| 7 | + <item name="colorPrimaryDark">@color/colorPrimaryDark</item> | |
| 8 | + <item name="colorAccent">@color/colorAccent</item> | |
| 9 | + </style> | |
| 10 | + | |
| 11 | + <style name="login_register_edit_style"> | |
| 12 | + <item name="android:textSize">19sp</item> | |
| 13 | + <item name="android:singleLine">true</item> | |
| 14 | + <item name="android:background">@drawable/selector_edittext_bg</item> | |
| 15 | + <item name="android:layout_width">match_parent</item> | |
| 16 | + <item name="android:layout_height">wrap_content</item> | |
| 17 | + <item name="android:textColorHint">@color/login_edittext_hint</item> | |
| 18 | + <item name="android:padding">10dp</item> | |
| 19 | + </style> | |
| 20 | + | |
| 21 | + <style name="login_register_edit_rect_style"> | |
| 22 | + <item name="android:textSize">19sp</item> | |
| 23 | + <item name="android:singleLine">true</item> | |
| 24 | + <item name="android:background">@drawable/selector_edittext_rect_bg</item> | |
| 25 | + <item name="android:layout_width">match_parent</item> | |
| 26 | + <item name="android:layout_height">wrap_content</item> | |
| 27 | + <item name="android:textColorHint">@color/login_edittext_hint</item> | |
| 28 | + <item name="android:padding">10dp</item> | |
| 29 | + </style> | |
| 30 | + | |
| 31 | + <style name="login_register_btn_authcode_rect_style"> | |
| 32 | + <item name="android:textSize">19sp</item> | |
| 33 | + <item name="android:singleLine">true</item> | |
| 34 | + <item name="android:background">@drawable/btn_rect_normal</item> | |
| 35 | + <item name="android:layout_width">match_parent</item> | |
| 36 | + <item name="android:layout_height">wrap_content</item> | |
| 37 | + <item name="android:textColorHint">@color/login_edittext_hint</item> | |
| 38 | + <item name="android:padding">10dp</item> | |
| 39 | + </style> | |
| 40 | + <style name="text_login_register_style" > | |
| 41 | + <item name="android:layout_width">wrap_content</item> | |
| 42 | + <item name="android:layout_height">wrap_content</item> | |
| 43 | + <item name="android:textSize">22sp</item> | |
| 44 | + <item name="android:gravity">center</item> | |
| 45 | + <item name="android:padding">10dp</item> | |
| 46 | + </style> | |
| 47 | + <style name="button_login_register_style"> | |
| 48 | + <item name="android:layout_width">match_parent</item> | |
| 49 | + <item name="android:layout_height">wrap_content</item> | |
| 50 | + <item name="android:background">@drawable/selector_blue_btn_bg</item> | |
| 51 | + <item name="android:textSize">23sp</item> | |
| 52 | + <item name="android:gravity">center</item> | |
| 53 | + <item name="android:padding">10dp</item> | |
| 54 | + <item name="android:textColor">@android:color/white</item> | |
| 55 | + </style> | |
| 56 | + <style name="text_forget_pwd_style" > | |
| 57 | + <item name="android:layout_width">wrap_content</item> | |
| 58 | + <item name="android:layout_height">wrap_content</item> | |
| 59 | + <item name="android:textSize">18sp</item> | |
| 60 | + <item name="android:gravity">center</item> | |
| 61 | + <item name="android:padding">8dp</item> | |
| 62 | + </style> | |
| 63 | + <style name="registererrhint_style"> | |
| 64 | + <item name="android:textSize">14dip</item> | |
| 65 | + <item name="android:layout_width">match_parent</item> | |
| 66 | + <item name="android:layout_height">wrap_content</item> | |
| 67 | + <item name="android:textColor">@color/error_hint</item> | |
| 68 | + <item name="android:layout_marginTop">5dip</item> | |
| 69 | + </style> | |
| 70 | + <style name="iv_pwd_change_style"> | |
| 71 | + <item name="android:layout_width">wrap_content</item> | |
| 72 | + <item name="android:layout_height">wrap_content</item> | |
| 73 | + <item name="android:background">@mipmap/pwd_hide</item> | |
| 74 | + <item name="android:layout_alignParentRight">true</item> | |
| 75 | + <item name="android:layout_centerVertical">true</item> | |
| 76 | + <item name="android:layout_marginRight">15dp</item> | |
| 77 | + </style> | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | +</resources> | ... | ... |
PersonalCenter/app/src/test/java/com/hjx/personalcenter/ExampleUnitTest.java
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +package com.hjx.personalcenter; | |
| 2 | + | |
| 3 | +import org.junit.Test; | |
| 4 | + | |
| 5 | +import static org.junit.Assert.*; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * Example local unit test, which will execute on the development machine (host). | |
| 9 | + * | |
| 10 | + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | |
| 11 | + */ | |
| 12 | +public class ExampleUnitTest { | |
| 13 | + @Test | |
| 14 | + public void addition_isCorrect() throws Exception { | |
| 15 | + assertEquals(4, 2 + 2); | |
| 16 | + } | |
| 17 | +} | |
| 0 | 18 | \ No newline at end of file | ... | ... |
PersonalCenter/build.gradle
| ... | ... | @@ -0,0 +1,23 @@ |
| 1 | +// Top-level build file where you can add configuration options common to all sub-projects/modules. | |
| 2 | + | |
| 3 | +buildscript { | |
| 4 | + repositories { | |
| 5 | + jcenter() | |
| 6 | + } | |
| 7 | + dependencies { | |
| 8 | + classpath 'com.android.tools.build:gradle:2.2.2' | |
| 9 | + | |
| 10 | + // NOTE: Do not place your application dependencies here; they belong | |
| 11 | + // in the individual module build.gradle files | |
| 12 | + } | |
| 13 | +} | |
| 14 | + | |
| 15 | +allprojects { | |
| 16 | + repositories { | |
| 17 | + jcenter() | |
| 18 | + } | |
| 19 | +} | |
| 20 | + | |
| 21 | +task clean(type: Delete) { | |
| 22 | + delete rootProject.buildDir | |
| 23 | +} | ... | ... |
PersonalCenter/gradle.properties
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +# Project-wide Gradle settings. | |
| 2 | + | |
| 3 | +# IDE (e.g. Android Studio) users: | |
| 4 | +# Gradle settings configured through the IDE *will override* | |
| 5 | +# any settings specified in this file. | |
| 6 | + | |
| 7 | +# For more details on how to configure your build environment visit | |
| 8 | +# http://www.gradle.org/docs/current/userguide/build_environment.html | |
| 9 | + | |
| 10 | +# Specifies the JVM arguments used for the daemon process. | |
| 11 | +# The setting is particularly useful for tweaking memory settings. | |
| 12 | +org.gradle.jvmargs=-Xmx1536m | |
| 13 | + | |
| 14 | +# When configured, Gradle will run in incubating parallel mode. | |
| 15 | +# This option should only be used with decoupled projects. More details, visit | |
| 16 | +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | |
| 17 | +# org.gradle.parallel=true | ... | ... |
PersonalCenter/gradle/wrapper/gradle-wrapper.jar
No preview for this file type
PersonalCenter/gradle/wrapper/gradle-wrapper.properties
PersonalCenter/gradlew
| ... | ... | @@ -0,0 +1,160 @@ |
| 1 | +#!/usr/bin/env bash | |
| 2 | + | |
| 3 | +############################################################################## | |
| 4 | +## | |
| 5 | +## Gradle start up script for UN*X | |
| 6 | +## | |
| 7 | +############################################################################## | |
| 8 | + | |
| 9 | +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |
| 10 | +DEFAULT_JVM_OPTS="" | |
| 11 | + | |
| 12 | +APP_NAME="Gradle" | |
| 13 | +APP_BASE_NAME=`basename "$0"` | |
| 14 | + | |
| 15 | +# Use the maximum available, or set MAX_FD != -1 to use that value. | |
| 16 | +MAX_FD="maximum" | |
| 17 | + | |
| 18 | +warn ( ) { | |
| 19 | + echo "$*" | |
| 20 | +} | |
| 21 | + | |
| 22 | +die ( ) { | |
| 23 | + echo | |
| 24 | + echo "$*" | |
| 25 | + echo | |
| 26 | + exit 1 | |
| 27 | +} | |
| 28 | + | |
| 29 | +# OS specific support (must be 'true' or 'false'). | |
| 30 | +cygwin=false | |
| 31 | +msys=false | |
| 32 | +darwin=false | |
| 33 | +case "`uname`" in | |
| 34 | + CYGWIN* ) | |
| 35 | + cygwin=true | |
| 36 | + ;; | |
| 37 | + Darwin* ) | |
| 38 | + darwin=true | |
| 39 | + ;; | |
| 40 | + MINGW* ) | |
| 41 | + msys=true | |
| 42 | + ;; | |
| 43 | +esac | |
| 44 | + | |
| 45 | +# Attempt to set APP_HOME | |
| 46 | +# Resolve links: $0 may be a link | |
| 47 | +PRG="$0" | |
| 48 | +# Need this for relative symlinks. | |
| 49 | +while [ -h "$PRG" ] ; do | |
| 50 | + ls=`ls -ld "$PRG"` | |
| 51 | + link=`expr "$ls" : '.*-> \(.*\)$'` | |
| 52 | + if expr "$link" : '/.*' > /dev/null; then | |
| 53 | + PRG="$link" | |
| 54 | + else | |
| 55 | + PRG=`dirname "$PRG"`"/$link" | |
| 56 | + fi | |
| 57 | +done | |
| 58 | +SAVED="`pwd`" | |
| 59 | +cd "`dirname \"$PRG\"`/" >/dev/null | |
| 60 | +APP_HOME="`pwd -P`" | |
| 61 | +cd "$SAVED" >/dev/null | |
| 62 | + | |
| 63 | +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | |
| 64 | + | |
| 65 | +# Determine the Java command to use to start the JVM. | |
| 66 | +if [ -n "$JAVA_HOME" ] ; then | |
| 67 | + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |
| 68 | + # IBM's JDK on AIX uses strange locations for the executables | |
| 69 | + JAVACMD="$JAVA_HOME/jre/sh/java" | |
| 70 | + else | |
| 71 | + JAVACMD="$JAVA_HOME/bin/java" | |
| 72 | + fi | |
| 73 | + if [ ! -x "$JAVACMD" ] ; then | |
| 74 | + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | |
| 75 | + | |
| 76 | +Please set the JAVA_HOME variable in your environment to match the | |
| 77 | +location of your Java installation." | |
| 78 | + fi | |
| 79 | +else | |
| 80 | + JAVACMD="java" | |
| 81 | + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |
| 82 | + | |
| 83 | +Please set the JAVA_HOME variable in your environment to match the | |
| 84 | +location of your Java installation." | |
| 85 | +fi | |
| 86 | + | |
| 87 | +# Increase the maximum file descriptors if we can. | |
| 88 | +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then | |
| 89 | + MAX_FD_LIMIT=`ulimit -H -n` | |
| 90 | + if [ $? -eq 0 ] ; then | |
| 91 | + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then | |
| 92 | + MAX_FD="$MAX_FD_LIMIT" | |
| 93 | + fi | |
| 94 | + ulimit -n $MAX_FD | |
| 95 | + if [ $? -ne 0 ] ; then | |
| 96 | + warn "Could not set maximum file descriptor limit: $MAX_FD" | |
| 97 | + fi | |
| 98 | + else | |
| 99 | + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" | |
| 100 | + fi | |
| 101 | +fi | |
| 102 | + | |
| 103 | +# For Darwin, add options to specify how the application appears in the dock | |
| 104 | +if $darwin; then | |
| 105 | + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" | |
| 106 | +fi | |
| 107 | + | |
| 108 | +# For Cygwin, switch paths to Windows format before running java | |
| 109 | +if $cygwin ; then | |
| 110 | + APP_HOME=`cygpath --path --mixed "$APP_HOME"` | |
| 111 | + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | |
| 112 | + JAVACMD=`cygpath --unix "$JAVACMD"` | |
| 113 | + | |
| 114 | + # We build the pattern for arguments to be converted via cygpath | |
| 115 | + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` | |
| 116 | + SEP="" | |
| 117 | + for dir in $ROOTDIRSRAW ; do | |
| 118 | + ROOTDIRS="$ROOTDIRS$SEP$dir" | |
| 119 | + SEP="|" | |
| 120 | + done | |
| 121 | + OURCYGPATTERN="(^($ROOTDIRS))" | |
| 122 | + # Add a user-defined pattern to the cygpath arguments | |
| 123 | + if [ "$GRADLE_CYGPATTERN" != "" ] ; then | |
| 124 | + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" | |
| 125 | + fi | |
| 126 | + # Now convert the arguments - kludge to limit ourselves to /bin/sh | |
| 127 | + i=0 | |
| 128 | + for arg in "$@" ; do | |
| 129 | + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` | |
| 130 | + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option | |
| 131 | + | |
| 132 | + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition | |
| 133 | + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` | |
| 134 | + else | |
| 135 | + eval `echo args$i`="\"$arg\"" | |
| 136 | + fi | |
| 137 | + i=$((i+1)) | |
| 138 | + done | |
| 139 | + case $i in | |
| 140 | + (0) set -- ;; | |
| 141 | + (1) set -- "$args0" ;; | |
| 142 | + (2) set -- "$args0" "$args1" ;; | |
| 143 | + (3) set -- "$args0" "$args1" "$args2" ;; | |
| 144 | + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; | |
| 145 | + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | |
| 146 | + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | |
| 147 | + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | |
| 148 | + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | |
| 149 | + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | |
| 150 | + esac | |
| 151 | +fi | |
| 152 | + | |
| 153 | +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules | |
| 154 | +function splitJvmOpts() { | |
| 155 | + JVM_OPTS=("$@") | |
| 156 | +} | |
| 157 | +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS | |
| 158 | +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" | |
| 159 | + | |
| 160 | +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" | ... | ... |
PersonalCenter/gradlew.bat
| ... | ... | @@ -0,0 +1,90 @@ |
| 1 | +@if "%DEBUG%" == "" @echo off | |
| 2 | +@rem ########################################################################## | |
| 3 | +@rem | |
| 4 | +@rem Gradle startup script for Windows | |
| 5 | +@rem | |
| 6 | +@rem ########################################################################## | |
| 7 | + | |
| 8 | +@rem Set local scope for the variables with windows NT shell | |
| 9 | +if "%OS%"=="Windows_NT" setlocal | |
| 10 | + | |
| 11 | +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | |
| 12 | +set DEFAULT_JVM_OPTS= | |
| 13 | + | |
| 14 | +set DIRNAME=%~dp0 | |
| 15 | +if "%DIRNAME%" == "" set DIRNAME=. | |
| 16 | +set APP_BASE_NAME=%~n0 | |
| 17 | +set APP_HOME=%DIRNAME% | |
| 18 | + | |
| 19 | +@rem Find java.exe | |
| 20 | +if defined JAVA_HOME goto findJavaFromJavaHome | |
| 21 | + | |
| 22 | +set JAVA_EXE=java.exe | |
| 23 | +%JAVA_EXE% -version >NUL 2>&1 | |
| 24 | +if "%ERRORLEVEL%" == "0" goto init | |
| 25 | + | |
| 26 | +echo. | |
| 27 | +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | |
| 28 | +echo. | |
| 29 | +echo Please set the JAVA_HOME variable in your environment to match the | |
| 30 | +echo location of your Java installation. | |
| 31 | + | |
| 32 | +goto fail | |
| 33 | + | |
| 34 | +:findJavaFromJavaHome | |
| 35 | +set JAVA_HOME=%JAVA_HOME:"=% | |
| 36 | +set JAVA_EXE=%JAVA_HOME%/bin/java.exe | |
| 37 | + | |
| 38 | +if exist "%JAVA_EXE%" goto init | |
| 39 | + | |
| 40 | +echo. | |
| 41 | +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | |
| 42 | +echo. | |
| 43 | +echo Please set the JAVA_HOME variable in your environment to match the | |
| 44 | +echo location of your Java installation. | |
| 45 | + | |
| 46 | +goto fail | |
| 47 | + | |
| 48 | +:init | |
| 49 | +@rem Get command-line arguments, handling Windowz variants | |
| 50 | + | |
| 51 | +if not "%OS%" == "Windows_NT" goto win9xME_args | |
| 52 | +if "%@eval[2+2]" == "4" goto 4NT_args | |
| 53 | + | |
| 54 | +:win9xME_args | |
| 55 | +@rem Slurp the command line arguments. | |
| 56 | +set CMD_LINE_ARGS= | |
| 57 | +set _SKIP=2 | |
| 58 | + | |
| 59 | +:win9xME_args_slurp | |
| 60 | +if "x%~1" == "x" goto execute | |
| 61 | + | |
| 62 | +set CMD_LINE_ARGS=%* | |
| 63 | +goto execute | |
| 64 | + | |
| 65 | +:4NT_args | |
| 66 | +@rem Get arguments from the 4NT Shell from JP Software | |
| 67 | +set CMD_LINE_ARGS=%$ | |
| 68 | + | |
| 69 | +:execute | |
| 70 | +@rem Setup the command line | |
| 71 | + | |
| 72 | +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | |
| 73 | + | |
| 74 | +@rem Execute Gradle | |
| 75 | +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% | |
| 76 | + | |
| 77 | +:end | |
| 78 | +@rem End local scope for the variables with windows NT shell | |
| 79 | +if "%ERRORLEVEL%"=="0" goto mainEnd | |
| 80 | + | |
| 81 | +:fail | |
| 82 | +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | |
| 83 | +rem the _cmd.exe /c_ return code! | |
| 84 | +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 | |
| 85 | +exit /b 1 | |
| 86 | + | |
| 87 | +:mainEnd | |
| 88 | +if "%OS%"=="Windows_NT" endlocal | |
| 89 | + | |
| 90 | +:omega | ... | ... |
PersonalCenter/settings.gradle
| ... | ... | @@ -0,0 +1 @@ |
| 1 | +include ':app' | ... | ... |