From 82a5dd79241740b4a04d335051d9f5bcaddb0bd7 Mon Sep 17 00:00:00 2001
From: zhanghui <15122431204@163.com>
Date: Fri, 1 Dec 2017 15:32:00 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83=20?=
=?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 10 +-
app/src/main/AndroidManifest.xml | 11 +
.../com/qhclh/ytzh/base/BaseActivity.java | 8 +-
.../com/qhclh/ytzh/base/BaseFragment.java | 4 +
.../java/com/qhclh/ytzh/me/MeFragment.java | 43 +++-
.../com/qhclh/ytzh/me/MineInfoActivity.java | 226 +++++++++++++++++-
.../com/qhclh/ytzh/me/SettingActivity.java | 76 +++++-
.../com/qhclh/ytzh/splash/SplashActivity.java | 2 +-
.../ytzh/utils/widget/XCRoundImageView.java | 2 +
.../main/res/layout/activity_mine_info.xml | 85 +++++--
app/src/main/res/layout/activity_setting.xml | 4 +-
app/src/main/res/values/colors.xml | 3 +-
app/src/main/res/values/styles.xml | 13 +
build.gradle | 4 +-
14 files changed, 453 insertions(+), 38 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 08c90eb..2f52849 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,5 +1,6 @@
apply plugin: 'com.android.application'
-apply plugin: 'android-apt'
+//apply plugin: 'android-apt'
+apply plugin: 'com.jakewharton.butterknife'
android {
compileSdkVersion 26
@@ -39,7 +40,6 @@ dependencies {
///< 图表工具
///< 时间选择器
compile 'com.android.support:appcompat-v7:26.+'
- compile 'com.jakewharton:butterknife:8.4.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:support-v4:26.0.0-alpha1'
compile 'com.android.support:design:26.0.0-alpha1'
@@ -56,5 +56,9 @@ dependencies {
compile 'com.prolificinteractive:material-calendarview:1.4.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
- apt 'com.jakewharton:butterknife-compiler:8.4.0'
+ //相册选择
+ compile 'com.github.YancyYe:GalleryPick:1.2.1'
+
+ compile 'com.jakewharton:butterknife:8.5.1'
+ annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b9965fc..0b4f22b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,6 +19,17 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
+
+
+
+
+
diff --git a/app/src/main/java/com/qhclh/ytzh/base/BaseActivity.java b/app/src/main/java/com/qhclh/ytzh/base/BaseActivity.java
index 80015fa..cb0264d 100644
--- a/app/src/main/java/com/qhclh/ytzh/base/BaseActivity.java
+++ b/app/src/main/java/com/qhclh/ytzh/base/BaseActivity.java
@@ -37,9 +37,13 @@ public abstract class BaseActivity extends AppCompatActivity {
}
protected abstract int setLayoutId();
+
protected abstract void initView();
+
protected abstract void initData();
+
protected abstract void initOper();
+
///< toolbar设置
public void initToolbar(Toolbar toolbar, String title, View.OnClickListener listener) {
if (toolbar == null) {
@@ -87,7 +91,9 @@ public abstract class BaseActivity extends AppCompatActivity {
ActivityCollector.removeActivity(this);
}
- public void finishAll(){ActivityCollector.finishAll();}
+ public void finishAll() {
+ ActivityCollector.finishAll();
+ }
public void showToast(String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/qhclh/ytzh/base/BaseFragment.java b/app/src/main/java/com/qhclh/ytzh/base/BaseFragment.java
index 3b2b3c8..3161186 100644
--- a/app/src/main/java/com/qhclh/ytzh/base/BaseFragment.java
+++ b/app/src/main/java/com/qhclh/ytzh/base/BaseFragment.java
@@ -1,5 +1,6 @@
package com.qhclh.ytzh.base;
+import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
@@ -8,6 +9,8 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
+import butterknife.ButterKnife;
+
/**
* Created by 青花瓷 on 2017/7/19.
*/
@@ -18,6 +21,7 @@ public abstract class BaseFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(setLayout(), container, false);
+ ButterKnife.bind(this, view);
return view;
}
diff --git a/app/src/main/java/com/qhclh/ytzh/me/MeFragment.java b/app/src/main/java/com/qhclh/ytzh/me/MeFragment.java
index 2418a35..b09d477 100644
--- a/app/src/main/java/com/qhclh/ytzh/me/MeFragment.java
+++ b/app/src/main/java/com/qhclh/ytzh/me/MeFragment.java
@@ -1,17 +1,36 @@
package com.qhclh.ytzh.me;
+import android.content.Intent;
import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.TextView;
import com.qhclh.ytzh.R;
import com.qhclh.ytzh.base.BaseFragment;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import butterknife.Unbinder;
+
/**
* Created by 青花瓷 on 2017/11/28.
*/
public class MeFragment extends BaseFragment {
- private TextView me_msg,me_set;
+ @BindView(R.id.imageView)
+ ImageView imageView;
+ @BindView(R.id.me_msg)
+ TextView meMsg;
+ @BindView(R.id.me_set)
+ TextView meSet;
+ private TextView me_msg, me_set;
@Override
protected int setLayout() {
@@ -21,11 +40,8 @@ public class MeFragment extends BaseFragment {
@Override
protected void initView() {
drawView();
-
}
-
-
@Override
protected void initData() {
@@ -52,4 +68,23 @@ public class MeFragment extends BaseFragment {
me_msg.setCompoundDrawables(message_icon, null, zhankai_3x, null);//只放左边 右边
me_set.setCompoundDrawables(setting_icon, null, zhankai_3x, null);//只放左边 右边
}
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ }
+
+ @OnClick({R.id.me_msg, R.id.me_set})
+ public void onViewClicked(View view) {
+ switch (view.getId()) {
+ case R.id.me_msg:
+ Intent intent=new Intent(getActivity(),MineInfoActivity.class);
+ getActivity().startActivity(intent);
+ break;
+ case R.id.me_set:
+ Intent settingIntent=new Intent(getActivity(),SettingActivity.class);
+ getActivity().startActivity(settingIntent);
+ break;
+ }
+ }
}
diff --git a/app/src/main/java/com/qhclh/ytzh/me/MineInfoActivity.java b/app/src/main/java/com/qhclh/ytzh/me/MineInfoActivity.java
index e87ed3b..ad17477 100644
--- a/app/src/main/java/com/qhclh/ytzh/me/MineInfoActivity.java
+++ b/app/src/main/java/com/qhclh/ytzh/me/MineInfoActivity.java
@@ -1,17 +1,92 @@
package com.qhclh.ytzh.me;
+import android.Manifest;
+import android.content.DialogInterface;
+import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
+import android.support.annotation.NonNull;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
import android.support.v7.widget.Toolbar;
import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
import com.qhclh.ytzh.R;
import com.qhclh.ytzh.base.BaseActivity;
+import com.qhclh.ytzh.utils.BitmapUtils;
+import com.qhclh.ytzh.utils.DateUtils;
+import com.qhclh.ytzh.utils.GlideLoader;
+import com.qhclh.ytzh.utils.dialog.MixedDialog;
+import com.qhclh.ytzh.utils.widget.DateTimePickDialog;
+import com.qhclh.ytzh.utils.widget.XCRoundImageView;
+import com.yancy.gallerypick.config.GalleryConfig;
+import com.yancy.gallerypick.config.GalleryPick;
+import com.yancy.gallerypick.inter.IHandlerCallBack;
+
+import java.util.Date;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+import static com.qhclh.ytzh.utils.DateUtils.PATTERN_TRANSVERSE;
+import static com.qhclh.ytzh.utils.DateUtils.format;
public class MineInfoActivity extends BaseActivity {
+ /**
+ * 监听获取数据信息
+ */
+ IHandlerCallBack iHandlerCallBack = new IHandlerCallBack() {
+ @Override
+ public void onStart() {
+ }
+
+ @Override
+ public void onSuccess(List photoList) {
+ for (String path : photoList) {
+ imageView.setImageBitmap(BitmapUtils.getSmallBitmap(path, 100, 100));
+ }
+ }
+ @Override
+ public void onCancel() {
+ }
+
+ @Override
+ public void onFinish() {
+ }
+
+ @Override
+ public void onError() {
+ }
+ };
+ @BindView(R.id.textView)
+ TextView textView;
+ @BindView(R.id.imageView)
+ XCRoundImageView imageView;
+ @BindView(R.id.ly_personPicture)
+ LinearLayout lyPersonPicture;
+ @BindView(R.id.ly_phoneNumber)
+ LinearLayout lyPhoneNumber;
+ @BindView(R.id.ly_sex)
+ LinearLayout lySex;
+ @BindView(R.id.ly_birthday)
+ LinearLayout lyBirthday;
+ public static final int PERMISSIONS_REQUEST_READ_CONTACTS = 0x01;
+ @BindView(R.id.tv_phoneNumber)
+ TextView tvPhoneNumber;
+ @BindView(R.id.tv_sex)
+ TextView tvSex;
+ @BindView(R.id.tv_birthday)
+ TextView tvBirthday;
+ @BindView(R.id.tv_toolbar_title)
+ TextView tvToolbarTitle;
+ @BindView(R.id.toolbar)
+ Toolbar toolbar;
+ private MixedDialog mixedDialog;
@Override
protected int setLayoutId() {
@@ -20,7 +95,12 @@ public class MineInfoActivity extends BaseActivity {
@Override
protected void initView() {
-
+ initToolbar(toolbar, "个人资料", new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ finish();
+ }
+ });
}
@Override
@@ -33,4 +113,142 @@ public class MineInfoActivity extends BaseActivity {
}
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ // TODO: add setContentView(...) invocation
+ ButterKnife.bind(this);
+ }
+
+ @OnClick({R.id.ly_personPicture, R.id.ly_phoneNumber, R.id.ly_sex, R.id.ly_birthday})
+ public void onViewClicked(View view) {
+ switch (view.getId()) {
+ case R.id.ly_personPicture:
+ openSelectImage();
+ break;
+ case R.id.ly_phoneNumber:
+ ClickBtn1();
+ break;
+ case R.id.ly_sex:
+ setSexInfo();
+ break;
+ case R.id.ly_birthday:
+ setTimeDialog();
+ break;
+ }
+ }
+
+ /**
+ * 打开图片选择器前进行授权
+ */
+ private void openSelectImage() {
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
+ // 提示用户如果想要正常使用,要手动去设置中授权。
+ Toast.makeText(this, "请在 设置-应用管理 中开启此应用的储存授权。", Toast.LENGTH_SHORT).show();
+ } else {
+ ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, PERMISSIONS_REQUEST_READ_CONTACTS);
+ }
+ } else {
+ // 进行正常操作
+ openGallery();
+ }
+ }
+
+ /**
+ * 性别选择
+ */
+ private void setSexInfo() {
+ final String[] items = new String[2];
+ items[0] = "男";
+ items[1] = "女";
+ MixedDialog.showDialog(this, items, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ tvSex.setText(items[which]);
+ }
+ });
+ }
+
+ /**
+ * 日期选择器
+ */
+ private void setTimeDialog() {
+ DateTimePickDialog mDateTimePickDialog = new DateTimePickDialog(this, new DateTimePickDialog.DateChangedCallBack() {
+ @Override
+ public void onDateChanged(Date date) {
+ String birthday_time = DateUtils.format(date, PATTERN_TRANSVERSE);
+ tvBirthday.setText(birthday_time);
+ }
+ });
+ mDateTimePickDialog.show();
+ }
+
+ /**
+ * 授权
+ *
+ * @param requestCode
+ * @param permissions
+ * @param grantResults
+ */
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ if (requestCode == PERMISSIONS_REQUEST_READ_CONTACTS) {
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ openGallery();
+ }
+ }
+ }
+
+ /**
+ * 打开图片选择器
+ */
+ private void openGallery() {
+ GalleryConfig galleryConfig = new GalleryConfig.Builder()
+ .imageLoader(new GlideLoader()) // ImageLoader 加载框架(必填)
+ .iHandlerCallBack(iHandlerCallBack) // 监听接口(必填)
+ .provider("com.yancy.gallerypickdemo.fileprovider") // provider (必填)
+ .multiSelect(false) // 是否多选 默认:false
+ .multiSelect(false, 9) // 配置是否多选的同时 配置多选数量 默认:false , 9
+ .isShowCamera(true) // 是否现实相机按钮 默认:false
+ .filePath("/Gallery/Pictures") // 图片存放路径
+ .build();
+ //打开图片选择器
+ GalleryPick.getInstance().setGalleryConfig(galleryConfig).open(this);
+ }
+
+ /**
+ * 手机号编辑
+ */
+ public void ClickBtn1() {
+ mixedDialog = new MixedDialog(this, MixedDialog.SINGLE, R.style.MyDialog);
+ //标题
+ mixedDialog.setTitleText("手机号");
+ mixedDialog.show();
+ //触摸对话框外围区域是否消失对话框
+ mixedDialog.setCanceledOnTouchOutside(true);
+ mixedDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ mixedDialog.dismiss();
+
+ }
+ });
+ /**
+ * 确定按钮点击事件
+ * 显示输入的电话号码
+ * 关闭对话框
+ */
+ mixedDialog.buttonOK.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String phone_str = mixedDialog.importEditText.getText().toString();
+ tvPhoneNumber.setText(phone_str);
+ mixedDialog.dismiss();
+ }
+ });
+ }
+
+
}
diff --git a/app/src/main/java/com/qhclh/ytzh/me/SettingActivity.java b/app/src/main/java/com/qhclh/ytzh/me/SettingActivity.java
index f516803..65831cf 100644
--- a/app/src/main/java/com/qhclh/ytzh/me/SettingActivity.java
+++ b/app/src/main/java/com/qhclh/ytzh/me/SettingActivity.java
@@ -1,10 +1,31 @@
package com.qhclh.ytzh.me;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+import android.widget.TextView;
+
import com.qhclh.ytzh.R;
import com.qhclh.ytzh.base.BaseActivity;
+import com.qhclh.ytzh.utils.ActivityCollector;
+import com.qhclh.ytzh.utils.dialog.MixedDialog;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
public class SettingActivity extends BaseActivity {
+ @BindView(R.id.tv_phoneNumber)
+ TextView tvPhoneNumber;
+ @BindView(R.id.tv_logout)
+ TextView tv_logout;
+ @BindView(R.id.tv_toolbar_title)
+ TextView tvToolbarTitle;
+ @BindView(R.id.toolbar)
+ Toolbar toolbar;
+ private MixedDialog mixedDialog;
@Override
protected int setLayoutId() {
@@ -13,7 +34,12 @@ public class SettingActivity extends BaseActivity {
@Override
protected void initView() {
-
+ initToolbar(toolbar, "设置", new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ finish();
+ }
+ });
}
@Override
@@ -25,4 +51,52 @@ public class SettingActivity extends BaseActivity {
protected void initOper() {
}
+
+
+ public void ClickBtn3() {
+
+ mixedDialog = new MixedDialog(this, MixedDialog.ALERT, R.style.MyDialog);
+ mixedDialog.setTitleText("");
+ mixedDialog.show();
+
+ mixedDialog.setCanceledOnTouchOutside(true);
+ mixedDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ mixedDialog.dismiss();
+ }
+ });
+
+ mixedDialog.buttonOK.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ActivityCollector.finishAll();
+ }
+ });
+
+// mixedDialog.buttonCancel.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// mixedDialog.dismiss();
+// }
+// });
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ // TODO: add setContentView(...) invocation
+ ButterKnife.bind(this);
+ }
+
+ @OnClick({R.id.tv_phoneNumber, R.id.tv_logout})
+ public void onViewClicked(View view) {
+ switch (view.getId()) {
+ case R.id.tv_phoneNumber:
+ break;
+ case R.id.tv_logout:
+ ClickBtn3();
+ break;
+ }
+ }
}
diff --git a/app/src/main/java/com/qhclh/ytzh/splash/SplashActivity.java b/app/src/main/java/com/qhclh/ytzh/splash/SplashActivity.java
index 3b7e89a..bc8f6f9 100644
--- a/app/src/main/java/com/qhclh/ytzh/splash/SplashActivity.java
+++ b/app/src/main/java/com/qhclh/ytzh/splash/SplashActivity.java
@@ -61,7 +61,7 @@ public class SplashActivity extends BaseActivity {
}
private void redirectTo() {
- startActivity(new Intent(this, LoginActivity.class));
+ startActivity(new Intent(this, MainActivity.class));
finish();
}
}
diff --git a/app/src/main/java/com/qhclh/ytzh/utils/widget/XCRoundImageView.java b/app/src/main/java/com/qhclh/ytzh/utils/widget/XCRoundImageView.java
index 91eca4f..2a3436d 100644
--- a/app/src/main/java/com/qhclh/ytzh/utils/widget/XCRoundImageView.java
+++ b/app/src/main/java/com/qhclh/ytzh/utils/widget/XCRoundImageView.java
@@ -21,10 +21,12 @@ public class XCRoundImageView extends ImageView{
private Paint paint;
public XCRoundImageView(Context context) {
super(context);
+ paint=new Paint();
}
public XCRoundImageView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
+ paint=new Paint();
}
public XCRoundImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
diff --git a/app/src/main/res/layout/activity_mine_info.xml b/app/src/main/res/layout/activity_mine_info.xml
index 3cf5b92..14d069e 100644
--- a/app/src/main/res/layout/activity_mine_info.xml
+++ b/app/src/main/res/layout/activity_mine_info.xml
@@ -5,13 +5,14 @@
android:layout_height="match_parent"
android:background="@color/greyf4f4f4"
android:orientation="vertical">
-
+
-
+
+
+
+
+
-
+
-
+
+
+
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml
index 5d306e0..4523104 100644
--- a/app/src/main/res/layout/activity_setting.xml
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -5,7 +5,7 @@
android:layout_height="match_parent"
android:background="@color/greyf4f4f4"
android:orientation="vertical">
-
+
#0b9343
-
+ #FF16BB8E
+ #FF108D6C
#999999
#EEEEEE
#E3383B
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index c5753b0..628d35d 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -62,6 +62,19 @@
- @dimen/tab_text_size
+
+
+
diff --git a/build.gradle b/build.gradle
index 3fb806a..a1f564b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,8 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
- classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
+ classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
+
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -15,6 +16,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ maven { url "https://jitpack.io" }
}
}