充电桩app代码

UserInfoActivity.java 54KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369
  1. package com.electric.chargingpile.activity;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.graphics.Bitmap;
  7. import android.graphics.BitmapFactory;
  8. import android.graphics.Canvas;
  9. import android.graphics.Matrix;
  10. import android.graphics.Paint;
  11. import android.graphics.PorterDuff;
  12. import android.graphics.PorterDuffXfermode;
  13. import android.graphics.Rect;
  14. import android.graphics.RectF;
  15. import android.graphics.drawable.BitmapDrawable;
  16. import android.graphics.drawable.Drawable;
  17. import android.net.Uri;
  18. import android.os.Build;
  19. import android.os.Bundle;
  20. import android.os.Environment;
  21. import android.os.Handler;
  22. import android.os.Message;
  23. import android.provider.MediaStore;
  24. import androidx.core.content.FileProvider;
  25. import android.text.TextUtils;
  26. import android.util.Log;
  27. import android.view.Gravity;
  28. import android.view.KeyEvent;
  29. import android.view.LayoutInflater;
  30. import android.view.MotionEvent;
  31. import android.view.View;
  32. import android.view.ViewGroup;
  33. import android.view.animation.AnimationUtils;
  34. import android.widget.AdapterView;
  35. import android.widget.ArrayAdapter;
  36. import android.widget.Button;
  37. import android.widget.CompoundButton;
  38. import android.widget.EditText;
  39. import android.widget.ImageView;
  40. import android.widget.PopupWindow;
  41. import android.widget.RelativeLayout;
  42. import android.widget.Spinner;
  43. import android.widget.TextView;
  44. import android.widget.Toast;
  45. import android.widget.ToggleButton;
  46. import com.electric.chargingpile.R;
  47. import com.electric.chargingpile.application.MainApplication;
  48. import com.electric.chargingpile.data.Cars;
  49. import com.electric.chargingpile.data.Province;
  50. import com.electric.chargingpile.manager.ProfileManager;
  51. import com.electric.chargingpile.util.BarColorUtil;
  52. import com.electric.chargingpile.util.DES3;
  53. import com.electric.chargingpile.util.JsonUtils;
  54. import com.electric.chargingpile.util.LoadingDialog;
  55. import com.electric.chargingpile.util.LogUtils;
  56. import com.electric.chargingpile.util.OkHttpUtil;
  57. import com.electric.chargingpile.util.PhotoUtils;
  58. import com.electric.chargingpile.util.StatusConstants;
  59. import com.electric.chargingpile.util.ToastUtil;
  60. import com.electric.chargingpile.util.UploadUtil;
  61. import com.electric.chargingpile.view.CustomProgressDialog;
  62. import com.electric.chargingpile.view.RoundImageView;
  63. import com.electric.chargingpile.view.xrichtext.SDCardUtil;
  64. import com.squareup.okhttp.Request;
  65. import com.squareup.okhttp.Response;
  66. import com.squareup.picasso.Picasso;
  67. import com.squareup.picasso.Target;
  68. import com.umeng.analytics.MobclickAgent;
  69. import org.json.JSONArray;
  70. import org.json.JSONException;
  71. import org.json.JSONObject;
  72. import java.io.ByteArrayInputStream;
  73. import java.io.ByteArrayOutputStream;
  74. import java.io.File;
  75. import java.io.FileOutputStream;
  76. import java.io.IOException;
  77. import java.util.ArrayList;
  78. import java.util.HashMap;
  79. import java.util.List;
  80. import java.util.Map;
  81. import me.iwf.photopicker.PhotoPicker;
  82. import pub.devrel.easypermissions.AfterPermissionGranted;
  83. import pub.devrel.easypermissions.EasyPermissions;
  84. public class UserInfoActivity extends Activity implements View.OnClickListener, EasyPermissions.PermissionCallbacks {
  85. private static final String TAG = "UserInfoActivity";
  86. private ImageView back;
  87. private EditText et_nickName;
  88. private EditText et_realName;
  89. private TextView et_che;
  90. private ToggleButton btn_sex, btn_car;
  91. private RelativeLayout rl_icon, rl_select_car, rl_isBuy;
  92. private Button cancleButton, btn_one, btn_two;
  93. private PopupWindow popupWindow;
  94. private View popupWindowView;
  95. private RoundImageView iconPic;
  96. private TextView tv_save, onclick;
  97. private String sex = "1";
  98. private String nocar = "";
  99. private String havecar = "";
  100. private Bitmap download_bmp;
  101. LoadingDialog dialog;
  102. String name0 = "";
  103. String name1 = "";
  104. private int cha;
  105. private String chatime;
  106. private Bitmap photo, output;
  107. Context mContext;
  108. private String car_brand, car_type;
  109. private Spinner spinnerProvince, spinnerCity;
  110. List<Province> pr = new ArrayList<Province>();
  111. private CustomProgressDialog pd_info;
  112. private String ss;
  113. public static final int RESULT_SUCCESS = 0;
  114. Bitmap bitmap = null;
  115. Bitmap selectbm = null;
  116. Bitmap servicebitmap = null;
  117. int default_brand = -1, default_type = -1;
  118. String chexing;
  119. String yichexing;
  120. private ImageView point;
  121. public static final int REQUSET = 11;
  122. String select_pinpai = "", select_chexing = "";
  123. private TextView tv_point, tv_buy;
  124. private RelativeLayout rl_point;
  125. private android.view.animation.Animation animation;
  126. private File fileUri = new File(Environment.getExternalStorageDirectory().getPath() + "/photo.jpg");
  127. private File fileCropUri = new File(Environment.getExternalStorageDirectory().getPath() + "/crop_photo.jpg");
  128. private Uri imageUri;
  129. private Uri cropImageUri;
  130. private static final int RC_CAMERA_PERM = 123;
  131. @Override
  132. protected void onCreate(Bundle savedInstanceState) {
  133. super.onCreate(savedInstanceState);
  134. BarColorUtil.initStatusBarColor(UserInfoActivity.this);
  135. setContentView(R.layout.activity_user_info);
  136. dialog = new LoadingDialog(this);
  137. dialog.setCanceledOnTouchOutside(false);
  138. mContext = this;
  139. initView();
  140. // getFromServer();
  141. spinner();
  142. getFromServer();
  143. }
  144. public void onEventMainThread(Province b) {
  145. Log.e("ffff", b.getName() + " " + b.getCities().get(b.getId()).getName());
  146. // Toast.makeText(this, b.getName()+ " " + b.getCities().get(b.getId()).getName(), Toast.LENGTH_SHORT).show();
  147. et_che.setText(b.getName() + " - " + b.getCities().get(b.getId()).getName());
  148. car_brand = b.getName();
  149. car_type = b.getCities().get(b.getId()).getName();
  150. }
  151. private void initView() {
  152. tv_buy = (TextView) findViewById(R.id.tv_buy);
  153. rl_point = (RelativeLayout) findViewById(R.id.rl_point);
  154. rl_isBuy = (RelativeLayout) findViewById(R.id.rl_isBuy);
  155. rl_isBuy.setOnClickListener(this);
  156. tv_point = (TextView) findViewById(R.id.tv_point);
  157. animation = AnimationUtils.loadAnimation(UserInfoActivity.this, R.anim.nn);
  158. rl_select_car = (RelativeLayout) findViewById(R.id.rl_select_car);
  159. rl_select_car.setOnClickListener(this);
  160. animation = AnimationUtils.loadAnimation(UserInfoActivity.this, R.anim.nn);
  161. point = (ImageView) findViewById(R.id.tv_one);
  162. et_nickName = (EditText) findViewById(R.id.et_nickName);
  163. et_nickName.setText(MainApplication.userNickname);
  164. et_nickName.setOnClickListener(new View.OnClickListener() {
  165. @Override
  166. public void onClick(View view) {
  167. MobclickAgent.onEvent(getApplicationContext(), "0802", new HashMap<String, String>().put("type", "昵称"));
  168. }
  169. });
  170. et_realName = (EditText) findViewById(R.id.et_realName);
  171. et_che = (TextView) findViewById(R.id.et_che);
  172. Log.e(TAG, "initView: " + MainApplication.userCar);
  173. if (MainApplication.userCar.equals("")) {
  174. tv_buy.setText("");
  175. rl_select_car.setVisibility(View.GONE);
  176. } else if ("待购".equals(MainApplication.userCar)) {
  177. tv_buy.setText("未购买");
  178. rl_select_car.setVisibility(View.GONE);
  179. et_che.setText("");
  180. } else {
  181. String car = MainApplication.userCar.replace("$$", " ");
  182. tv_buy.setText("已购买");
  183. rl_select_car.setVisibility(View.VISIBLE);
  184. et_che.setText(car);
  185. String[] strarray = car.split(" ");
  186. if (strarray.length > 1) {
  187. car_brand = strarray[0];
  188. car_type = strarray[1];
  189. }
  190. }
  191. onclick = (TextView) findViewById(R.id.onclick);
  192. onclick.setOnClickListener(this);
  193. back = (ImageView) findViewById(R.id.iv_back);
  194. back.setOnClickListener(this);
  195. rl_icon = (RelativeLayout) findViewById(R.id.rl_icon);
  196. rl_icon.setOnClickListener(this);
  197. btn_sex = (ToggleButton) findViewById(R.id.sex_button);
  198. btn_sex.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  199. @Override
  200. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  201. if (isChecked) {
  202. Log.d("@@@@", "女");
  203. sex = "0";
  204. } else {
  205. Log.d("!!!!", "男");
  206. sex = "1";
  207. }
  208. }
  209. });
  210. btn_car = (ToggleButton) findViewById(R.id.car_button);
  211. btn_car.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  212. @Override
  213. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  214. if (isChecked) {
  215. Log.d("@@@@", "nocar");
  216. } else {
  217. Log.d("!!!!", "havecar");
  218. }
  219. }
  220. });
  221. iconPic = (RoundImageView) findViewById(R.id.iv_user_icon);
  222. setIcon();
  223. tv_save = (TextView) findViewById(R.id.tv_make_sure);
  224. tv_save.setOnClickListener(this);
  225. // rl_brand = (RelativeLayout) findViewById(R.id.rl_1);
  226. // rl_brand.setOnClickListener(this);
  227. // rl_type = (RelativeLayout) findViewById(R.id.rl_2);
  228. // rl_type.setOnClickListener(this);
  229. // long appTime1 = System.currentTimeMillis()/1000;
  230. //// Log.d("appTime(long)---", appTime1+"");
  231. // String apptime = String.valueOf(appTime1);
  232. // int updateapptime = Integer.valueOf(apptime);
  233. //
  234. // if(MainFragment.cha>0){
  235. // cha = updateapptime - (MainFragment.cha);
  236. // }else if (MainFragment.cha<0){
  237. // cha = updateapptime+(MainFragment.cha);
  238. // }else {
  239. // cha = updateapptime;
  240. // }
  241. // chatime = String.valueOf(cha);
  242. // Log.i("updatetime----",updateapptime+"");
  243. // Log.i("cha",chatime);
  244. }
  245. private void setIcon() {
  246. if (!"".equals(MainApplication.userIcon)) {
  247. Picasso.with(UserInfoActivity.this)
  248. .load(MainApplication.userIcon)
  249. .into(new Target() {
  250. @Override
  251. public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) {
  252. iconPic.setImageBitmap(bitmap);
  253. photo = ((BitmapDrawable) iconPic.getDrawable()).getBitmap();
  254. }
  255. @Override
  256. public void onBitmapFailed(Drawable drawable) {
  257. }
  258. @Override
  259. public void onPrepareLoad(Drawable drawable) {
  260. }
  261. });
  262. } else {
  263. iconPic.setImageResource(R.drawable.icon_face2_0);
  264. photo = ((BitmapDrawable) iconPic.getDrawable()).getBitmap();
  265. }
  266. // if (ImageTools.findPhotoFromSDCard(MainApplication.storePath,"user_icon")){
  267. // Bitmap bmp = BitmapFactory.decodeFile(MainApplication.storePath+"/user_icon.png");
  268. // photo = bmp;
  269. // iconPic.setImageBitmap(bmp);
  270. // }else {
  271. // Log.e(TAG, "setIcon: "+MainApplication.userIcon );
  272. // new Task().execute(MainApplication.userIcon);
  273. // }
  274. }
  275. private void spinner() {
  276. List<Cars> cars = new ArrayList<Cars>();
  277. Cars car = new Cars("E140ev", "1", "1");
  278. // Cars car1=new Cars("E150ev","1","2");
  279. // Cars car2=new Cars("EV160","1","3");
  280. // Cars car3=new Cars("EV200","1","4");
  281. cars.add(car);
  282. // cars.add(car1);
  283. // cars.add(car2);
  284. // cars.add(car3);
  285. //
  286. List<Cars> cars2 = new ArrayList<Cars>();
  287. Cars car0 = new Cars("车型", "1", "1");
  288. // Cars car11=new Cars("2222","1","2");
  289. // Cars car22=new Cars("33333","1","3");
  290. // Cars car33=new Cars("4444","1","4");
  291. cars2.add(car0);
  292. // cars2.add(car11);
  293. // cars2.add(car22);
  294. // cars2.add(car33);
  295. // // spinner方面的东西
  296. spinnerProvince = (Spinner) this
  297. .findViewById(R.id.spinner_province_search_event);
  298. spinnerCity = (Spinner) this
  299. .findViewById(R.id.spinner_city_search_event);
  300. Province p = new Province();
  301. p.setCities(cars2);
  302. p.setId(1);
  303. p.setName("品牌");
  304. // Province p2=new Province("比亚迪1", 2, cars2);
  305. // Province p3=new Province("比亚迪2", 2, cars);
  306. // Province p4=new Province("比亚迪3", 2, cars);
  307. // Province p5=new Province("比亚迪4", 2, cars);
  308. // Province p6=new Province("比亚迪5", 2, cars);
  309. // Province p7=new Province("比亚迪6", 2, cars);
  310. // Province p8=new Province("比亚迪7", 2, cars);
  311. // Province p9=new Province("比亚迪8", 2, cars);
  312. pr.add(p);
  313. // pr.add(p2);
  314. // pr.add(p3);
  315. // pr.add(p4);
  316. // pr.add(p5);
  317. // pr.add(p6);
  318. // pr.add(p7);
  319. // pr.add(p8);
  320. // pr.add(p9);
  321. // pr.add(p2);
  322. ArrayAdapter<Province> provinceAdapter = new ArrayAdapter<Province>(UserInfoActivity.this, R.layout.simple_spinner_item, pr);
  323. spinnerProvince.setAdapter(provinceAdapter);
  324. spinnerProvince.setOnItemSelectedListener(new ProvinceAdapter());
  325. spinnerCity.setOnItemSelectedListener(new CityAdapter());
  326. }
  327. @Override
  328. public void onPermissionsGranted(int requestCode, List<String> perms) {
  329. }
  330. @Override
  331. public void onPermissionsDenied(int requestCode, List<String> perms) {
  332. }
  333. class ProvinceAdapter implements AdapterView.OnItemSelectedListener {
  334. /**
  335. * (non-Javadoc)
  336. */
  337. @Override
  338. public void onItemSelected(AdapterView<?> parent, View view,
  339. int position, long id) {
  340. onProvinChange(position);
  341. Province d = pr.get(position);
  342. // btnP.setText(d.getName());
  343. try {
  344. car_brand = d.getName();
  345. } catch (Exception e) {
  346. e.printStackTrace();
  347. }
  348. }
  349. /**
  350. * (non-Javadoc)
  351. */
  352. @Override
  353. public void onNothingSelected(AdapterView<?> parent) {
  354. }
  355. }
  356. final class CityAdapter extends ProvinceAdapter {
  357. @Override
  358. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  359. // currentCity = currentProvince.getCities().get(position);
  360. car_type = (String) spinnerCity.getSelectedItem();
  361. Log.e("car_type", car_type);
  362. }
  363. }
  364. public void onProvinChange(int position) {
  365. // currentProvince = parse.getProvinces().get(position);
  366. List<Cars> car = pr.get(position).getCities();
  367. List<String> strName = new ArrayList<String>();
  368. for (int i = 0; i < car.size(); i++) {
  369. Cars c = car.get(i);
  370. strName.add(c.getName());
  371. }
  372. ArrayAdapter<String> cityAdapter = new ArrayAdapter<String>(
  373. UserInfoActivity.this, R.layout.simple_spinner_item,
  374. android.R.id.text1, strName);
  375. spinnerCity.setAdapter(cityAdapter);
  376. Log.e("default_type", default_type + "");
  377. if (default_type != -1) {
  378. spinnerCity.setSelection(default_type);
  379. default_type = -1;
  380. }
  381. // Log.e("default_type",default_type+"");
  382. // if (default_type==-1){
  383. // spinnerCity.setSelection(0);
  384. // default_type=-1;
  385. // }else{
  386. // spinnerCity.setSelection(default_type);
  387. // }
  388. // if (currentProvince.getCities().size() > 0) {
  389. // cityAdapter.notifyDataSetChanged();
  390. // spinnerCity.setSelection(0);
  391. // }
  392. }
  393. @Override
  394. public void onClick(View v) {
  395. switch (v.getId()) {
  396. case R.id.rl_select_car:
  397. MobclickAgent.onEvent(getApplicationContext(), "0802", new HashMap<String, String>().put("type", "车型"));
  398. // startActivityForResult(new Intent(UserInfoActivity.this,
  399. // ChePaiActivity.class), 55);
  400. startActivityForResult(new Intent(UserInfoActivity.this, SelectCarActivity.class), REQUSET);
  401. break;
  402. case R.id.rl_isBuy:
  403. MobclickAgent.onEvent(getApplicationContext(), "0802", new HashMap<String, String>().put("type", "是否购车"));
  404. LayoutInflater inflater1 = (LayoutInflater) getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
  405. View popupWindowView = inflater1.inflate(R.layout.layout_isbuy, null);
  406. final PopupWindow popupWindow1 = new PopupWindow(popupWindowView,
  407. ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
  408. true);
  409. popupWindow1.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_yinying531));
  410. popupWindow1.setOutsideTouchable(true);
  411. popupWindowView.setOnKeyListener(new View.OnKeyListener() {
  412. @Override
  413. public boolean onKey(View v, int keyCode, KeyEvent event) {
  414. if ((keyCode == KeyEvent.KEYCODE_MENU) && (popupWindow1.isShowing())) {
  415. popupWindow1.dismiss();
  416. return true;
  417. }
  418. return false;
  419. }
  420. });
  421. popupWindowView.setOnTouchListener(new View.OnTouchListener() {
  422. @Override
  423. public boolean onTouch(View v, MotionEvent event) {
  424. if (popupWindow1.isShowing()) {
  425. popupWindow1.dismiss();
  426. }
  427. return false;
  428. }
  429. });
  430. // 设置PopupWindow的弹出和消失效果
  431. popupWindow1.setAnimationStyle(R.style.popupAnimation);
  432. Button cancleButton = (Button) popupWindowView
  433. .findViewById(R.id.cancleButton);
  434. cancleButton.setOnClickListener(new View.OnClickListener() {
  435. @Override
  436. public void onClick(View view) {
  437. popupWindow1.dismiss();
  438. }
  439. });
  440. Button btn_one = (Button) popupWindowView.findViewById(R.id.tvTwo);
  441. btn_one.setOnClickListener(new View.OnClickListener() {
  442. @Override
  443. public void onClick(View view) {
  444. tv_buy.setText("已购买");
  445. rl_select_car.setVisibility(View.VISIBLE);
  446. // Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  447. // intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
  448. // Environment.getExternalStorageDirectory(), "androidapp.jpg")));
  449. // ((Activity) mContext).startActivityForResult(intent, 2);
  450. popupWindow1.dismiss();
  451. }
  452. });
  453. Button btn_two = (Button) popupWindowView.findViewById(R.id.tvThree);
  454. btn_two.setOnClickListener(new View.OnClickListener() {
  455. @Override
  456. public void onClick(View view) {
  457. tv_buy.setText("未购买");
  458. rl_select_car.setVisibility(View.GONE);
  459. // Intent intent = new Intent(Intent.ACTION_PICK, null);
  460. // intent.setDataAndType(
  461. // MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
  462. // "image/*");
  463. // startActivityForResult(intent, 1);
  464. popupWindow1.dismiss();
  465. }
  466. });
  467. popupWindow1.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
  468. break;
  469. case R.id.onclick:
  470. break;
  471. case R.id.iv_back:
  472. finish();
  473. break;
  474. case R.id.rl_icon:
  475. MobclickAgent.onEvent(getApplicationContext(), "0802", new HashMap<String, String>().put("type", "头像"));
  476. cameraTask();
  477. break;
  478. case R.id.tv_make_sure:
  479. if (checkText()) {
  480. MobclickAgent.onEvent(getApplicationContext(), "0802", new HashMap<String, String>().put("type", "保存"));
  481. new Thread(new Runnable() {
  482. @Override
  483. public void run() {
  484. shite("");
  485. }
  486. }).start();
  487. dialog.show();
  488. }
  489. break;
  490. }
  491. }
  492. private boolean checkText() {
  493. String nickName = et_nickName.getText().toString().trim();
  494. String isBuy = tv_buy.getText().toString().trim();
  495. String carType = et_che.getText().toString().trim();
  496. if (TextUtils.isEmpty(nickName)) {
  497. Toast.makeText(this, "请输入您的昵称", Toast.LENGTH_SHORT).show();
  498. return false;
  499. }
  500. if (TextUtils.isEmpty(isBuy)) {
  501. Toast.makeText(this, "请选择您是否购买了新能源汽车", Toast.LENGTH_SHORT).show();
  502. return false;
  503. }
  504. if (isBuy.equals("已购买")) {
  505. if (TextUtils.isEmpty(carType)) {
  506. Toast.makeText(this, "请选择您购买的车型", Toast.LENGTH_SHORT).show();
  507. return false;
  508. }
  509. }
  510. return true;
  511. }
  512. public void createDialog() {
  513. if (pd_info == null) {
  514. pd_info = CustomProgressDialog.createDialog(mContext);
  515. pd_info.setMessage(mContext.getResources().getString(
  516. R.string.version_updating));
  517. pd_info.show();
  518. }
  519. }
  520. public void dismissDialog() {
  521. if (pd_info != null) {
  522. pd_info.dismiss();
  523. pd_info = null;
  524. }
  525. }
  526. private void showWindow() {
  527. LayoutInflater inflater = (LayoutInflater) getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
  528. popupWindowView = inflater.inflate(R.layout.popupwindow_upload, null);
  529. popupWindow = new PopupWindow(popupWindowView,
  530. ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT,
  531. true);
  532. popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg_yinying531));
  533. popupWindow.setOutsideTouchable(true);
  534. popupWindowView.setOnKeyListener(new View.OnKeyListener() {
  535. @Override
  536. public boolean onKey(View v, int keyCode, KeyEvent event) {
  537. if ((keyCode == KeyEvent.KEYCODE_MENU) && (popupWindow.isShowing())) {
  538. popupWindow.dismiss();
  539. return true;
  540. }
  541. return false;
  542. }
  543. });
  544. popupWindowView.setOnTouchListener(new View.OnTouchListener() {
  545. @Override
  546. public boolean onTouch(View v, MotionEvent event) {
  547. if (popupWindow.isShowing()) {
  548. popupWindow.dismiss();
  549. }
  550. return false;
  551. }
  552. });
  553. // 设置PopupWindow的弹出和消失效果
  554. popupWindow.setAnimationStyle(R.style.popupAnimation);
  555. cancleButton = (Button) popupWindowView
  556. .findViewById(R.id.cancleButton);
  557. cancleButton.setOnClickListener(new View.OnClickListener() {
  558. @Override
  559. public void onClick(View view) {
  560. popupWindow.dismiss();
  561. }
  562. });
  563. btn_one = (Button) popupWindowView.findViewById(R.id.tvTwo);
  564. btn_one.setOnClickListener(new View.OnClickListener() {
  565. @Override
  566. public void onClick(View view) {
  567. takePhoto(view);
  568. popupWindow.dismiss();
  569. }
  570. });
  571. btn_two = (Button) popupWindowView.findViewById(R.id.tvThree);
  572. btn_two.setOnClickListener(new View.OnClickListener() {
  573. @Override
  574. public void onClick(View view) {
  575. Intent intent = new Intent(Intent.ACTION_PICK, null);
  576. intent.setDataAndType(
  577. MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
  578. "image/*");
  579. startActivityForResult(intent, 1);
  580. popupWindow.dismiss();
  581. }
  582. });
  583. popupWindow.showAtLocation(cancleButton, Gravity.CENTER, 0, 0);
  584. }
  585. public void shite(String s) {
  586. Map<String, String> par = new HashMap<String, String>();
  587. String file;
  588. long appTime1 = System.currentTimeMillis() / 1000;
  589. Log.i("appTime(long)---", appTime1 + "");
  590. long updatetime = appTime1 - MainMapActivity.cha - 1;
  591. Log.i("updatetime(long)---", updatetime + "");
  592. Log.i("cha---", MainMapActivity.cha + "");
  593. String token = String.valueOf(updatetime);
  594. Log.i("token---", token);
  595. if (tv_buy.getText().toString().equals("未购买")) {
  596. havecar = "待购";
  597. } else {
  598. if (car_brand != null && null != car_type) {
  599. havecar = car_brand + "$$" + car_type;
  600. }
  601. }
  602. nocar = "";
  603. try {
  604. if (null != photo) {
  605. Bitmap bm = imageZoom(photo);
  606. ss = bitmapToBase64(bm);
  607. }
  608. par.put("file", ss);
  609. par.put("filename", "androidapp.jpg");
  610. } catch (Exception e) {
  611. e.printStackTrace();
  612. }
  613. par.put("username", et_realName.getText().toString());
  614. par.put("nickname", et_nickName.getText().toString());
  615. par.put("sex", sex);
  616. par.put("chexing", havecar);
  617. par.put("yichexing", nocar);
  618. Log.e("chexing", havecar);
  619. Log.e("yichexing", nocar);
  620. try {
  621. par.put("token", DES3.encode(token));
  622. } catch (Exception e) {
  623. e.printStackTrace();
  624. }
  625. try {
  626. String u = UploadUtil.post(
  627. MainApplication.url + "/zhannew/basic/web/index.php/tpmember/full?id=" + MainApplication.userId,
  628. par, null);
  629. Message msg = new Message();
  630. msg.obj = u;
  631. msg.what = 2;
  632. handle.sendMessage(msg);
  633. } catch (IOException e) {
  634. e.printStackTrace();
  635. }
  636. }
  637. /**
  638. * 拍照
  639. *
  640. * @param view
  641. */
  642. public void takePhoto(View view) {
  643. if (SDCardUtil.hasSdcard()) {
  644. imageUri = Uri.fromFile(fileUri);
  645. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
  646. //通过FileProvider创建一个content类型的Uri
  647. imageUri = FileProvider.getUriForFile(UserInfoActivity.this, "com.electric.chargingpile.provider", fileUri);
  648. PhotoUtils.takePicture(UserInfoActivity.this, imageUri, 2);
  649. } else {
  650. Toast.makeText(UserInfoActivity.this, "设备没有SD卡!", Toast.LENGTH_SHORT).show();
  651. Log.e("asd", "设备没有SD卡");
  652. }
  653. }
  654. @AfterPermissionGranted(RC_CAMERA_PERM)
  655. public void cameraTask() {
  656. if (hasCameraPermission()) {
  657. showWindow();
  658. } else {
  659. // Ask for one permission
  660. EasyPermissions.requestPermissions(
  661. this,
  662. "充电桩需要获取您相关权限,是否允许?",
  663. RC_CAMERA_PERM,
  664. Manifest.permission.CAMERA,
  665. Manifest.permission.WRITE_EXTERNAL_STORAGE,
  666. Manifest.permission.READ_EXTERNAL_STORAGE);
  667. }
  668. }
  669. private boolean hasCameraPermission() {
  670. return EasyPermissions.hasPermissions(this,
  671. Manifest.permission.WRITE_EXTERNAL_STORAGE,
  672. Manifest.permission.READ_EXTERNAL_STORAGE,
  673. Manifest.permission.CAMERA
  674. );
  675. }
  676. /**
  677. * 调用系统相册
  678. *
  679. * @param view
  680. */
  681. public void getPhoto(View view) {
  682. PhotoUtils.openPic(UserInfoActivity.this, 1);
  683. }
  684. public void startPhotoZoom(Uri uri) {
  685. /*
  686. *   * 至于下面这个Intent的ACTION是怎么知道的,大家可以看下自己路径下的如下网页   *
  687. * yourself_sdk_path/docs/reference/android/content/Intent.html   *
  688. * 直接在里面Ctrl+F搜:CROP ,之前小马没仔细看过,其实安卓系统早已经有自带图片裁剪功能,   * 是直接调本地库的,不懂C C++
  689. * 这个不做详细了解去了,有轮子就用轮子,不再研究轮子是怎么   * 制做的了...吼吼
  690. */
  691. Intent intent = new Intent("com.android.camera.action.CROP");
  692. intent.setDataAndType(uri, "image/*");
  693. intent.putExtra("crop", "true");
  694. // aspectX aspectY 是宽高的比例
  695. intent.putExtra("aspectX", 1);
  696. intent.putExtra("aspectY", 1);
  697. // outputX outputY 是裁剪图片宽高
  698. intent.putExtra("outputX", 150);
  699. intent.putExtra("outputY", 150);
  700. intent.putExtra("return-data", true);
  701. startActivityForResult(intent, 3);
  702. }
  703. /**
  704. * 保存裁剪之后的图片数据
  705. **/
  706. private void setPicToView(Intent picdata) {
  707. com.blankj.utilcode.util.LogUtils.e("!@#");
  708. Bundle extras = picdata.getExtras();
  709. if (extras != null) {
  710. photo = extras.getParcelable("data");
  711. if (photo != null) {
  712. // m_imageUser.setImageBitmap((Bitmap) photo);
  713. // 给image设置图片
  714. // toRoundBitmap(photo);
  715. iconPic.setImageBitmap(photo);
  716. // saveBitmap();
  717. }
  718. }
  719. }
  720. private String bitmapToBase64(Bitmap bitmap) {
  721. String result = null;
  722. ByteArrayOutputStream baos = null;
  723. try {
  724. if (bitmap != null) {
  725. baos = new ByteArrayOutputStream();
  726. bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
  727. baos.flush();
  728. baos.close();
  729. byte[] bitmapBytes = baos.toByteArray();
  730. result = android.util.Base64.encodeToString(bitmapBytes, android.util.Base64.DEFAULT);
  731. }
  732. } catch (IOException e) {
  733. e.printStackTrace();
  734. } finally {
  735. try {
  736. if (baos != null) {
  737. baos.flush();
  738. baos.close();
  739. }
  740. } catch (IOException e) {
  741. e.printStackTrace();
  742. }
  743. }
  744. return result;
  745. }
  746. @Override
  747. public void onActivityResult(final int requestCode, int resultCode,
  748. final Intent data) {
  749. super.onActivityResult(requestCode, resultCode, data);
  750. int output_X = 150, output_Y = 150;
  751. // Log.e("data", data.toString() + " resultCode ==" + resultCode);
  752. if (resultCode != Activity.RESULT_OK)
  753. return;
  754. switch (requestCode) {
  755. // 如果是直接从相册获取
  756. case REQUSET:
  757. select_pinpai = data.getStringExtra("pinpai");
  758. select_chexing = data.getStringExtra("chexing");
  759. et_che.setText(select_pinpai + " " + select_chexing);
  760. car_brand = select_pinpai;
  761. car_type = select_chexing;
  762. break;
  763. case PhotoPicker.REQUEST_CODE:
  764. if (data != null) {
  765. data.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
  766. ArrayList<String> photos = data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS);
  767. // for (String imagePath : photos) {
  768. //
  769. // }
  770. // }
  771. // startPhotoZoom(data.getData());
  772. //可以同时插入多张图片
  773. for (String imagePath : photos) {
  774. File file = new File(imagePath);
  775. com.blankj.utilcode.util.LogUtils.e(file.length());
  776. Uri fileUri = FileProvider.getUriForFile(getApplicationContext(),
  777. getApplicationContext().getPackageName() + ".provider", file);
  778. //设置权限
  779. com.blankj.utilcode.util.LogUtils.e(fileUri);
  780. startPhotoZoom(fileUri);
  781. // Log.e(TAG, "call: imagePath "+imagePath );
  782. // photo = BitmapFactory.decodeFile(imagePath);//压缩图片
  783. // if (ImageUtils.readPictureDegree(imagePath) != 0 ){
  784. // photo = imageZoom(ImageUtils.toturn(photo));
  785. // }else {
  786. // photo = imageZoom(photo);
  787. // }
  788. // if (photo != null) {
  789. // iconPic.setImageBitmap(photo);
  790. // }
  791. }
  792. } else {
  793. ToastUtil.showToast(getApplicationContext(), "data为null", Toast.LENGTH_SHORT);
  794. }
  795. break;
  796. case 1:
  797. if (SDCardUtil.hasSdcard()) {
  798. cropImageUri = Uri.fromFile(fileCropUri);
  799. Uri newUri = Uri.parse(PhotoUtils.getPath(this, data.getData()));
  800. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
  801. newUri = FileProvider.getUriForFile(this, "com.electric.chargingpile.provider", new File(newUri.getPath()));
  802. PhotoUtils.cropImageUri(this, newUri, cropImageUri, 1, 1, output_X, output_Y, 3);
  803. } else {
  804. Toast.makeText(UserInfoActivity.this, "设备没有SD卡!", Toast.LENGTH_SHORT).show();
  805. }
  806. break;
  807. // 如果是调用相机拍照时
  808. case 2:
  809. cropImageUri = Uri.fromFile(fileCropUri);
  810. PhotoUtils.cropImageUri(this, imageUri, cropImageUri, 1, 1, output_X, output_Y, 3);
  811. break;
  812. // 取得裁剪后的图片
  813. case 3:
  814. photo = imageZoom(PhotoUtils.getBitmapFromUri(cropImageUri, this));
  815. if (photo != null) {
  816. iconPic.setImageBitmap(photo);
  817. }
  818. break;
  819. default:
  820. break;
  821. }
  822. ;
  823. }
  824. private Bitmap imageZoom(Bitmap bm) {
  825. // 图片允许最大空间 单位:KB
  826. double maxSize = 40.00;
  827. // 将bitmap放至数组中,意在bitmap的大小(与实际读取的原文件要大)
  828. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  829. bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  830. byte[] b = baos.toByteArray();
  831. // 将字节换成KB
  832. double mid = b.length / 1024;
  833. // 判断bitmap占用空间是否大于允许最大空间 如果大于则压缩 小于则不压缩
  834. if (mid > maxSize) {
  835. // 获取bitmap大小 是允许最大大小的多少倍
  836. double i = mid / maxSize;
  837. // 开始压缩 此处用到平方根 将宽带和高度压缩掉对应的平方根倍
  838. // (1.保持刻度和高度和原bitmap比率一致,压缩后也达到了最大大小占用空间的大小)
  839. bm = zoomImage(bm, bm.getWidth() / Math.sqrt(i), bm.getHeight()
  840. / Math.sqrt(i));
  841. }
  842. return bm;
  843. }
  844. public Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {
  845. // 获取这个图片的宽和高
  846. float width = bgimage.getWidth();
  847. float height = bgimage.getHeight();
  848. // 创建操作图片用的matrix对象
  849. Matrix matrix = new Matrix();
  850. // 计算宽高缩放率
  851. float scaleWidth = ((float) newWidth) / width;
  852. float scaleHeight = ((float) newHeight) / height;
  853. // 缩放图片动作
  854. matrix.postScale(scaleWidth, scaleHeight);
  855. Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
  856. (int) height, matrix, true);
  857. // iv_2.setImageBitmap(bitmap);
  858. // tv_2.setText(bitmap.getRowBytes() * bitmap.getHeight() + "");
  859. return bitmap;
  860. }
  861. private Bitmap comp(Bitmap image) {
  862. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  863. image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  864. if (baos.toByteArray().length / 1024 > 1024) {//判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出
  865. baos.reset();//重置baos即清空baos
  866. image.compress(Bitmap.CompressFormat.JPEG, 50, baos);//这里压缩50%,把压缩后的数据存放到baos中
  867. }
  868. ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
  869. BitmapFactory.Options newOpts = new BitmapFactory.Options();
  870. //开始读入图片,此时把options.inJustDecodeBounds 设回true了
  871. newOpts.inJustDecodeBounds = true;
  872. Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
  873. newOpts.inJustDecodeBounds = false;
  874. int w = newOpts.outWidth;
  875. int h = newOpts.outHeight;
  876. //现在主流手机比较多是800*480分辨率,所以高和宽我们设置为
  877. float hh = 800f;//这里设置高度为800f
  878. float ww = 480f;//这里设置宽度为480f
  879. //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
  880. int be = 1;//be=1表示不缩放
  881. if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放
  882. be = (int) (newOpts.outWidth / ww);
  883. } else if (w < h && h > hh) {//如果高度高的话根据宽度固定大小缩放
  884. be = (int) (newOpts.outHeight / hh);
  885. }
  886. if (be <= 0)
  887. be = 1;
  888. newOpts.inSampleSize = be;//设置缩放比例
  889. //重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了
  890. isBm = new ByteArrayInputStream(baos.toByteArray());
  891. bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
  892. return compressImage(bitmap);//压缩好比例大小后再进行质量压缩
  893. }
  894. /**
  895. * 转换图片成圆形
  896. *
  897. * @param bitmap 传入Bitmap对象
  898. * @return
  899. */
  900. public Bitmap toRoundBitmap(Bitmap bitmap) {
  901. int width = bitmap.getWidth();
  902. int height = bitmap.getHeight();
  903. float roundPx;
  904. float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom;
  905. if (width <= height) {
  906. roundPx = width / 2;
  907. top = 0;
  908. bottom = width;
  909. left = 0;
  910. right = width;
  911. height = width;
  912. dst_left = 0;
  913. dst_top = 0;
  914. dst_right = width;
  915. dst_bottom = width;
  916. } else {
  917. roundPx = height / 2;
  918. float clip = (width - height) / 2;
  919. left = clip;
  920. right = width - clip;
  921. top = 0;
  922. bottom = height;
  923. width = height;
  924. dst_left = 0;
  925. dst_top = 0;
  926. dst_right = height;
  927. dst_bottom = height;
  928. }
  929. output = Bitmap.createBitmap(width,
  930. height, Bitmap.Config.ARGB_8888);
  931. Canvas canvas = new Canvas(output);
  932. final int color = 0xff424242;
  933. final Paint paint = new Paint();
  934. final Rect src = new Rect((int) left, (int) top, (int) right, (int) bottom);
  935. final Rect dst = new Rect((int) dst_left, (int) dst_top, (int) dst_right, (int) dst_bottom);
  936. final RectF rectF = new RectF(dst);
  937. paint.setAntiAlias(true);
  938. canvas.drawARGB(0, 0, 0, 0);
  939. paint.setColor(color);
  940. canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
  941. paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
  942. canvas.drawBitmap(bitmap, src, dst, paint);
  943. return output;
  944. }
  945. public void saveBitmap(Bitmap mBitmap) {
  946. String dir_path = Environment.getExternalStorageDirectory() + File.separator + "d1ev/";
  947. File directory = new File(dir_path);
  948. File f = new File(dir_path, "usericon");
  949. try {
  950. if (!directory.exists()) {
  951. directory.mkdir();//没有目录先创建目录
  952. }
  953. f.createNewFile();
  954. } catch (IOException e) {
  955. // TODO Auto-generated catch block
  956. }
  957. FileOutputStream fOut = null;
  958. try {
  959. fOut = new FileOutputStream(f);
  960. } catch (Exception e) {
  961. e.printStackTrace();
  962. }
  963. mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
  964. try {
  965. fOut.flush();
  966. } catch (IOException e) {
  967. e.printStackTrace();
  968. }
  969. try {
  970. fOut.close();
  971. } catch (IOException e) {
  972. e.printStackTrace();
  973. }
  974. }
  975. /*
  976. *bitmap转base64
  977. */
  978. // public static Bitmap base64ToBitmap(String base64String){
  979. // byte[] bytes = Base64.decode(base64String);
  980. // Bitmap bitmap= BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
  981. // return bitmap;
  982. // }
  983. Handler handle = new Handler() {
  984. public void handleMessage(Message msg) {
  985. switch (msg.what) {
  986. case StatusConstants.REQUEST_WHAT_SUCCESS:
  987. LogUtils.getLogger().e(msg.obj.toString());
  988. // Toast.makeText(UserInfoActivity.this, msg.obj.toString(), 1).show();
  989. break;
  990. case 1:
  991. //
  992. // Gson g = new Gson();
  993. // pr.clear();
  994. // pr = g.fromJson(msg.obj.toString(), new TypeToken<List<Province>>() {
  995. // }.getType());
  996. // String s=msg.obj.toString();
  997. // JSONObject
  998. // Province p= new Province(s.get, code, cities)
  999. // pr.add(arg0)
  1000. // spinner();
  1001. // if (!chexing.equals("") && yichexing.equals("")){
  1002. // String[] strarray=chexing.split("\\$\\$");
  1003. //
  1004. // if(strarray.length>1){
  1005. // name0=strarray[0];//江淮
  1006. // name1=strarray[1];//iEV3
  1007. // }
  1008. // Log.e("name0+name1",name0+name1);
  1009. // et_che.setText(name0 + " - " + name1);
  1010. // Log.e(TAG, "handleMessage: "+ et_che.getText().toString());
  1011. // if (et_che.getText().toString().equals(" - ")){
  1012. // tv_buy.setText("未购买");
  1013. // rl_select_car.setVisibility(View.GONE);
  1014. // }else {
  1015. // tv_buy.setText("已购买");
  1016. // rl_select_car.setVisibility(View.VISIBLE);
  1017. // }
  1018. // car_brand = name0;
  1019. // car_type = name1;
  1020. // }else if(chexing.equals("") && !yichexing.equals("")){
  1021. // String[] strarray=yichexing.split("\\$\\$");
  1022. //
  1023. // if(strarray.length>1){
  1024. // name0=strarray[0];//江淮
  1025. // name1=strarray[1];//iEV3
  1026. // }
  1027. // Log.e("name0+name1",name0+name1);
  1028. // et_che.setText(name0 + " - " + name1);
  1029. // car_brand = name0;
  1030. // car_type = name1;
  1031. // }
  1032. try {
  1033. JSONArray jsonary = new JSONArray(msg.obj.toString());
  1034. for (int i = 0; i < jsonary.length(); i++) {
  1035. JSONObject js = new JSONObject(jsonary.get(i).toString());
  1036. Province prov = new Province();
  1037. prov.setId(js.getInt("id"));
  1038. prov.setName(js.getString("name"));
  1039. if (prov.getName().equals(name0)) {
  1040. default_brand = i;
  1041. }
  1042. JSONArray jsonary1 = js.getJSONArray("cars");
  1043. List<Cars> cities = new ArrayList<Cars>();
  1044. for (int j = 0; j < jsonary1.length(); j++) {
  1045. JSONObject js2 = new JSONObject(jsonary1.get(j).toString());
  1046. Cars car = new Cars(js2.getString("name"), js2.getString("id"), js2.getString("brand_id"));
  1047. if (car.getName().equals(name1)) {
  1048. default_type = j;
  1049. }
  1050. cities.add(car);
  1051. }
  1052. prov.setCities(cities);
  1053. pr.remove(prov);
  1054. pr.add(prov);
  1055. // spinnerProvince.setSelection(de);
  1056. // spinnerCity
  1057. }
  1058. } catch (JSONException e) {
  1059. e.printStackTrace();
  1060. }
  1061. // pr =(List<Province>) JsonUtils.parseToObjectBean(msg.obj.toString(), Province.class);
  1062. // Log.e("pe", pr.size()+"");
  1063. // Log.e("pe", pr.get(0).getCities().size()+"");
  1064. // Log.e("pe", pr.get(1).getCities().size()+"");
  1065. // Log.e("pe", pr.get(2).getCities().size()+"");
  1066. // Log.e("pe", pr.get(3).getCities().size()+"");
  1067. // Log.e("pe", pr.size()+"");
  1068. // Log.e("pe", pr.size()+"");
  1069. //
  1070. ArrayAdapter<Province> provinceAdapter = new ArrayAdapter<Province>(UserInfoActivity.this, R.layout.simple_spinner_item, pr);
  1071. spinnerProvince.setAdapter(provinceAdapter);
  1072. provinceAdapter.notifyDataSetChanged();
  1073. if (default_brand != -1) {
  1074. spinnerProvince.setSelection(default_brand + 1);
  1075. default_brand = -1;
  1076. }
  1077. new Handler().postDelayed(new Runnable() {
  1078. public void run() {
  1079. spinnerCity.setSelection(default_type);
  1080. }
  1081. }, 5000);
  1082. break;
  1083. case 2:
  1084. Log.e(TAG, "handleMessage: " + msg.obj.toString());
  1085. try {
  1086. JSONObject jsonObject = new JSONObject(msg.obj.toString());
  1087. String rtnCode = jsonObject.getString("rtnCode");
  1088. String rtnMsg = jsonObject.getString("rtnMsg");
  1089. if (rtnCode.equals("01")) {
  1090. dialog.cancel();
  1091. // SharedPreferences mySharedPreferences= getSharedPreferences("userInfo",
  1092. // Activity.MODE_PRIVATE);
  1093. // SharedPreferences.Editor editor = mySharedPreferences.edit();
  1094. // editor.putString("nickname", et_nickName.getText().toString());
  1095. // editor.putString("username", et_realName.getText().toString());
  1096. // editor.putString("sex", sex);
  1097. // editor.putString("chexing", havecar);
  1098. // editor.putString("yichexing", nocar);
  1099. //
  1100. //// String data = JsonUtils.getKeyResult(msg.obj.toString(),"data");
  1101. //// String userid = JsonUtils.getKeyResult(data,"userid");
  1102. //// String username = JsonUtils.getKeyResult(data,"username");
  1103. //// String userpic = JsonUtils.getKeyResult(data,"userpic");
  1104. //// String nickname = JsonUtils.getKeyResult(data,"nickname");
  1105. //// LogUtils.getLogger().e(userid+"---"+username+"---"+userpic+"---"+nickname);
  1106. //// Log.e(TAG, "handleMessage: "+userid+"---"+username+"---"+userpic+"---"+nickname );
  1107. //
  1108. // editor.commit();
  1109. String picurl = JsonUtils.getKeyResult(msg.obj.toString(), "picurl");
  1110. MainApplication.userIcon = MainApplication.url + picurl;
  1111. ProfileManager.getInstance().setUsericon(getApplicationContext(), MainApplication.userIcon);
  1112. MainApplication.userCar = havecar;
  1113. ProfileManager.getInstance().setUsercar(getApplicationContext(), havecar);
  1114. MainApplication.userNickname = et_nickName.getText().toString();
  1115. ProfileManager.getInstance().setNickname(getApplicationContext(), et_nickName.getText().toString());
  1116. Intent intent = new Intent();
  1117. intent.putExtra("nickname", et_nickName.getText().toString().trim());
  1118. intent.putExtra("userphoto", ss);
  1119. setResult(RESULT_SUCCESS, intent);
  1120. // MainApplication.userIcon="V";
  1121. // ProfileManager.getInstance().setUsericon(UserInfoActivity.this, "V");
  1122. // ImageTools.saveImageToGallery(getApplicationContext(),photo,"user_icon");
  1123. String plusScore = jsonObject.getString("plusScore");
  1124. if (!plusScore.equals("")) {
  1125. tv_point.setText(plusScore);
  1126. rl_point.setVisibility(View.VISIBLE);
  1127. rl_point.startAnimation(animation);
  1128. new Handler().postDelayed(new Runnable() {
  1129. public void run() {
  1130. rl_point.setVisibility(View.GONE);
  1131. }
  1132. }, 1000);
  1133. // if (photo != null) {
  1134. // photo.recycle();
  1135. // photo = null;
  1136. //// bitmap.recycle();
  1137. //
  1138. // }
  1139. new Handler().postDelayed(new Runnable() {
  1140. public void run() {
  1141. UserInfoActivity.this.finish();
  1142. }
  1143. }, 1500);
  1144. } else {
  1145. ToastUtil.showToast(UserInfoActivity.this, "保存成功", Toast.LENGTH_SHORT);
  1146. // if (photo != null) {
  1147. // photo.recycle();
  1148. // photo = null;
  1149. //
  1150. // }
  1151. UserInfoActivity.this.finish();
  1152. }
  1153. } else if (rtnCode.equals("03")) {
  1154. dialog.cancel();
  1155. Toast.makeText(UserInfoActivity.this, "请求超时", Toast.LENGTH_SHORT).show();
  1156. } else if (rtnCode.equals("02")) {
  1157. dialog.cancel();
  1158. Toast.makeText(UserInfoActivity.this, "该昵称已有用户使用,请重新填写", Toast.LENGTH_SHORT).show();
  1159. }
  1160. } catch (JSONException e) {
  1161. e.printStackTrace();
  1162. }
  1163. // Toast.makeText(UserInfoActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show();
  1164. break;
  1165. case 5:
  1166. Toast.makeText(UserInfoActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show();
  1167. break;
  1168. }
  1169. super.handleMessage(msg);
  1170. }
  1171. };
  1172. public void getFromServer() {
  1173. new Thread(new Runnable() {
  1174. @Override
  1175. public void run() {
  1176. show_Data();
  1177. }
  1178. }).start();
  1179. }
  1180. private void show_Data() {
  1181. //http://hw.gearedu.com:9080/rongyao/rest
  1182. //String url = mParentContext.getString(R.string.ip_url) + "/resource/book?userId=" + userid;
  1183. String url = MainApplication.url + "/zhannew/basic/web/index.php/brand/getlist";
  1184. Request request = new Request.Builder().url(url).build();
  1185. Response response = null;
  1186. try {
  1187. response = OkHttpUtil.execute(request);
  1188. if (response.code() == 200) {
  1189. String json = "";
  1190. try {
  1191. json = response.body().string();
  1192. } catch (IOException e) {
  1193. // TODO Auto-generated catch block
  1194. e.printStackTrace();
  1195. }
  1196. Message msg = handle.obtainMessage();
  1197. msg.what = 1;
  1198. msg.obj = json;
  1199. handle.sendMessage(msg);
  1200. } else if (response.code() == 204) {
  1201. Message msg = handle.obtainMessage();
  1202. msg.what = 5;
  1203. handle.sendMessage(msg);
  1204. }
  1205. } catch (Exception e) {
  1206. e.printStackTrace();
  1207. }
  1208. }
  1209. private Bitmap compressImage(Bitmap image) {
  1210. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  1211. image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
  1212. int options = 100;
  1213. while (baos.toByteArray().length / 1024 > 100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩
  1214. baos.reset();//重置baos即清空baos
  1215. image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中
  1216. options -= 10;//每次都减少10
  1217. }
  1218. ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中
  1219. Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片
  1220. return bitmap;
  1221. }
  1222. @Override
  1223. protected void onResume() {
  1224. super.onResume();
  1225. MobclickAgent.onResume(this);
  1226. }
  1227. @Override
  1228. protected void onPause() {
  1229. super.onPause();
  1230. MobclickAgent.onPause(this);
  1231. }
  1232. @Override
  1233. protected void onDestroy() {
  1234. super.onDestroy();
  1235. }
  1236. }