Commit 29ad76f4f231b3e93f31c1e0e964ebb36d5618d7
1 parent
1ab8c79994
Exists in
master
AIDL数据共享
Showing
19 changed files
with
368 additions
and
110 deletions
Show diff stats
PersonalCenter/.idea/misc.xml
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | <ConfirmationsSetting value="0" id="Add" /> |
38 | 38 | <ConfirmationsSetting value="0" id="Remove" /> |
39 | 39 | </component> |
40 | - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | |
40 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | |
41 | 41 | <output url="file://$PROJECT_DIR$/build/classes" /> |
42 | 42 | </component> |
43 | 43 | <component name="ProjectType"> | ... | ... |
PersonalCenter/app/build.gradle
... | ... | @@ -41,7 +41,9 @@ dependencies { |
41 | 41 | compile 'com.google.code.gson:gson:2.7' |
42 | 42 | compile 'com.zaaach:toprightmenu:1.0' |
43 | 43 | compile 'com.facebook.fresco:fresco:1.1.0' |
44 | - compile'com.android.support:recyclerview-v7:25.+' | |
44 | + compile 'com.android.support:recyclerview-v7:25.+' | |
45 | 45 | debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3' |
46 | 46 | releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3' |
47 | + compile 'com.google.zxing:core:3.3.0' | |
48 | + compile 'com.google.zxing:android-core:3.3.0' | |
47 | 49 | } | ... | ... |
PersonalCenter/app/src/main/AndroidManifest.xml
... | ... | @@ -116,6 +116,23 @@ |
116 | 116 | android:screenOrientation="landscape"> |
117 | 117 | |
118 | 118 | </activity> |
119 | + <activity | |
120 | + android:name=".activity.BangDingCode" | |
121 | + android:launchMode="singleTask" | |
122 | + android:screenOrientation="landscape"> | |
123 | + | |
124 | + </activity> | |
125 | + <service | |
126 | + android:name="com.hjx.personalcenter.service.TestService" | |
127 | + android:process=":remote" | |
128 | + > | |
129 | + <intent-filter> | |
130 | + <action android:name="com.hjx.personalcenter.service.GetLoginInfoService"> | |
131 | + | |
132 | + </action> | |
133 | + </intent-filter> | |
134 | + </service> | |
135 | + | |
119 | 136 | </application> |
120 | 137 | <!--权限--> |
121 | 138 | <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | ... | ... |
PersonalCenter/app/src/main/aidl/com/hjx/personalcenter/service/IPresonalInterface.aidl
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/BangDingCode.java
... | ... | @@ -0,0 +1,48 @@ |
1 | +package com.hjx.personalcenter.activity; | |
2 | + | |
3 | +import android.app.Activity; | |
4 | +import android.graphics.Bitmap; | |
5 | +import android.os.Bundle; | |
6 | +import android.util.DisplayMetrics; | |
7 | +import android.widget.ImageView; | |
8 | +import android.widget.LinearLayout; | |
9 | + | |
10 | +import com.hjx.personalcenter.R; | |
11 | +import com.hjx.personalcenter.util.FileUtil; | |
12 | +import com.hjx.personalcenter.util.QRCodeUtil; | |
13 | + | |
14 | +import java.io.File; | |
15 | + | |
16 | +/** | |
17 | + * Created by h on 2017/8/31. | |
18 | + */ | |
19 | + | |
20 | +public class BangDingCode extends Activity{ | |
21 | + private ImageView EQpicture; | |
22 | + File file; | |
23 | + @Override | |
24 | + protected void onCreate(Bundle savedInstanceState) { | |
25 | + super.onCreate(savedInstanceState); | |
26 | + setContentView(R.layout.activity_binding_code); | |
27 | + EQpicture = (ImageView) findViewById(R.id.EQpicture); | |
28 | + EQPicture(); | |
29 | + | |
30 | + | |
31 | + } | |
32 | + public void EQPicture() { | |
33 | + DisplayMetrics dm = new DisplayMetrics(); | |
34 | + getWindowManager().getDefaultDisplay().getMetrics(dm); | |
35 | + int screenHeight = dm.heightPixels;//屏幕高度 | |
36 | + //设置二维码外布局占屏幕高宽 | |
37 | + LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) EQpicture.getLayoutParams(); | |
38 | + layoutParams.width = screenHeight * 17 / 30; | |
39 | + layoutParams.height = screenHeight * 19 / 30; | |
40 | + EQpicture.setLayoutParams(layoutParams); | |
41 | + //生成占屏幕一定比例 的二维码存储在本地并显示 | |
42 | + file = new File(FileUtil.getCachePath(this), "user-code.jpg"); | |
43 | + Bitmap bitmap = QRCodeUtil.createQRImage("www.baidu.com", screenHeight * 15 / 30, screenHeight * 15 / 30, null, file.getPath()); | |
44 | + if (bitmap != null) { | |
45 | + EQpicture.setImageBitmap(bitmap); | |
46 | + } | |
47 | + } | |
48 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ElectronicCardInfoOKActivity.java
1 | 1 | package com.hjx.personalcenter.activity; |
2 | 2 | |
3 | 3 | import android.app.Activity; |
4 | +import android.content.Intent; | |
4 | 5 | import android.os.Bundle; |
5 | 6 | import android.view.View; |
6 | 7 | import android.widget.Button; |
... | ... | @@ -17,7 +18,7 @@ import com.hjx.personalcenter.util.GetDevicesUtil; |
17 | 18 | */ |
18 | 19 | |
19 | 20 | public class ElectronicCardInfoOKActivity extends Activity implements View.OnClickListener { |
20 | - private Button btn_finish; | |
21 | + private Button btn_finish,btn_bangding; | |
21 | 22 | private ImageView iv_last_step; |
22 | 23 | private TextView usename,deviceModel,customer_address,mac_adress,shoptime,deviceNumber,shopadress,phone,tlePhone; |
23 | 24 | @Override |
... | ... | @@ -40,6 +41,7 @@ public class ElectronicCardInfoOKActivity extends Activity implements View.OnCli |
40 | 41 | shopadress = (TextView) findViewById(R.id.tv_card_shopAdress); |
41 | 42 | phone = (TextView) findViewById(R.id.tv_card_phone); |
42 | 43 | tlePhone = (TextView) findViewById(R.id.tv_card_tleNember); |
44 | + btn_bangding = (Button) findViewById(R.id.btn_bangding); | |
43 | 45 | } |
44 | 46 | |
45 | 47 | private void initData() { |
... | ... | @@ -61,6 +63,7 @@ public class ElectronicCardInfoOKActivity extends Activity implements View.OnCli |
61 | 63 | private void initLister() { |
62 | 64 | iv_last_step.setOnClickListener(this); |
63 | 65 | btn_finish.setOnClickListener(this); |
66 | + btn_bangding.setOnClickListener(this); | |
64 | 67 | } |
65 | 68 | |
66 | 69 | @Override |
... | ... | @@ -80,6 +83,13 @@ public class ElectronicCardInfoOKActivity extends Activity implements View.OnCli |
80 | 83 | deviceModel.getText().toString().trim(),deviceNumber.getText().toString().trim(), |
81 | 84 | mac_adress.getText().toString().trim(),phone.getText().toString().trim()); |
82 | 85 | break; |
86 | + case R.id.btn_bangding: | |
87 | + Intent intent = new Intent(); | |
88 | + intent.setClass(ElectronicCardInfoOKActivity.this, BangDingCode.class); | |
89 | + startActivity(intent); | |
90 | + overridePendingTransition(R.anim.rightin, R.anim.rightout); | |
91 | + | |
92 | + break; | |
83 | 93 | case R.id.cancel: |
84 | 94 | finish(); |
85 | 95 | break; | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/ForgotPasswordActivity.java
... | ... | @@ -23,21 +23,22 @@ import com.hjx.personalcenter.util.PhoneNumCheckUtils; |
23 | 23 | import org.json.JSONException; |
24 | 24 | import org.json.JSONObject; |
25 | 25 | |
26 | -/**忘记密码 | |
26 | +/** | |
27 | + * 忘记密码 | |
27 | 28 | * Created by h on 2017/6/17. |
28 | 29 | */ |
29 | 30 | |
30 | 31 | public class ForgotPasswordActivity extends Activity implements View.OnClickListener { |
31 | - private ImageView back_forgit,iv_pwd_change; | |
32 | - private EditText forot_pwd_phone,forot_pwd_anthcode,forot_pwd_pwd,forot_pwd_pwd2; | |
33 | - private Button forot_pwd_sub,forot_pwd_getanthcode; | |
32 | + private ImageView back_forgit, iv_pwd_change; | |
33 | + private EditText forot_pwd_phone, forot_pwd_anthcode, forot_pwd_pwd, forot_pwd_pwd2; | |
34 | + private Button forot_pwd_sub, forot_pwd_getanthcode; | |
34 | 35 | private String forot_pwd_phone1; |
35 | 36 | private String forot_pwd_anthcode1; |
36 | 37 | private String forot_pwd_pwd3; |
37 | 38 | private String forot_pwd_pwd4; |
38 | 39 | private String typeStr = "login"; |
39 | 40 | private int i = 0; |
40 | - private Thread thread; | |
41 | + private Thread thread; | |
41 | 42 | public static Boolean showPassword = false; |
42 | 43 | |
43 | 44 | Handler handler = new Handler() { |
... | ... | @@ -53,7 +54,7 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
53 | 54 | status = jsonObject.getString("status"); |
54 | 55 | // AlertUtils.showToast(ForgotPassword.this, jsonObject.optString("message")); |
55 | 56 | if (status.equals("100")) { |
56 | - AlertUtils.showToast(ForgotPasswordActivity.this,"密码修改成功"); | |
57 | + AlertUtils.showToast(ForgotPasswordActivity.this, "密码修改成功"); | |
57 | 58 | } |
58 | 59 | |
59 | 60 | break; |
... | ... | @@ -78,18 +79,16 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
78 | 79 | status = jsonObject.getString("status"); |
79 | 80 | if (status.equals("true")) { |
80 | 81 | getauthcode(); |
81 | -// i = 60; | |
82 | -// new Thread(new ForgotPassword.ThreadShow()).start(); | |
83 | 82 | |
84 | - }else { | |
83 | + } else { | |
85 | 84 | AlertUtils.showToast(ForgotPasswordActivity.this, "该手机号没有注册"); |
86 | 85 | } |
87 | 86 | break; |
88 | 87 | case 1: |
89 | 88 | forot_pwd_getanthcode.setEnabled(false); |
90 | 89 | forot_pwd_getanthcode.setClickable(false); |
91 | - forot_pwd_getanthcode.setText(Integer.toString(i--)+" s"); | |
92 | - if (i<=0){ | |
90 | + forot_pwd_getanthcode.setText(Integer.toString(i--) + " s"); | |
91 | + if (i <= 0) { | |
93 | 92 | forot_pwd_getanthcode.setEnabled(true); |
94 | 93 | forot_pwd_getanthcode.setClickable(true); |
95 | 94 | forot_pwd_getanthcode.setText("获取验证码"); |
... | ... | @@ -102,6 +101,7 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
102 | 101 | } |
103 | 102 | } |
104 | 103 | }; |
104 | + | |
105 | 105 | @Override |
106 | 106 | protected void onCreate(Bundle savedInstanceState) { |
107 | 107 | super.onCreate(savedInstanceState); |
... | ... | @@ -109,14 +109,16 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
109 | 109 | initView(); |
110 | 110 | setLister(); |
111 | 111 | } |
112 | + | |
112 | 113 | //获取验证码 |
113 | 114 | private void getauthcode() { |
114 | 115 | forot_pwd_anthcode.requestFocus(); |
115 | 116 | HttpManager.getInstance().authCode(typeStr, forot_pwd_phone1, handler, this); |
116 | 117 | i = 60; |
117 | - if(thread == null){ | |
118 | - thread = new Thread( new ThreadShow()); | |
118 | + if (thread == null) { | |
119 | + thread = new Thread(new ThreadShow()); | |
119 | 120 | thread.start(); |
121 | + | |
120 | 122 | } |
121 | 123 | |
122 | 124 | } |
... | ... | @@ -128,9 +130,10 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
128 | 130 | forot_pwd_pwd2 = (EditText) findViewById(R.id.et_again_newpassword); |
129 | 131 | forot_pwd_sub = (Button) findViewById(R.id.btn_ok); |
130 | 132 | forot_pwd_getanthcode = (Button) findViewById(R.id.btn_authcode); |
131 | - iv_pwd_change=(ImageView) findViewById(R.id.iv_pwd_change); | |
132 | - back_forgit= (ImageView) findViewById(R.id.cancel); | |
133 | + iv_pwd_change = (ImageView) findViewById(R.id.iv_pwd_change); | |
134 | + back_forgit = (ImageView) findViewById(R.id.cancel); | |
133 | 135 | } |
136 | + | |
134 | 137 | private void setLister() { |
135 | 138 | iv_pwd_change.setOnClickListener(this); |
136 | 139 | back_forgit.setOnClickListener(this); |
... | ... | @@ -142,38 +145,36 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
142 | 145 | |
143 | 146 | @Override |
144 | 147 | public void onClick(View view) { |
145 | - switch (view.getId()){ | |
148 | + switch (view.getId()) { | |
146 | 149 | case R.id.btn_ok: |
147 | 150 | forot_pwd_phone1 = forot_pwd_phone.getText().toString().trim(); |
148 | 151 | forot_pwd_anthcode1 = forot_pwd_anthcode.getText().toString().trim(); |
149 | 152 | forot_pwd_pwd3 = forot_pwd_pwd.getText().toString().trim(); |
150 | 153 | forot_pwd_pwd4 = forot_pwd_pwd2.getText().toString().trim(); |
151 | - if (TextUtils.isEmpty(forot_pwd_phone1)|| | |
152 | - TextUtils.isEmpty(forot_pwd_pwd3) || TextUtils.isEmpty(forot_pwd_pwd4)){ | |
154 | + if (TextUtils.isEmpty(forot_pwd_phone1) || | |
155 | + TextUtils.isEmpty(forot_pwd_pwd3) || TextUtils.isEmpty(forot_pwd_pwd4)) { | |
153 | 156 | AlertUtils.showToast(ForgotPasswordActivity.this, "请将必填项填写完整"); |
154 | 157 | return; |
155 | - }else if (Judgment.getInstance().isPhoneNum(forot_pwd_phone1)){ | |
158 | + } else if (Judgment.getInstance().isPhoneNum(forot_pwd_phone1)) { | |
156 | 159 | AlertUtils.showToast(ForgotPasswordActivity.this, "手机号码输入有误"); |
157 | 160 | |
158 | - } | |
159 | - else if(forot_pwd_pwd3.length()<8||forot_pwd_pwd4.length()<8){ | |
161 | + } else if (forot_pwd_pwd3.length() < 8 || forot_pwd_pwd4.length() < 8) { | |
160 | 162 | AlertUtils.showToast(ForgotPasswordActivity.this, "密码不能少于8位"); |
161 | - }else if(!forot_pwd_pwd3.matches(PasswordCheckUtils.PASSWORD_CHAR_AND_NUMBER)||!forot_pwd_pwd4.matches(PasswordCheckUtils.PASSWORD_CHAR_AND_NUMBER)){ | |
163 | + } else if (!forot_pwd_pwd3.matches(PasswordCheckUtils.PASSWORD_CHAR_AND_NUMBER) || !forot_pwd_pwd4.matches(PasswordCheckUtils.PASSWORD_CHAR_AND_NUMBER)) { | |
162 | 164 | AlertUtils.showToast(ForgotPasswordActivity.this, "密码必须由英文和数字组成"); |
163 | - } | |
164 | - else if (!forot_pwd_pwd3.equals(forot_pwd_pwd4)){ | |
165 | + } else if (!forot_pwd_pwd3.equals(forot_pwd_pwd4)) { | |
165 | 166 | AlertUtils.showToast(ForgotPasswordActivity.this, "两次输入的密码不一致"); |
166 | 167 | return; |
167 | - }else { | |
168 | + } else { | |
168 | 169 | //忘记密码接口 |
169 | - HttpManager.getInstance().forgetpassword(this,forot_pwd_phone1,forot_pwd_pwd3,forot_pwd_anthcode1,handler); | |
170 | + HttpManager.getInstance().forgetpassword(this, forot_pwd_phone1, forot_pwd_pwd3, forot_pwd_anthcode1, handler); | |
170 | 171 | } |
171 | 172 | break; |
172 | 173 | case R.id.btn_authcode: |
173 | 174 | forot_pwd_phone1 = forot_pwd_phone.getText().toString().trim(); |
174 | - if (!PhoneNumCheckUtils.isPhone(forot_pwd_phone1)){ | |
175 | + if (!PhoneNumCheckUtils.isPhone(forot_pwd_phone1)) { | |
175 | 176 | AlertUtils.showToast(ForgotPasswordActivity.this, "请输入正确的手机号"); |
176 | - }else { | |
177 | + } else { | |
177 | 178 | forot_pwd_anthcode.requestFocus(); |
178 | 179 | ifregister(); |
179 | 180 | |
... | ... | @@ -181,12 +182,12 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
181 | 182 | |
182 | 183 | break; |
183 | 184 | case R.id.iv_pwd_change: |
184 | - if(showPassword){//显示密码 | |
185 | + if (showPassword) {//显示密码 | |
185 | 186 | showPassword = !showPassword; |
186 | 187 | iv_pwd_change.setImageResource(R.mipmap.pwd_open); |
187 | 188 | forot_pwd_pwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); |
188 | 189 | forot_pwd_pwd.setSelection(forot_pwd_pwd.getText().toString().length()); |
189 | - }else{//隐藏密码 | |
190 | + } else {//隐藏密码 | |
190 | 191 | showPassword = !showPassword; |
191 | 192 | iv_pwd_change.setImageResource(R.mipmap.pwd_hide); |
192 | 193 | forot_pwd_pwd.setTransformationMethod(PasswordTransformationMethod.getInstance()); |
... | ... | @@ -199,11 +200,13 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
199 | 200 | break; |
200 | 201 | } |
201 | 202 | } |
203 | + | |
202 | 204 | //是否注册 |
203 | 205 | private void ifregister() { |
204 | 206 | forot_pwd_phone1 = forot_pwd_phone.getText().toString().trim(); |
205 | 207 | HttpManager.getInstance().isregistered(forot_pwd_phone1, handler, this); |
206 | 208 | } |
209 | + | |
207 | 210 | // 线程类 定时器 |
208 | 211 | class ThreadShow implements Runnable { |
209 | 212 | |
... | ... | @@ -213,10 +216,11 @@ public class ForgotPasswordActivity extends Activity implements View.OnClickList |
213 | 216 | while (true) { |
214 | 217 | try { |
215 | 218 | Thread.sleep(1000); |
219 | + // thread.interrupt(); | |
216 | 220 | Message msg = new Message(); |
217 | 221 | msg.what = 1; |
218 | 222 | handler.sendMessage(msg); |
219 | - System.out.println("send..."); | |
223 | + System.out.println("内存泄露..."); | |
220 | 224 | } catch (Exception e) { |
221 | 225 | // TODO Auto-generated catch block |
222 | 226 | e.printStackTrace(); | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java
... | ... | @@ -185,9 +185,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe |
185 | 185 | |
186 | 186 | //获取个性签名 |
187 | 187 | String userID = SaveParam.getInstance().getLoginParam(this,"userId"); |
188 | + String typeaccount = SaveParam.getInstance().getLoginParam(this,SaveParam.ACCOUNT); | |
188 | 189 | try { |
189 | 190 | long auserID = Long.parseLong(userID); |
190 | - HttpManager.getInstance().getsignatures(MainActivity.this,auserID,handler); | |
191 | + int typeaccount1=Integer.parseInt(typeaccount); | |
192 | + HttpManager.getInstance().getsignatures(MainActivity.this,auserID,typeaccount1,handler); | |
191 | 193 | |
192 | 194 | } catch (NumberFormatException e) { |
193 | 195 | e.printStackTrace(); |
... | ... | @@ -267,6 +269,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe |
267 | 269 | settingintent.setClass(MainActivity.this, LoginAndRegisterActivity.class); |
268 | 270 | startActivity(settingintent); |
269 | 271 | overridePendingTransition(R.anim.rightin, R.anim.rightout); |
272 | + finish(); | |
270 | 273 | break; |
271 | 274 | case 1: |
272 | 275 | Intent accontMintent = new Intent(); |
... | ... | @@ -301,9 +304,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe |
301 | 304 | AlertUtils.showToast(MainActivity.this, "请输入个性签名"); |
302 | 305 | } else { |
303 | 306 | try { |
307 | + String typeaccount = SaveParam.getInstance().getLoginParam(MainActivity.this,SaveParam.ACCOUNT); | |
304 | 308 | String userID = SaveParam.getInstance().getLoginParam(MainActivity.this,"userId"); |
305 | 309 | long auserID = Long.parseLong(userID); |
306 | - HttpManager.getInstance().changsignature(MainActivity.this,auserID,text); | |
310 | + int typeaccount1=Integer.parseInt(typeaccount); | |
311 | + HttpManager.getInstance().changsignature(MainActivity.this,auserID,typeaccount1,text); | |
307 | 312 | } catch (NumberFormatException e) { |
308 | 313 | e.printStackTrace(); |
309 | 314 | } |
... | ... | @@ -335,10 +340,12 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe |
335 | 340 | protected void onResume() { |
336 | 341 | super.onResume(); |
337 | 342 | String userID = SaveParam.getInstance().getLoginParam(this,"userId"); |
343 | + String typeaccount = SaveParam.getInstance().getLoginParam(this,SaveParam.ACCOUNT); | |
338 | 344 | try { |
339 | 345 | long auserID = Long.parseLong(userID); |
346 | + int typeaccount1=Integer.parseInt(typeaccount); | |
340 | 347 | //获取个人信息 |
341 | - HttpManager.getInstance().getpresonalinfo(MainActivity.this,auserID,handler); | |
348 | + HttpManager.getInstance().getpresonalinfo(MainActivity.this,auserID,typeaccount1,handler); | |
342 | 349 | |
343 | 350 | } catch (NumberFormatException e) { |
344 | 351 | e.printStackTrace(); | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java
... | ... | @@ -26,6 +26,7 @@ import com.hjx.personalcenter.model.GradeInfo; |
26 | 26 | import com.hjx.personalcenter.model.ProvinceInfo; |
27 | 27 | import com.hjx.personalcenter.model.SchoolInfo; |
28 | 28 | import com.hjx.personalcenter.util.AlertUtils; |
29 | +import com.hjx.personalcenter.util.GetDevicesUtil; | |
29 | 30 | |
30 | 31 | import java.util.ArrayList; |
31 | 32 | |
... | ... | @@ -103,16 +104,31 @@ public class RegisterInfoActivity extends AppCompatActivity implements View.OnCl |
103 | 104 | AlertUtils.showToast(RegisterInfoActivity.this, "请将必填项填写完整"); |
104 | 105 | return; |
105 | 106 | }else{ |
107 | + String register5 = et_username.getText().toString().trim(); | |
108 | + String register6 = et_region.getText().toString().trim(); | |
109 | + String register7 = et_grade.getText().toString().trim(); | |
110 | + String register8 = et_school.getText().toString().trim(); | |
106 | 111 | if (Content.accountflag ==2){ |
107 | 112 | String userID = SaveParam.getInstance().getLoginParam(this,"userId"); |
108 | - String register5 = et_username.getText().toString().trim(); | |
109 | - String register6 = et_region.getText().toString().trim(); | |
110 | - String register7 = et_grade.getText().toString().trim(); | |
111 | - String register8 = et_school.getText().toString().trim(); | |
113 | + String grade = SaveParam.getInstance().getLoginParam(this,SaveParam.GRADENS); | |
114 | + String School = SaveParam.getInstance().getLoginParam(this,SaveParam.SCHOOOlID); | |
115 | + if (TextUtils.isEmpty(register8)){ | |
116 | + School = "0"; | |
117 | + } | |
118 | + String regionId = SaveParam.getInstance().getLoginParam(this, SaveParam.COUNTRY); | |
119 | + String regionId1 = SaveParam.getInstance().getLoginParam(this, SaveParam.CITYS); | |
120 | + String devicenumber =GetDevicesUtil.getDevicesInfo(this).getDeviceNumber(); | |
121 | + if (regionId == null) { | |
122 | + regionId = regionId1; | |
123 | + } | |
124 | + | |
112 | 125 | try { |
113 | 126 | long auserID = Long.parseLong(userID); |
127 | + long grades = Long.parseLong(grade); | |
128 | + long Schools = Long.parseLong(School); | |
129 | + long regionIds = Long.parseLong(regionId); | |
114 | 130 | HttpManager.getInstance().addchildAccountinfo(RegisterInfoActivity.this,auserID,"http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/a00de899-2f6d-43fb-9e30-71883842540e.png", |
115 | - register5,register7,register8,register6); | |
131 | + register5,grades,Schools,regionIds,devicenumber,register6); | |
116 | 132 | |
117 | 133 | } catch (NumberFormatException e) { |
118 | 134 | e.printStackTrace(); | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/fragment/LoginFragment.java
... | ... | @@ -19,6 +19,7 @@ import com.hjx.personalcenter.R; |
19 | 19 | import com.hjx.personalcenter.activity.ForgotPasswordActivity; |
20 | 20 | import com.hjx.personalcenter.activity.MainActivity; |
21 | 21 | import com.hjx.personalcenter.customdialog.ElectronicCardDialog; |
22 | +import com.hjx.personalcenter.db.SaveParam; | |
22 | 23 | import com.hjx.personalcenter.http.HttpCode; |
23 | 24 | import com.hjx.personalcenter.http.HttpManager; |
24 | 25 | import com.hjx.personalcenter.util.AlertUtils; |
... | ... | @@ -65,12 +66,14 @@ public class LoginFragment extends Fragment implements View.OnClickListener { |
65 | 66 | String userId = jsonObject.getString("userId"); |
66 | 67 | final String name = phonenumber.getText().toString().trim(); |
67 | 68 | final String pwd = login_pwwd.getText().toString().trim(); |
68 | -// //登录成功,保存登录数据并且获取个人信息 | |
69 | - HttpManager.getInstance().saveLoginInfo(getActivity(), name, pwd, access_token, "true", userId); | |
69 | +// | |
70 | 70 | try { |
71 | 71 | long auserID = Long.parseLong(userId); |
72 | 72 | //是否填写保卡 |
73 | 73 | HttpManager.getInstance().cardinfocheck(getActivity(),auserID,handler); |
74 | + //登录成功,保存登录数据并且获取个人信息 | |
75 | + HttpManager.getInstance().saveLoginInfo(getActivity(), name, pwd, access_token, "true", userId); | |
76 | + SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.ACCOUNT,"1"); | |
74 | 77 | } catch (NumberFormatException e) { |
75 | 78 | e.printStackTrace(); |
76 | 79 | } | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/fragment/PresonInfoFragment.java
... | ... | @@ -187,6 +187,9 @@ public class PresonInfoFragment extends Fragment implements View.OnClickListener |
187 | 187 | } |
188 | 188 | String grade = SaveParam.getInstance().getLoginParam(getActivity(), SaveParam.GRADENS); |
189 | 189 | String schoolid = SaveParam.getInstance().getLoginParam(getActivity(), SaveParam.SCHOOOlID); |
190 | + if (TextUtils.isEmpty(presonal6)){ | |
191 | + schoolid = "0"; | |
192 | + } | |
190 | 193 | ChangeInfo.SchoolBean changeinfo2 = new ChangeInfo.SchoolBean(); |
191 | 194 | try { |
192 | 195 | a = Integer.parseInt(regionId); | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpKey.java
... | ... | @@ -33,9 +33,11 @@ public class HttpKey { |
33 | 33 | public static String PARENTID = "parentId"; |
34 | 34 | public static String IMAGE = "image"; |
35 | 35 | public static String NAME = "name"; |
36 | - public static String GRADE = "grade"; | |
37 | - public static String SCHOOL = "school"; | |
38 | - public static String REGION = "region"; | |
36 | + public static String GRADE = "gradeId"; | |
37 | + public static String SCHOOL = "schoolId"; | |
38 | + public static String REGION = "regionId"; | |
39 | + public static String DEVINUMBER = "deviceNumber"; | |
40 | + public static String REGIONNAME = "regionName"; | |
39 | 41 | |
40 | 42 | |
41 | 43 | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpManager.java
... | ... | @@ -281,7 +281,7 @@ public class HttpManager { |
281 | 281 | intent.setClass(context, LoginAndRegisterActivity.class); |
282 | 282 | ((Activity) context).startActivity(intent); |
283 | 283 | ((Activity) context).finish(); |
284 | - }else{ | |
284 | + } else { | |
285 | 285 | Toast.makeText(context, "密码修改失败!", Toast.LENGTH_LONG).show(); |
286 | 286 | } |
287 | 287 | } catch (JSONException e) { |
... | ... | @@ -335,7 +335,7 @@ public class HttpManager { |
335 | 335 | Log.e("test", "onSuccess" + new String(bytes)); |
336 | 336 | Toast.makeText(context, "密码修改成功!", Toast.LENGTH_LONG).show(); |
337 | 337 | ((Activity) context).finish(); |
338 | - }else{ | |
338 | + } else { | |
339 | 339 | Toast.makeText(context, "密码修改失败!", Toast.LENGTH_LONG).show(); |
340 | 340 | } |
341 | 341 | } catch (JSONException e) { |
... | ... | @@ -644,23 +644,11 @@ public class HttpManager { |
644 | 644 | public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { |
645 | 645 | Log.e("test", "---" + new String(arg2)); |
646 | 646 | closeProgress(); |
647 | - try { | |
648 | - JSONObject jsonObject = new JSONObject(new String(arg2)); | |
649 | - int status = jsonObject.optInt("status"); | |
650 | - if (status == 1) { | |
651 | - Message msg = Message.obtain(); | |
652 | - msg.what = HttpCode.CHECKCARD; | |
653 | - msg.obj = new String(arg2); | |
654 | - handler.sendMessage(msg); | |
655 | - | |
656 | - | |
657 | - } else { | |
658 | - AlertUtils.showToast(mContext, "你好,服务器异常,请稍后重试!"); | |
647 | + Message msg = Message.obtain(); | |
648 | + msg.what = HttpCode.CHECKCARD; | |
649 | + msg.obj = new String(arg2); | |
650 | + handler.sendMessage(msg); | |
659 | 651 | |
660 | - } | |
661 | - } catch (JSONException e) { | |
662 | - e.printStackTrace(); | |
663 | - } | |
664 | 652 | |
665 | 653 | } |
666 | 654 | |
... | ... | @@ -823,12 +811,12 @@ public class HttpManager { |
823 | 811 | * @param userId |
824 | 812 | * @param handler |
825 | 813 | */ |
826 | - public void getpresonalinfo(final Context mContext, long userId, final Handler handler) { | |
814 | + public void getpresonalinfo(final Context mContext, long userId, int type, final Handler handler) { | |
827 | 815 | mProgress = DialogPermission.showProgress(mContext, null, "正在获取个人信息...", |
828 | 816 | false, true, null); |
829 | 817 | HttpClient.getInstance().addHeader("Accept", "application/json"); |
830 | 818 | HttpClient.getInstance().setConnectTimeout(5 * 1000); |
831 | - HttpClient.getInstance().get(HttpUrl.getpresonalinfo + "?userId=" + userId, new AsyncHttpResponseHandler() { | |
819 | + HttpClient.getInstance().get(HttpUrl.getpresonalinfo + "?userId=" + userId + "&type=" + type, new AsyncHttpResponseHandler() { | |
832 | 820 | @Override |
833 | 821 | public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { |
834 | 822 | closeProgress(); |
... | ... | @@ -944,9 +932,10 @@ public class HttpManager { |
944 | 932 | } |
945 | 933 | |
946 | 934 | //修改个性签名 |
947 | - public void changsignature(final Context mContext, long userId, final String signature) { | |
935 | + public void changsignature(final Context mContext, long userId, int type, final String signature) { | |
948 | 936 | RequestParams params = new RequestParams(); |
949 | 937 | params.put("userId", userId); |
938 | + params.put("type", type); | |
950 | 939 | params.put("signature", signature); |
951 | 940 | HttpClient.getInstance().addHeader("Accept", "*/*"); |
952 | 941 | HttpClient.getInstance().post(HttpUrl.signature, params, new AsyncHttpResponseHandler() { |
... | ... | @@ -1000,9 +989,9 @@ public class HttpManager { |
1000 | 989 | * @param userId |
1001 | 990 | * @param handler |
1002 | 991 | */ |
1003 | - public void getsignatures(final Context mContext, long userId, final Handler handler) { | |
992 | + public void getsignatures(final Context mContext, long userId, int type, final Handler handler) { | |
1004 | 993 | HttpClient.getInstance().addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); |
1005 | - HttpClient.getInstance().get(HttpUrl.getsignature + "?userId=" + userId, new AsyncHttpResponseHandler() { | |
994 | + HttpClient.getInstance().get(HttpUrl.getsignature + "?userId=" + userId + "&type=" + type, new AsyncHttpResponseHandler() { | |
1006 | 995 | @Override |
1007 | 996 | public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { |
1008 | 997 | Log.e("test", "个性签名" + new String(arg2)); |
... | ... | @@ -1032,27 +1021,7 @@ public class HttpManager { |
1032 | 1021 | @Override |
1033 | 1022 | public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { |
1034 | 1023 | Log.e("test", "失败原因" + arg3); |
1035 | - new CircleDialog.Builder((FragmentActivity) mContext) | |
1036 | - .setCanceledOnTouchOutside(false) | |
1037 | - .setCancelable(false) | |
1038 | - .setWidth(0.5f) | |
1039 | - .configText(new ConfigText() { | |
1040 | - @Override | |
1041 | - public void onConfig(TextParams params) { | |
1042 | - params.gravity = Gravity.CENTER; | |
1043 | - params.padding = new int[]{50, 50, 50, 50}; | |
1044 | - } | |
1045 | - }) | |
1046 | - .setText("当前无网络,请检查网络设置") | |
1047 | - .setNegative("继续使用", null) | |
1048 | - .setPositive("设置网络", new View.OnClickListener() { | |
1049 | - @Override | |
1050 | - public void onClick(View v) { | |
1051 | - Intent intent = new Intent(Settings.ACTION_SETTINGS);//系统设置界面 | |
1052 | - mContext.startActivity(intent); | |
1053 | - } | |
1054 | - }) | |
1055 | - .show(); | |
1024 | + AlertUtils.showToast(mContext, "你好,服务器异常,请稍后重试!"); | |
1056 | 1025 | } |
1057 | 1026 | }); |
1058 | 1027 | } |
... | ... | @@ -1256,7 +1225,8 @@ public class HttpManager { |
1256 | 1225 | * 添加子账户信息 |
1257 | 1226 | */ |
1258 | 1227 | public void addchildAccountinfo(final Context mContext, long parentId, String image, |
1259 | - String name, String grade, String school, String region) { | |
1228 | + String name, Long grade, Long school, Long region | |
1229 | + , String deviceNumber, String regionName) { | |
1260 | 1230 | mProgress = DialogPermission.showProgress(mContext, null, "正在添加子账户...", |
1261 | 1231 | false, true, null); |
1262 | 1232 | RequestParams params = new RequestParams(); |
... | ... | @@ -1267,8 +1237,10 @@ public class HttpManager { |
1267 | 1237 | params.put(HttpKey.GRADE, grade); |
1268 | 1238 | params.put(HttpKey.SCHOOL, school); |
1269 | 1239 | params.put(HttpKey.REGION, region); |
1240 | + params.put(HttpKey.DEVINUMBER, deviceNumber); | |
1241 | + params.put(HttpKey.REGIONNAME, regionName); | |
1270 | 1242 | |
1271 | - | |
1243 | + Log.e("test", "子账户信息" + params); | |
1272 | 1244 | HttpClient.getInstance().addHeader("Accept", "*/*"); |
1273 | 1245 | HttpClient.getInstance().setTimeout(5 * 1000); |
1274 | 1246 | HttpClient.getInstance().addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/service/TestService.java
... | ... | @@ -0,0 +1,27 @@ |
1 | +package com.hjx.personalcenter.service; | |
2 | + | |
3 | +import android.app.Service; | |
4 | +import android.content.Intent; | |
5 | +import android.os.IBinder; | |
6 | +import android.os.RemoteException; | |
7 | + | |
8 | +/** | |
9 | + * Created by h on 2017/9/1. | |
10 | + */ | |
11 | + | |
12 | +public class TestService extends Service { | |
13 | + public TestService(){ | |
14 | + | |
15 | + } | |
16 | + IPresonalInterface.Stub binder = new IPresonalInterface.Stub() { | |
17 | + @Override | |
18 | + public String sayHello() throws RemoteException { | |
19 | + return "这是测试AIDL的方法"; | |
20 | + } | |
21 | + }; | |
22 | + | |
23 | + @Override | |
24 | + public IBinder onBind(Intent intent) { | |
25 | + return binder; | |
26 | + } | |
27 | +} | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/util/GetDevicesUtil.java
... | ... | @@ -11,20 +11,6 @@ import com.hjx.personalcenter.model.DeviceInfo; |
11 | 11 | public class GetDevicesUtil { |
12 | 12 | private final static String LOG_TAG = "GetDevicesUtil"; |
13 | 13 | |
14 | - public static String getDevicesJson(Context context){ | |
15 | - DeviceInfo mDeviceInfo = new DeviceInfo(); | |
16 | - initDevicesInfo(mDeviceInfo,context); | |
17 | - | |
18 | - StringBuilder sb = new StringBuilder(); | |
19 | - sb.append("\"devices\":[{"); | |
20 | - sb.append("\"deviceNumber\":").append("\"").append( mDeviceInfo.getDeviceNumber()).append("\","); | |
21 | - sb.append("\"deviceModel\":").append("\"").append(mDeviceInfo.getDeviceModel()).append("\","); | |
22 | - sb.append("\"mac\":").append("\"").append(mDeviceInfo.getMac()).append("\","); | |
23 | - sb.append("}]"); | |
24 | - Log.i(LOG_TAG, sb.toString()); | |
25 | - return sb.toString(); | |
26 | - } | |
27 | - | |
28 | 14 | public static DeviceInfo getDevicesInfo(Context context){ |
29 | 15 | DeviceInfo mDeviceInfo = new DeviceInfo(); |
30 | 16 | initDevicesInfo(mDeviceInfo,context); |
... | ... | @@ -39,7 +25,7 @@ public class GetDevicesUtil { |
39 | 25 | Log.e(LOG_TAG,"" + mDeviceInfo.getMac()); |
40 | 26 | |
41 | 27 | mDeviceInfo.setDeviceNumber(getCPUSerial(context)); |
42 | - Log.e(LOG_TAG,"" + mDeviceInfo.getDeviceModel()); | |
28 | + Log.e(LOG_TAG,"" + mDeviceInfo.getDeviceNumber()); | |
43 | 29 | } |
44 | 30 | |
45 | 31 | private static String getCPUSerial(Context context) { | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/util/MachineUtil.java
... | ... | @@ -2,6 +2,7 @@ package com.hjx.personalcenter.util; |
2 | 2 | |
3 | 3 | import android.content.Context; |
4 | 4 | import android.os.Build; |
5 | +import android.provider.Settings; | |
5 | 6 | import android.telephony.TelephonyManager; |
6 | 7 | import android.text.TextUtils; |
7 | 8 | |
... | ... | @@ -67,7 +68,14 @@ public class MachineUtil { |
67 | 68 | } |
68 | 69 | |
69 | 70 | try{ |
70 | - cpuAddress = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); | |
71 | + TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); | |
72 | + if (mTelephony.getDeviceId() != null) { | |
73 | + cpuAddress = mTelephony.getDeviceId(); | |
74 | + } else { | |
75 | + //android.provider.Settings; | |
76 | + cpuAddress = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); | |
77 | + } | |
78 | + //cpuAddress = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); | |
71 | 79 | }catch(Exception e){ |
72 | 80 | com.hjx.personalcenter.util.LogUtil.Instance().WriteLog("=========.MACHINE.=========function 4 get device id error"); |
73 | 81 | } | ... | ... |
PersonalCenter/app/src/main/java/com/hjx/personalcenter/util/QRCodeUtil.java
... | ... | @@ -0,0 +1,133 @@ |
1 | +package com.hjx.personalcenter.util; | |
2 | + | |
3 | +/** | |
4 | + * Created by liujiaqi on 2016/12/6. | |
5 | + */ | |
6 | + | |
7 | +import android.graphics.Bitmap; | |
8 | +import android.graphics.BitmapFactory; | |
9 | +import android.graphics.Canvas; | |
10 | + | |
11 | +import com.google.zxing.BarcodeFormat; | |
12 | +import com.google.zxing.EncodeHintType; | |
13 | +import com.google.zxing.WriterException; | |
14 | +import com.google.zxing.common.BitMatrix; | |
15 | +import com.google.zxing.qrcode.QRCodeWriter; | |
16 | +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; | |
17 | + | |
18 | +import java.io.FileInputStream; | |
19 | +import java.io.FileOutputStream; | |
20 | +import java.io.IOException; | |
21 | +import java.util.HashMap; | |
22 | +import java.util.Map; | |
23 | + | |
24 | +/** | |
25 | + * 二维码生成工具类 | |
26 | + */ | |
27 | +public class QRCodeUtil { | |
28 | + /** | |
29 | + * 生成二维码Bitmap | |
30 | + * | |
31 | + * @param content 内容 | |
32 | + * @param widthPix 图片宽度 | |
33 | + * @param heightPix 图片高度 | |
34 | + * @param logoBm 二维码中心的Logo图标(可以为null) | |
35 | + * @param filePath 用于存储二维码图片的文件路径 | |
36 | + */ | |
37 | + public static Bitmap createQRImage(String content, int widthPix, int heightPix, Bitmap logoBm, String filePath) { | |
38 | + Bitmap bitmap=null; | |
39 | + try { | |
40 | + if (content == null || "".equals(content)) { | |
41 | + return null; | |
42 | + } | |
43 | + | |
44 | + //配置参数 | |
45 | + Map<EncodeHintType, Object> hints = new HashMap<>(); | |
46 | + hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); | |
47 | + //容错级别 | |
48 | + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); | |
49 | + //设置空白边距的宽度 | |
50 | +// hints.put(EncodeHintType.MARGIN, 2); //default is 4 | |
51 | + | |
52 | + // 图像数据转换,使用了矩阵转换 | |
53 | + BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, widthPix, heightPix, hints); | |
54 | + int[] pixels = new int[widthPix * heightPix]; | |
55 | + // 下面这里按照二维码的算法,逐个生成二维码的图片, | |
56 | + // 两个for循环是图片横列扫描的结果 | |
57 | + for (int y = 0; y < heightPix; y++) { | |
58 | + for (int x = 0; x < widthPix; x++) { | |
59 | + if (bitMatrix.get(x, y)) { | |
60 | + pixels[y * widthPix + x] = 0xff000000; | |
61 | + } else { | |
62 | + pixels[y * widthPix + x] = 0xffffffff; | |
63 | + } | |
64 | + } | |
65 | + } | |
66 | + | |
67 | + // 生成二维码图片的格式,使用ARGB_8888 | |
68 | + bitmap = Bitmap.createBitmap(widthPix, heightPix, Bitmap.Config.ARGB_8888); | |
69 | + bitmap.setPixels(pixels, 0, widthPix, 0, 0, widthPix, heightPix); | |
70 | + | |
71 | + if (logoBm != null) { | |
72 | + bitmap = addLogo(bitmap, logoBm); | |
73 | + } | |
74 | + | |
75 | + //必须使用compress方法将bitmap保存到文件中再进行读取。直接返回的bitmap是没有任何压缩的,内存消耗巨大! | |
76 | + if (bitmap != null) { | |
77 | + bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(filePath)); | |
78 | + bitmap= BitmapFactory.decodeStream(new FileInputStream(filePath)); | |
79 | + } | |
80 | + | |
81 | + } catch (WriterException | IOException e) { | |
82 | + e.printStackTrace(); | |
83 | + } | |
84 | + | |
85 | + return bitmap; | |
86 | + } | |
87 | + | |
88 | + /** | |
89 | + * 在二维码中间添加Logo图案 | |
90 | + */ | |
91 | + private static Bitmap addLogo(Bitmap src, Bitmap logo) { | |
92 | + if (src == null) { | |
93 | + return null; | |
94 | + } | |
95 | + | |
96 | + if (logo == null) { | |
97 | + return src; | |
98 | + } | |
99 | + | |
100 | + //获取图片的宽高 | |
101 | + int srcWidth = src.getWidth(); | |
102 | + int srcHeight = src.getHeight(); | |
103 | + int logoWidth = logo.getWidth(); | |
104 | + int logoHeight = logo.getHeight(); | |
105 | + | |
106 | + if (srcWidth == 0 || srcHeight == 0) { | |
107 | + return null; | |
108 | + } | |
109 | + | |
110 | + if (logoWidth == 0 || logoHeight == 0) { | |
111 | + return src; | |
112 | + } | |
113 | + | |
114 | + //logo大小为二维码整体大小的1/5 | |
115 | + float scaleFactor = srcWidth * 1.0f / 5 / logoWidth; | |
116 | + Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888); | |
117 | + try { | |
118 | + Canvas canvas = new Canvas(bitmap); | |
119 | + canvas.drawBitmap(src, 0, 0, null); | |
120 | + canvas.scale(scaleFactor, scaleFactor, srcWidth / 2, srcHeight / 2); | |
121 | + canvas.drawBitmap(logo, (srcWidth - logoWidth) / 2, (srcHeight - logoHeight) / 2, null); | |
122 | + | |
123 | + canvas.save(Canvas.ALL_SAVE_FLAG); | |
124 | + canvas.restore(); | |
125 | + } catch (Exception e) { | |
126 | + bitmap = null; | |
127 | + e.getStackTrace(); | |
128 | + } | |
129 | + | |
130 | + return bitmap; | |
131 | + } | |
132 | + | |
133 | +} | |
0 | 134 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_binding_code.xml
... | ... | @@ -0,0 +1,12 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + android:orientation="vertical" | |
4 | + android:layout_width="match_parent" | |
5 | + android:gravity="center" | |
6 | + android:layout_height="match_parent"> | |
7 | + <ImageView | |
8 | + android:id="@+id/EQpicture" | |
9 | + android:layout_width="wrap_content" | |
10 | + android:layout_height="wrap_content" /> | |
11 | + | |
12 | +</LinearLayout> | |
0 | 13 | \ No newline at end of file | ... | ... |
PersonalCenter/app/src/main/res/layout/activity_electronic_look_cardinfo.xml