package com.c9mj.platform.user.ui; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.FloatingActionButton; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.blankj.utilcode.utils.ToastUtils; import com.bumptech.glide.Glide; import com.c9mj.platform.App; import com.c9mj.platform.R; import com.c9mj.platform.util.global.Constants; import com.c9mj.platform.widget.fragment.BaseFragment; import com.miguelbcr.ui.rx_paparazzo2.RxPaparazzo; import com.yalantis.ucrop.UCrop; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; /** * author: LMJ * date: 2016/9/1 */ public class UserFragment extends BaseFragment { @BindView(R.id.iv_appbar) ImageView iv_appbar; @BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.btn_photo) FloatingActionButton btn_photo; private String savePath;//调用系统Camera相片保存的路径 public static UserFragment newInstance() { UserFragment fragment = new UserFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_user, container, false); ButterKnife.bind(this, view); return view; } private void initView() { //初始化MVP //设置RefreshLayout //设置RecyclerView /***设置其他View***/ } @Override public void onLazyInitView(@Nullable Bundle savedInstanceState) { super.onLazyInitView(savedInstanceState); initToolBar(); } private void initToolBar() { toolbar.setTitle(getString(R.string.user)); ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); String filePath = App.getSpUtils().getString(Constants.STRING_USER);//查询保存的背景图片路径 if (!TextUtils.isEmpty(filePath)) { Glide.with(this).load(filePath).into(iv_appbar); } else { Glide.with(this).load(R.drawable.background_default).into(iv_appbar);//加载默认背景 } } @OnClick({R.id.toolbar, R.id.btn_photo}) public void onClick(View view) { UCrop.Options options = new UCrop.Options(); int color = ContextCompat.getColor(view.getContext(), R.color.color_primary); options.setToolbarColor(color); options.setStatusBarColor(ContextCompat.getColor(view.getContext(), R.color.color_primary_dark)); options.setActiveWidgetColor(color); switch (view.getId()) { case R.id.toolbar: break; case R.id.btn_photo: { final Context context = view.getContext(); AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Tips:") .setMessage("如何获取图片?") .setPositiveButton(getString(R.string.user_gallery), (dialog, which) -> { dialog.dismiss(); RxPaparazzo.takeImage(UserFragment.this) .crop(options) .usingGallery() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(response -> { if (response.resultCode() == Activity.RESULT_OK) { String filePath = response.data(); Glide.with(this).load(filePath).into(iv_appbar); App.getSpUtils().putString(Constants.STRING_USER, filePath);//保存图片路径 } else if (response.resultCode() == Activity.RESULT_CANCELED) { ToastUtils.showShortToast(getString(R.string.user_carema_cancel)); } else { ToastUtils.showShortToast(getString(R.string.error_unknown)); } }); }) .setNeutralButton(getString(R.string.cancel), (dialog, which) -> dialog.dismiss()) .setNegativeButton(getString(R.string.user_carema), (dialog, which) -> { dialog.dismiss(); RxPaparazzo.takeImage(UserFragment.this) .crop(options) .usingCamera() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(response -> { if (response.resultCode() == Activity.RESULT_OK) { String filePath = response.data(); Glide.with(this).load(filePath).into(iv_appbar); App.getSpUtils().putString(Constants.STRING_USER, filePath);//保存图片路径 } else if (response.resultCode() == Activity.RESULT_CANCELED) { ToastUtils.showShortToast(getString(R.string.user_carema_cancel)); } else { ToastUtils.showShortToast(getString(R.string.error_unknown)); } }); }); AlertDialog dialog = builder.create(); dialog.show(); dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(ContextCompat.getColor(context, R.color.color_primary)); dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(ContextCompat.getColor(context, R.color.color_primary)); dialog.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(ContextCompat.getColor(context, R.color.color_secondary_text)); break; } } } }