Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
09d2b114
Commit
09d2b114
authored
Aug 23, 2022
by
王佳洋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UI调整
parent
1ae9f41c
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
22 additions
and
15 deletions
+22
-15
build.gradle
build.gradle
+1
-1
ModifyAvatarActivity.kt
m-user/src/main/java/com/yidianling/user/mine/ModifyAvatarActivity.kt
+2
-2
ModifyInfoActivity.kt
m-user/src/main/java/com/yidianling/user/mine/ModifyInfoActivity.kt
+4
-0
modify_warn.png
m-user/src/main/res/drawable-xhdpi/modify_warn.png
+0
-0
activity_modify_avatar.xml
m-user/src/main/res/layout/activity_modify_avatar.xml
+5
-3
activity_modify_info.xml
m-user/src/main/res/layout/activity_modify_info.xml
+4
-4
colors.xml
ydl-platform/src/main/res/values/colors.xml
+2
-1
platform_ic_pop_feed.png
ydl-webview/src/main/res/drawable-xhdpi/platform_ic_pop_feed.png
+0
-0
web_ui_new_more.xml
ydl-webview/src/main/res/layout/web_ui_new_more.xml
+4
-4
No files found.
build.gradle
View file @
09d2b114
...
...
@@ -14,7 +14,7 @@ buildscript {
ydlrouter_version
=
'1.2.3'
constrait_support_version
=
'1.0.2'
componentVersion
=
"0.3.0.2
2
-wjy-SNAPSHOT"
componentVersion
=
"0.3.0.2
4
-wjy-SNAPSHOT"
}
repositories
{
mavenCentral
()
...
...
m-user/src/main/java/com/yidianling/user/mine/ModifyAvatarActivity.kt
View file @
09d2b114
package
com.yidianling.user.mine
import
android.annotation.SuppressLint
import
android.app.Dialog
import
android.content.Intent
import
android.graphics.Bitmap
import
android.graphics.BitmapFactory
import
android.hardware.Camera
import
android.net.Uri
import
android.os.Build
import
android.provider.MediaStore
import
android.text.Spannable
import
android.text.SpannableString
import
android.text.style.ForegroundColorSpan
import
android.view.View
import
android.widget.ImageView
import
android.widget.TextView
import
com.alibaba.android.arouter.launcher.ARouter
import
com.bumptech.glide.Glide
import
com.hjq.permissions.OnPermissionCallback
import
com.hjq.permissions.Permission
import
com.hjq.permissions.XXPermissions
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.bean.StatusBarOptions
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.modular.findRouteService
import
com.ydl.ydlcommon.utils.FileUtils
import
com.ydl.ydlcommon.utils.extend.visible
import
com.ydl.ydlcommon.view.ListNoCancelDialog
import
com.ydl.ydlcommon.view.TitleBar
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.api.service.IImService
import
com.yidianling.user.R
import
com.yidianling.user.api.service.IUserService
import
com.yidianling.user.http.UserHttpImpl
import
com.yidianling.user.http.request.BaseInfo
import
com.yidianling.user.http.request.UserModifyAuditRespDto
import
de.greenrobot.event.EventBus
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
java.io.File
import
java.io.IOException
class
ModifyAvatarActivity
:
BaseActivity
()
{
override
fun
getStatusViewOptions
():
StatusBarOptions
{
return
StatusBarOptions
(
isAddStatusView
=
true
,
statusBarDarkMode
=
false
).
apply
{
statusColor
=
"#E6000000"
}
}
private
val
ALBUM
=
0
x0
//
相册
private
val
CAMERA
=
0
x1
//
照相
private
val
CROP
=
0
x2
//
裁剪
m
private
val
mAvatarDir
=
"${FileUtils.getStorageDirectory()}/img/head_img/"
//
头像目录
private
val
mAvatarPath
=
"${mAvatarDir}avatar_camera.jpg"
//
头像
private
val
mAvatarFile
=
File
(
mAvatarPath
)
//
头像文件
private
val
mUserInfo
=
findRouteService
(
IUserService
::
class
.
java
).
getUserInfo
()
override
fun
layoutResId
():
Int
=
R
.
layout
.
activity_modify_avatar
private
lateinit
var
tip_bar
:
TitleBar
private
lateinit
var
tv_tip1
:
TextView
private
lateinit
var
iv_avatar
:
ImageView
private
lateinit
var
iv_warn
:
ImageView
private
lateinit
var
tv_tip2
:
TextView
private
lateinit
var
tv_modify
:
TextView
private
fun
findView
()
{
tip_bar
=
findViewById
(
R
.
id
.
tip_bar
)
tv_tip1
=
findViewById
(
R
.
id
.
tv_tip1
)
iv_avatar
=
findViewById
(
R
.
id
.
iv_avatar
)
iv_warn
=
findViewById
(
R
.
id
.
iv_warn
)
tv_tip2
=
findViewById
(
R
.
id
.
tv_tip2
)
tv_modify
=
findViewById
(
R
.
id
.
tv_modify
)
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
initDataAndEvent
()
{
findView
()
tip_bar
.
setOnLeftTextClick
{
_
,
_
->
setResult
(
RESULT_OK
)
//
刷新个人资料页
finish
()
}
mUserInfo
?:
return
mDisposables
.
add
(
UserHttpImpl
.
getInstance
()
.
getUserAuditInfo
(
BaseInfo
(
102
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
response
:
BaseAPIResponse
<
UserModifyAuditRespDto
>
->
if
(
response
.
code
!=
"200"
)
return
@subscribe
val
(
_
,
auditStatus
,
_
,
_
,
_
,
_
,
_
,
last7Day
,
modifyAfter
)
=
response
.
data
when
(
auditStatus
)
{
1
->
{
//
审核中
underReview
()
Glide
.
with
(
this
)
.
load
(
modifyAfter
)
.
into
(
iv_avatar
)
}
2
->
{
//
审核失败
tv_tip1
.
text
=
"七天内可修改一次头像"
Glide
.
with
(
this
)
.
load
(
mUserInfo
.
head
)
.
into
(
iv_avatar
)
iv_warn
.
visible
()
tv_tip2
.
text
=
SpannableString
(
"审核失败,该头像提交不规范,请修改后重新提交审核。\n如有疑问联系客服小壹"
).
also
{
it
.
setSpan
(
ForegroundColorSpan
(
resources
.
getColor
(
R
.
color
.
color_1DA1F2
)),
it
.
indexOf
(
"客服"
),
it
.
length
,
Spannable
.
SPAN_EXCLUSIVE_EXCLUSIVE
)
}
tv_tip2
.
setOnClickListener
{
//
客服
ARouter
.
getInstance
().
navigation
(
IImService
::
class
.
java
).
startKefuChat
(
this
,
""
,
0
,
0
)
}
setModifyAvatar
()
}
3
->
{
//
审核成功
||
提交审核
modifyAfter
?.
let
{
mUserInfo
.
head
=
it
Glide
.
with
(
this
)
.
load
(
it
)
.
error
(
R
.
drawable
.
platform_head_place_hold_pic
)
.
into
(
iv_avatar
)
}
findRouteService
(
IImService
::
class
.
java
).
updateUserHead
(
modifyAfter
)
//
更新用户头像到云信
EventBus
.
getDefault
().
post
(
UserChangeEvent
(
true
))
//
更新
MineFragment
if
(
last7Day
)
{
tv_tip1
.
text
=
"抱歉,七天内只能修改一次头像"
tv_modify
.
isEnabled
=
false
tv_modify
.
setBackgroundResource
(
R
.
drawable
.
bg_c3c4ca_corner_8
)
}
else
{
tv_tip1
.
text
=
"七天内可修改一次头像"
setModifyAvatar
()
}
}
}
})
}
private
fun
setModifyAvatar
()
{
tv_modify
.
setOnClickListener
{
requestPermissions
{
optionDialog
()
}
}
}
private
fun
requestPermissions
(
block
:
()
->
Unit
)
{
if
(
XXPermissions
.
isGrantedPermission
(
this
,
Permission
.
CAMERA
))
{
block
.
invoke
()
}
else
{
XXPermissions
.
with
(
this
)
.
permission
(
Permission
.
CAMERA
)
.
request
(
object
:
OnPermissionCallback
{
override
fun
onGranted
(
permissions
:
MutableList
<
String
>?,
all
:
Boolean
)
{
block
.
invoke
()
}
override
fun
onDenied
(
permissions
:
MutableList
<
String
>?,
never
:
Boolean
)
{
ToastUtil
.
toastLong
(
this
@ModifyAvatarActivity
,
"缺少使用相机和读取存储权限,无法获取图片"
)
}
})
}
}
private
fun
optionDialog
()
{
showFragment
(
AvaterDialog
().
apply
{
listener
=
{
position
,
dialog
->
val
file
=
File
(
mAvatarDir
)
if
(!
file
.
exists
())
file
.
mkdirs
()
when
(
position
)
{
0
->
{
//
相册
val
intent
=
Intent
(
Intent
.
ACTION_PICK
,
null
)
intent
.
setDataAndType
(
MediaStore
.
Images
.
Media
.
EXTERNAL_CONTENT_URI
,
"image/*"
)
startActivityForResult
(
intent
,
ALBUM
)
}
1
->
{
//
拍照
callCamera
()
}
}
dialog
.
dismiss
()
}
},
"avater"
)
}
/** * 调用相机 */
private
fun
callCamera
()
{
val
intent
=
Intent
()
packageManager
.
getLaunchIntentForPackage
(
"com.android.camera"
)
?.
run
{
intent
.
setPackage
(
"com.android.camera"
)
}
intent
.
action
=
MediaStore
.
ACTION_IMAGE_CAPTURE
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
//
api
24
intent
.
putExtra
(
"android.intent.extras.CAMERA_FACING"
,
Camera
.
CameraInfo
.
CAMERA_FACING_FRONT
)
//
调用前置摄像头
intent
.
putExtra
(
"autofocus"
,
true
)
//
自动对焦
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
Uri
.
fromFile
(
mAvatarFile
))
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
JPEG
.
toString
())
startActivityForResult
(
intent
,
CAMERA
)
}
else
{
try
{
mAvatarFile
.
createNewFile
()
}
catch
(
e
:
IOException
)
{
e
.
printStackTrace
()
}
val
uri
:
Uri
=
FileUtils
.
getImageContentUri
(
this
,
mAvatarFile
)
intent
.
putExtra
(
"android.intent.extras.CAMERA_FACING"
,
Camera
.
CameraInfo
.
CAMERA_FACING_FRONT
)
//
调用前置摄像头
intent
.
putExtra
(
"autofocus"
,
true
)
//
自动对焦
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
uri
)
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
JPEG
.
toString
())
startActivityForResult
(
intent
,
CAMERA
)
}
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
if
(
resultCode
==
RESULT_OK
)
{
when
(
requestCode
)
{
ALBUM
->
{
//
相册
data
?.
let
{
startPhotoZoom
(
it
.
data
)
}
}
CAMERA
->
{
//
拍照
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
//
api
24
if
(
mAvatarFile
.
exists
())
{
startPhotoZoom
(
Uri
.
fromFile
(
mAvatarFile
))
}
}
else
{
startPhotoZoom
(
FileUtils
.
getImageContentUri
(
this
,
mAvatarFile
))
}
}
CROP
->
{
mUserInfo
?:
return
showProgressDialog
(
"保存中..."
)
val
path
=
FileUtils
.
getPathByUri4kitkat
(
this
,
Uri
.
fromFile
(
mAvatarFile
))
var
bitmap
=
BitmapFactory
.
decodeFile
(
path
)
bitmap
=
FileUtils
.
getZoomImage
(
bitmap
,
200.0
)
val
outPutFile
=
FileUtils
.
saveBitmap
(
bitmap
,
path
)
mDisposables
.
add
(
UserHttpImpl
.
getInstance
().
uploadFile
(
outPutFile
)
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
dismissProgressDialog
()
if
(
it
.
code
!=
"200"
)
{
ToastUtil
.
toastShort
(
it
.
msg
)
return
@subscribe
}
ToastUtil
.
toastShort
(
"头像审核中,预计24小时内审核完成"
)
underReview
()
iv_avatar
.
setImageBitmap
(
bitmap
)
}
)
}
}
}
}
/** * 审核中 */
@SuppressLint
(
"SetTextI18n"
)
private
fun
underReview
()
{
tv_tip1
.
text
=
"抱歉,七天内只能修改一次头像"
tv_tip2
.
text
=
"审核中,预计24小时内审核完成,暂无法修改。"
tv_modify
.
setBackgroundResource
(
R
.
drawable
.
bg_c3c4ca_corner_8
)
tv_modify
.
isEnabled
=
false
}
/** * 裁剪图片方法实现 */
private
fun
startPhotoZoom
(
uri
:
Uri
?)
{
val
intent
=
Intent
(
"com.android.camera.action.CROP"
).
apply
{
setDataAndType
(
uri
,
"image/*"
)
putExtra
(
"crop"
,
"true"
)
//
设置裁剪
putExtra
(
"scaleUpIfNeeded"
,
true
)
//
图片拉伸,就不会出现黑框了
//
宽高的比例
putExtra
(
"aspectX"
,
1
)
putExtra
(
"aspectY"
,
1
)
//
裁剪图片宽高
putExtra
(
"outputX"
,
200
)
putExtra
(
"outputY"
,
200
)
}
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
Uri
.
fromFile
(
mAvatarFile
))
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
PNG
.
toString
())
//
return
-
data
=
true
传递的为缩略图,小米手机默认传递大图,所以会导致
onActivityResult
调用失败
intent
.
putExtra
(
"return-data"
,
false
)
//
intent
.
putExtra
(
"noFaceDetection"
,
false
)
//
是否需要人脸识别
startActivityForResult
(
intent
,
CROP
)
}
}
\ No newline at end of file
package
com.yidianling.user.mine
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.graphics.Bitmap
import
android.graphics.BitmapFactory
import
android.hardware.Camera
import
android.net.Uri
import
android.os.Build
import
android.provider.MediaStore
import
android.text.Spannable
import
android.text.SpannableString
import
android.text.style.ForegroundColorSpan
import
android.widget.ImageView
import
android.widget.TextView
import
com.alibaba.android.arouter.launcher.ARouter
import
com.bumptech.glide.Glide
import
com.hjq.permissions.OnPermissionCallback
import
com.hjq.permissions.Permission
import
com.hjq.permissions.XXPermissions
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.bean.StatusBarOptions
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.modular.findRouteService
import
com.ydl.ydlcommon.utils.FileUtils
import
com.ydl.ydlcommon.utils.extend.visible
import
com.ydl.ydlcommon.view.TitleBar
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.api.service.IImService
import
com.yidianling.user.R
import
com.yidianling.user.api.service.IUserService
import
com.yidianling.user.http.UserHttpImpl
import
com.yidianling.user.http.request.BaseInfo
import
com.yidianling.user.http.request.UserModifyAuditRespDto
import
de.greenrobot.event.EventBus
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
java.io.File
import
java.io.IOException
class
ModifyAvatarActivity
:
BaseActivity
()
{
override
fun
getStatusViewOptions
():
StatusBarOptions
{
return
StatusBarOptions
(
isAddStatusView
=
true
,
statusBarDarkMode
=
false
).
apply
{
statusColor
=
"#E6000000"
}
}
private
val
ALBUM
=
0
x0
//
相册
private
val
CAMERA
=
0
x1
//
照相
private
val
CROP
=
0
x2
//
裁剪
m
private
val
mAvatarDir
=
"${FileUtils.getStorageDirectory()}/img/head_img/"
//
头像目录
private
val
mAvatarPath
=
"${mAvatarDir}avatar_camera.jpg"
//
头像
private
val
mAvatarFile
=
File
(
mAvatarPath
)
//
头像文件
private
val
mUserInfo
=
findRouteService
(
IUserService
::
class
.
java
).
getUserInfo
()
override
fun
layoutResId
():
Int
=
R
.
layout
.
activity_modify_avatar
private
lateinit
var
tip_bar
:
TitleBar
private
lateinit
var
tv_tip1
:
TextView
private
lateinit
var
iv_avatar
:
ImageView
private
lateinit
var
iv_warn
:
ImageView
private
lateinit
var
tv_tip2
:
TextView
private
lateinit
var
tv_modify
:
TextView
private
fun
findView
()
{
tip_bar
=
findViewById
(
R
.
id
.
tip_bar
)
tv_tip1
=
findViewById
(
R
.
id
.
tv_tip1
)
iv_avatar
=
findViewById
(
R
.
id
.
iv_avatar
)
iv_warn
=
findViewById
(
R
.
id
.
iv_warn
)
tv_tip2
=
findViewById
(
R
.
id
.
tv_tip2
)
tv_modify
=
findViewById
(
R
.
id
.
tv_modify
)
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
initDataAndEvent
()
{
findView
()
tip_bar
.
setOnLeftTextClick
{
_
,
_
->
setResult
(
RESULT_OK
)
//
刷新个人资料页
finish
()
}
mUserInfo
?:
return
mDisposables
.
add
(
UserHttpImpl
.
getInstance
()
.
getUserAuditInfo
(
BaseInfo
(
102
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
response
:
BaseAPIResponse
<
UserModifyAuditRespDto
>
->
if
(
response
.
code
!=
"200"
)
return
@subscribe
val
(
_
,
auditStatus
,
_
,
_
,
_
,
_
,
_
,
last7Day
,
modifyAfter
)
=
response
.
data
when
(
auditStatus
)
{
1
->
{
//
审核中
underReview
()
Glide
.
with
(
this
)
.
load
(
modifyAfter
)
.
into
(
iv_avatar
)
}
2
->
{
//
审核失败
tv_tip1
.
text
=
"七天内可修改一次头像"
Glide
.
with
(
this
)
.
load
(
mUserInfo
.
head
)
.
into
(
iv_avatar
)
iv_warn
.
visible
()
tv_tip2
.
text
=
SpannableString
(
"审核失败,该头像提交不规范,请修改后重新提交审核。\n如有疑问联系客服小壹"
).
also
{
it
.
setSpan
(
ForegroundColorSpan
(
resources
.
getColor
(
R
.
color
.
color_1DA1F2
)),
it
.
indexOf
(
"客服"
),
it
.
length
,
Spannable
.
SPAN_EXCLUSIVE_EXCLUSIVE
)
}
tv_tip2
.
setOnClickListener
{
//
客服
ARouter
.
getInstance
().
navigation
(
IImService
::
class
.
java
).
startKefuChat
(
this
,
""
,
0
,
0
)
}
setModifyAvatar
()
}
3
->
{
//
审核成功
||
提交审核
modifyAfter
?.
let
{
mUserInfo
.
head
=
it
Glide
.
with
(
this
)
.
load
(
it
)
.
error
(
R
.
drawable
.
platform_head_place_hold_pic
)
.
into
(
iv_avatar
)
}
findRouteService
(
IImService
::
class
.
java
).
updateUserHead
(
modifyAfter
)
//
更新用户头像到云信
EventBus
.
getDefault
().
post
(
UserChangeEvent
(
true
))
//
更新
MineFragment
if
(
last7Day
)
{
tv_tip1
.
text
=
"抱歉,七天内只能修改一次头像"
tv_modify
.
isEnabled
=
false
tv_modify
.
setBackgroundResource
(
R
.
drawable
.
bg_c3c4ca_corner_8
)
}
else
{
tv_tip1
.
text
=
"七天内可修改一次头像"
setModifyAvatar
()
}
}
}
})
}
private
fun
setModifyAvatar
()
{
tv_modify
.
setOnClickListener
{
requestPermissions
{
optionDialog
()
}
}
}
private
fun
requestPermissions
(
block
:
()
->
Unit
)
{
if
(
XXPermissions
.
isGrantedPermission
(
this
,
Permission
.
CAMERA
))
{
block
.
invoke
()
}
else
{
XXPermissions
.
with
(
this
)
.
permission
(
Permission
.
CAMERA
)
.
request
(
object
:
OnPermissionCallback
{
override
fun
onGranted
(
permissions
:
MutableList
<
String
>?,
all
:
Boolean
)
{
block
.
invoke
()
}
override
fun
onDenied
(
permissions
:
MutableList
<
String
>?,
never
:
Boolean
)
{
ToastUtil
.
toastLong
(
this
@ModifyAvatarActivity
,
"缺少使用相机和读取存储权限,无法获取图片"
)
}
})
}
}
private
fun
optionDialog
()
{
showFragment
(
AvaterDialog
().
apply
{
listener
=
{
position
,
dialog
->
val
file
=
File
(
mAvatarDir
)
if
(!
file
.
exists
())
file
.
mkdirs
()
when
(
position
)
{
0
->
{
//
相册
val
intent
=
Intent
(
Intent
.
ACTION_PICK
,
null
)
intent
.
setDataAndType
(
MediaStore
.
Images
.
Media
.
EXTERNAL_CONTENT_URI
,
"image/*"
)
this
@ModifyAvatarActivity
.
startActivityForResult
(
intent
,
ALBUM
)
}
1
->
{
//
拍照
callCamera
()
}
}
dialog
.
dismiss
()
}
},
"avater"
)
}
/** * 调用相机 */
private
fun
callCamera
()
{
val
intent
=
Intent
()
packageManager
.
getLaunchIntentForPackage
(
"com.android.camera"
)
?.
run
{
intent
.
setPackage
(
"com.android.camera"
)
}
intent
.
action
=
MediaStore
.
ACTION_IMAGE_CAPTURE
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
//
api
24
intent
.
putExtra
(
"android.intent.extras.CAMERA_FACING"
,
Camera
.
CameraInfo
.
CAMERA_FACING_FRONT
)
//
调用前置摄像头
intent
.
putExtra
(
"autofocus"
,
true
)
//
自动对焦
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
Uri
.
fromFile
(
mAvatarFile
))
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
JPEG
.
toString
())
startActivityForResult
(
intent
,
CAMERA
)
}
else
{
try
{
mAvatarFile
.
createNewFile
()
}
catch
(
e
:
IOException
)
{
e
.
printStackTrace
()
}
val
uri
:
Uri
=
FileUtils
.
getImageContentUri
(
this
,
mAvatarFile
)
intent
.
putExtra
(
"android.intent.extras.CAMERA_FACING"
,
Camera
.
CameraInfo
.
CAMERA_FACING_FRONT
)
//
调用前置摄像头
intent
.
putExtra
(
"autofocus"
,
true
)
//
自动对焦
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
uri
)
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
JPEG
.
toString
())
startActivityForResult
(
intent
,
CAMERA
)
}
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
if
(
resultCode
==
RESULT_OK
)
{
when
(
requestCode
)
{
ALBUM
->
{
//
相册
data
?.
let
{
startPhotoZoom
(
it
.
data
)
}
}
CAMERA
->
{
//
拍照
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
//
api
24
if
(
mAvatarFile
.
exists
())
{
startPhotoZoom
(
Uri
.
fromFile
(
mAvatarFile
))
}
}
else
{
startPhotoZoom
(
FileUtils
.
getImageContentUri
(
this
,
mAvatarFile
))
}
}
CROP
->
{
mUserInfo
?:
return
showProgressDialog
(
"保存中..."
)
val
path
=
FileUtils
.
getPathByUri4kitkat
(
this
,
Uri
.
fromFile
(
mAvatarFile
))
var
bitmap
=
BitmapFactory
.
decodeFile
(
path
)
bitmap
=
FileUtils
.
getZoomImage
(
bitmap
,
200.0
)
val
outPutFile
=
FileUtils
.
saveBitmap
(
bitmap
,
path
)
mDisposables
.
add
(
UserHttpImpl
.
getInstance
().
uploadFile
(
outPutFile
)
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
dismissProgressDialog
()
if
(
it
.
code
!=
"200"
)
{
ToastUtil
.
toastShort
(
it
.
msg
)
return
@subscribe
}
ToastUtil
.
toastShort
(
"头像审核中,预计24小时内审核完成"
)
underReview
()
iv_avatar
.
setImageBitmap
(
bitmap
)
}
)
}
}
}
}
/** * 审核中 */
@SuppressLint
(
"SetTextI18n"
)
private
fun
underReview
()
{
tv_tip1
.
text
=
"抱歉,七天内只能修改一次头像"
tv_tip2
.
text
=
"审核中,预计24小时内审核完成,暂无法修改。"
tv_modify
.
setBackgroundResource
(
R
.
drawable
.
bg_c3c4ca_corner_8
)
tv_modify
.
isEnabled
=
false
}
/** * 裁剪图片方法实现 */
private
fun
startPhotoZoom
(
uri
:
Uri
?)
{
val
intent
=
Intent
(
"com.android.camera.action.CROP"
).
apply
{
setDataAndType
(
uri
,
"image/*"
)
putExtra
(
"crop"
,
"true"
)
//
设置裁剪
putExtra
(
"scaleUpIfNeeded"
,
true
)
//
图片拉伸,就不会出现黑框了
//
宽高的比例
putExtra
(
"aspectX"
,
1
)
putExtra
(
"aspectY"
,
1
)
//
裁剪图片宽高
putExtra
(
"outputX"
,
200
)
putExtra
(
"outputY"
,
200
)
}
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
Uri
.
fromFile
(
mAvatarFile
))
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
PNG
.
toString
())
//
return
-
data
=
true
传递的为缩略图,小米手机默认传递大图,所以会导致
onActivityResult
调用失败
intent
.
putExtra
(
"return-data"
,
false
)
//
intent
.
putExtra
(
"noFaceDetection"
,
false
)
//
是否需要人脸识别
startActivityForResult
(
intent
,
CROP
)
}
}
\ No newline at end of file
...
...
m-user/src/main/java/com/yidianling/user/mine/ModifyInfoActivity.kt
View file @
09d2b114
...
...
@@ -6,6 +6,8 @@ import android.text.Spannable
import
android.text.SpannableString
import
android.text.TextWatcher
import
android.text.style.ForegroundColorSpan
import
android.util.TypedValue.COMPLEX_UNIT_SP
import
android.view.Gravity
import
android.view.View
import
android.view.animation.Animation
import
android.view.animation.AnimationUtils
...
...
@@ -76,6 +78,8 @@ class ModifyInfoActivity : BaseActivity() {
det_set_info
.
layoutParams
.
height
=
RxImageTool
.
dp2px
(
180f
)
det_set_info
.
hint
=
"一句话介绍下自己"
det_set_info
.
setShowDelete
(
false
)
det_set_info
.
setTextSize
(
COMPLEX_UNIT_SP
,
14f
)
det_set_info
.
gravity
=
Gravity
.
START
}
tb_title_bar
.
setOnLeftTextClick
{
_
,
_
->
setResult
(
RESULT_OK
)
// 刷新个人资料页
...
...
m-user/src/main/res/drawable-xhdpi/modify_warn.png
View replaced file @
1ae9f41c
View file @
09d2b114
2.01 KB
|
W:
|
H:
2.03 KB
|
W:
|
H:
2-up
Swipe
Onion skin
m-user/src/main/res/layout/activity_modify_avatar.xml
View file @
09d2b114
...
...
@@ -21,7 +21,7 @@
app:layout_constraintBottom_toTopOf=
"@id/iv_avatar"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:textColor=
"@color/color_
C3C4CA
"
android:textColor=
"@color/color_
62636F
"
android:layout_marginBottom=
"12dp"
android:gravity=
"center"
android:textSize=
"12sp"
...
...
@@ -29,6 +29,7 @@
<ImageView
android:id=
"@+id/iv_avatar"
android:layout_marginBottom=
"20dp"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
app:layout_constraintTop_toTopOf=
"parent"
...
...
@@ -41,8 +42,8 @@
android:layout_height=
"12dp"
app:layout_constraintEnd_toStartOf=
"@id/tv_tip2"
app:layout_constraintTop_toTopOf=
"@id/tv_tip2"
android:layout_marginEnd=
"
2
dp"
android:layout_marginTop=
"
2
dp"
android:layout_marginEnd=
"
3
dp"
android:layout_marginTop=
"
3.5
dp"
android:visibility=
"gone"
tools:visibility=
"visible"
android:src=
"@drawable/modify_warn"
/>
...
...
@@ -50,6 +51,7 @@
<TextView
android:id=
"@+id/tv_tip2"
android:layout_marginTop=
"12dp"
android:layout_marginStart=
"6dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/iv_avatar"
...
...
m-user/src/main/res/layout/activity_modify_info.xml
View file @
09d2b114
...
...
@@ -4,7 +4,7 @@
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/color_F
9F9FD
"
android:background=
"@color/color_F
7F7FA
"
android:orientation=
"vertical"
>
<com.ydl.ydlcommon.view.TitleBar
...
...
@@ -23,7 +23,7 @@
android:layout_height=
"wrap_content"
android:layout_marginStart=
"26dp"
android:layout_marginBottom=
"12dp"
android:textColor=
"@color/color_
9d9ea7
"
android:textColor=
"@color/color_
C3C4CA
"
android:textSize=
"14sp"
android:visibility=
"gone"
tools:text=
"七天内可修改一次昵称"
...
...
@@ -39,8 +39,8 @@
android:background=
"@drawable/bg_corner_8_white"
android:paddingStart=
"10dp"
android:paddingEnd=
"10dp"
android:paddingTop=
"1
5
dp"
android:gravity=
"
start
"
android:paddingTop=
"1
2
dp"
android:gravity=
"
center_vertical
"
android:textSize=
"18sp"
android:textColor=
"@color/color_1C1F28"
android:paddingBottom=
"15dp"
/>
...
...
ydl-platform/src/main/res/values/colors.xml
View file @
09d2b114
...
...
@@ -135,5 +135,6 @@
<color
name=
"color_2E2E30"
>
#2E2E30
</color>
<color
name=
"color_191919"
>
#191919
</color>
<color
name=
"color_E5E5E5"
>
#E5E5E5
</color>
<color
name=
"color_F9F9FD"
>
#F9F9FD
</color>
<color
name=
"color_F7F7FA"
>
#F7F7FA
</color>
<color
name=
"color_62636F"
>
#62636F
</color>
</resources>
ydl-webview/src/main/res/drawable-xhdpi/platform_ic_pop_feed.png
View replaced file @
1ae9f41c
View file @
09d2b114
2.3 KB
|
W:
|
H:
2.22 KB
|
W:
|
H:
2-up
Swipe
Onion skin
ydl-webview/src/main/res/layout/web_ui_new_more.xml
View file @
09d2b114
...
...
@@ -3,7 +3,7 @@
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"145dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"
55
dp"
android:layout_marginTop=
"
44
dp"
android:layout_marginEnd=
"10dp"
android:background=
"@drawable/bg_corner_8_white"
android:elevation=
"4dp"
...
...
@@ -141,9 +141,9 @@
android:orientation=
"horizontal"
>
<ImageView
android:layout_width=
"2
4
dp"
android:layout_height=
"2
4
dp"
android:layout_marginEnd=
"1
7
dp"
android:layout_width=
"2
2
dp"
android:layout_height=
"2
2
dp"
android:layout_marginEnd=
"1
9
dp"
android:src=
"@drawable/platform_ic_pop_feed"
/>
<TextView
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment