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