Commit c639a210 by chengfengpiaopiao

增加H5调用相册更改头像

parent 893c9986
......@@ -27,34 +27,6 @@
</value>
</option>
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id />
</State>
<State>
<id>Android</id>
</State>
<State>
<id>Android &gt; Lint &gt; Correctness</id>
</State>
<State>
<id>Java</id>
</State>
<State>
<id>Java language level migration aidsJava</id>
</State>
</expanded-state>
<selected-state>
<State>
<id>Android</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
<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">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
......
......@@ -26,6 +26,16 @@ android {
multiDexEnabled true //方法数超过65535
}
dexOptions {
javaMaxHeapSize "4g"
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
//配置keystore签名
signingConfigs {
......@@ -69,6 +79,14 @@ android {
}
}
sourceSets {
main() {
jniLibs.srcDirs = ['libs']
}
}
// android.applicationVariants.all { variant ->
// variant.outputs.each { output ->
// def outputFile = output.outputFile
......
package com.maile.jingcai.module.api;
import com.maile.jingcai.module.WrapperRspEntity;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;
/**
* Created by chengfeng-piaopiao on 2017/11/23.
*/
public interface BusinessApiService {
// @GET("upAvatar")
// Observable<WrapperRspEntity<String>> upUserHeadImage( @Query("uid") String token , @Query("userface") String userface);
@FormUrlEncoded
@POST("testUpAvatar")
Observable<WrapperRspEntity<String>> upUserHeadImage(@Field("uid") String token,
@Field("base") String userface);
}
package com.maile.jingcai.view.activity;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
......@@ -96,6 +98,7 @@ public class ImageCropHeadActivity extends Activity{
selector.origin(mSelectPath);
//请求图片库,并且在onActivityResult中进行返回
selector.start(ImageCropHeadActivity.this, REQUEST_IMAGE);
//requestPermission( Manifest.permission.WRITE_CONTACTS,"夺宝竞猜 正在尝试 拍照、录像和闪光灯",REQUEST_STORAGE_READ_ACCESS_PERMISSION);
}
......@@ -117,6 +120,15 @@ public class ImageCropHeadActivity extends Activity{
}
}
@Override
public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults){
switch(permsRequestCode){
case REQUEST_STORAGE_READ_ACCESS_PERMISSION:
break;
}
}
private void createTempFile() {
......
......@@ -2,6 +2,7 @@ package com.maile.jingcai.view.activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
......@@ -11,6 +12,7 @@ import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
......@@ -24,8 +26,13 @@ import com.maile.jingcai.R;
import com.maile.jingcai.base.Constant;
import com.maile.jingcai.commponent.PicModeSelectView;
import com.maile.jingcai.commponent.ToastTopBar;
import com.maile.jingcai.module.WrapperRspEntity;
import com.maile.jingcai.module.api.BusinessApiService;
import com.maile.jingcai.module.entity.TabEntity;
import com.maile.jingcai.module.net.RetrofitManager;
import com.maile.jingcai.util.CameraUtil;
import com.maile.jingcai.util.DrawUtil;
import com.maile.jingcai.util.ImageUtils;
import com.maile.jingcai.util.NetUtils;
import com.maile.jingcai.util.PublicUtils;
import com.maile.jingcai.util.preferences.IPreferencesIds;
......@@ -42,6 +49,10 @@ import java.util.Random;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import rx.Observer;
import rx.Scheduler;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* Created by chengfeng-piaopiao on 2017/11/8.
......@@ -87,7 +98,7 @@ public class MainActivity extends FragmentActivity implements IWebView {
private WebView mWebView;
private String mWebURL;
private String[] urls = {"http://h5.test.7peng.cn/","http://192.168.1.250:81/shop","http://h5.test.7peng.cn/profile.html"};
private String uid;
@Override
......@@ -256,22 +267,15 @@ public class MainActivity extends FragmentActivity implements IWebView {
case IMAGE_HEAD:
//回调设置头像
if (null != data) {
if (data.getBooleanExtra(CLICK_BACK_IMAGE, false) == true) {
mToastBar.showErrorBar(R.string.user_info_upload_head_fail);
return;
}
/* Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.getParcelable(sendToEditBitMapStr);*/
//重新设置头像
/*mHeaderView.setImageBitmap(bitmap);*/
mBitmapStr = data.getStringExtra(sendToEditBitMapStr);
if (null != mBitmapStr) {
/* mImageUri = ImageUtils.getImageUri(mBitmapStr);//从文件中读出uri
mBitmap = ImageUtils.getBitmap(mImageUri, EditUserInfoActivity.this);
mHeaderView.setImageBitmap(mBitmap);*/
// updateHeadImage();
updateHeadImage();
}
}
break;
......@@ -322,10 +326,53 @@ public class MainActivity extends FragmentActivity implements IWebView {
}
}
private void updateHeadImage() {
Bitmap bitmap = CameraUtil.decodeUriAsBitmap(Uri.fromFile(new File(Constant.ACCOUNT_CROP_DIR, CameraUtil.TEMP_PHOTO_FILE_NAME)), MainActivity.this);
if (bitmap == null) {
mToastBar.showErrorBar(R.string.user_info_upload_head_fail);
return;
}
bitmap = ImageUtils.zoomImage(bitmap, DrawUtil.dip2px(85), DrawUtil.dip2px(85)); // 防止图片太大,我的页面头像大小
//mHeaderView.setImageBitmap(bitmap);
// 上传到服务器
final String userFace = CameraUtil.imgToBase64(null, bitmap);
// PreferencesManager preferencesManager = PreferencesManager.getSharedPreference(getApplicationContext(),
// IPreferencesIds.DEFAULT_SHAREPREFERENCES_FILE,
// Context.MODE_PRIVATE);
// final String token = preferencesManager.getString(IPreferencesIds.TOKEN, "");
if(TextUtils.isEmpty(uid)){
mToastBar.showErrorBar("用户id不能为空");
return;
}
RetrofitManager.getInstance().createReq(BusinessApiService.class).upUserHeadImage(uid,userFace).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<WrapperRspEntity<String>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
mToastBar.showErrorBar(R.string.user_info_upload_head_server_fail);
}
@Override
public void onNext(WrapperRspEntity<String> userWrapperRspEntity) {
//webview调用H5的刷新方法
mWebView.loadUrl("javascript:handleAvatarSuccess()");
}});
}
@Override
public void editUserImage(WebView webView, String webURL) {
public void editUserImage(WebView webView, String webURL,String uid) {
this.mWebView = webView;
this.mWebURL = webURL;
this.uid = uid;
mToastBar.showErrorBar("正在拉起库");
/**
* 直接拉起相册库--》去除dialog
*/
......@@ -335,8 +382,6 @@ public class MainActivity extends FragmentActivity implements IWebView {
//mPicSelectView.show(true);拉起activity
Intent intent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//19版本
/*intent = CameraUtil.selectImageUriAfterKikat();
startActivityForResult(intent, CameraUtil.SELECT_A_PICTURE_AFTER_KIKAT);*/
String savePath = Constant.SHARE_DIR + System.currentTimeMillis() + ".png";
Intent intentHead = new Intent(MainActivity.this, ImageCropHeadActivity.class);
......
......@@ -101,10 +101,10 @@ public class SimpleCardFragment extends BaseFragment {
if (isVisibleToUser) {
Log.i("tangwen", "onResume: " + mUrl);
if (mUrl.equals("http://192.168.1.250:81/shop") || mUrl.equals("http://h5.test.7peng.cn/profile.html")) {
Log.i("tangwen", "onResume: " + "第二页");
//Log.i("tangwen", "onResume: " + "第二页");
mWebView.loadUrl(mUrl);
}
Log.i("tangwen", "onResume: " + "其他页面");
// Log.i("tangwen", "onResume: " + "其他页面");
}
}
......@@ -212,6 +212,12 @@ public class SimpleCardFragment extends BaseFragment {
Log.i("ggg", "onPageFinished: " + "ggg");
// new Handler().postDelayed(new Runnable(){
// public void run() {
// //mWebView.loadUrl("javascript:console.log('ggg'); (function(){localStorage.setItem(\"__token__\", '"+token+"');})();");
// mWebView.loadUrl("javascript:console.log('type:'+ typeof(window.h5AutoLogin));h5AutoLogin('"+token+"')");
// }
// }, 2000);
......@@ -268,8 +274,9 @@ public class SimpleCardFragment extends BaseFragment {
* @return 是否修改成功
*/
@JavascriptInterface
public void editUserHeadImage(){
mIWebView.editUserImage(mWebView,currentURL);
public void editUserHeadImage(String uid){
Log.d("editUserHeadImage", "uid: " + uid);
mIWebView.editUserImage(mWebView,currentURL,uid);
}
}
......
......@@ -13,5 +13,5 @@ public interface IWebView {
* @param webURL 当前H5页面的URL
* @return 头像是否修改成功
*/
void editUserImage(WebView webView,String webURL);
void editUserImage(WebView webView,String webURL,String uid);
}
......@@ -135,7 +135,7 @@ public class LoginMainLayer extends RelativeLayout {
*/
public void startAnimToLogin() {
llLoginContainer.setVisibility(VISIBLE);
AlphaAnimation alphaAnimIn = new AlphaAnimation(0, 1);
AlphaAnimation alphaAnimIn = new AlphaAnimation(1, 1);
alphaAnimIn.setDuration(DURATION_ANIM_IN_LOGIN);
alphaAnimIn.setFillAfter(true);
llLoginContainer.startAnimation(alphaAnimIn);
......
......@@ -24,4 +24,5 @@
<string name="dialog_select_btn_cancel">取消</string>
<string name="user_info_upload_head_success">上传头像成功</string>
<string name="user_info_upload_head_fail">取消头像设置</string>
<string name="user_info_upload_head_server_fail">头像上传失败</string>
</resources>
......@@ -2,13 +2,13 @@ apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 12
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.1"
versionName "1.0"
}
buildTypes {
release {
......@@ -22,6 +22,6 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.squareup.picasso:picasso:2.4.0'
}
......@@ -2,10 +2,13 @@ package me.nereo.multi_image_selector;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.widget.Toast;
......@@ -91,6 +94,8 @@ public class MultiImageSelector {
}
}
private boolean hasPermission(Context context){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
// Permission was added in API Level 16
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment