Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
PDF Viewer Scanner White ago
Project
Project
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
kuxulei
PDF Viewer Scanner White ago
Commits
d5c912fb
Commit
d5c912fb
authored
Oct 21, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
306a172a
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
237 additions
and
58 deletions
+237
-58
MainActivity.kt
...va/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
+7
-1
ToolFragment.kt
...va/com/base/pdfviewerscannerwhite/ui/main/ToolFragment.kt
+82
-41
SplashActivity.kt
...om/base/pdfviewerscannerwhite/ui/splash/SplashActivity.kt
+37
-0
AnimationUtils.java
.../com/base/pdfviewerscannerwhite/utils/AnimationUtils.java
+65
-0
activity_splash_2.xml
app/src/main/res/layout/activity_splash_2.xml
+46
-16
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
View file @
d5c912fb
...
@@ -34,6 +34,7 @@ import com.base.pdfviewerscannerwhite.databinding.ActivityMainBinding
...
@@ -34,6 +34,7 @@ import com.base.pdfviewerscannerwhite.databinding.ActivityMainBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.MyApplication
import
com.base.pdfviewerscannerwhite.helper.MyApplication
import
com.base.pdfviewerscannerwhite.ui.appprocess.AppProcessActivity
import
com.base.pdfviewerscannerwhite.ui.appprocess.AppProcessActivity
import
com.base.pdfviewerscannerwhite.ui.appprocess.AppProcessLoadingActivity
import
com.base.pdfviewerscannerwhite.ui.cleanjunk.ScanJunkActivity
import
com.base.pdfviewerscannerwhite.ui.cleanjunk.ScanJunkActivity
import
com.base.pdfviewerscannerwhite.ui.document.excel.ExcelActivity
import
com.base.pdfviewerscannerwhite.ui.document.excel.ExcelActivity
import
com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity
import
com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity
...
@@ -57,6 +58,8 @@ import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkNotificationPer
...
@@ -57,6 +58,8 @@ import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkNotificationPer
import
com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import
com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import
com.base.pdfviewerscannerwhite.utils.ShortcutUtils.addDeskShortCut
import
com.base.pdfviewerscannerwhite.utils.ShortcutUtils.addDeskShortCut
import
com.base.pdfviewerscannerwhite.utils.updateMediaStore
import
com.base.pdfviewerscannerwhite.utils.updateMediaStore
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
java.io.File
import
java.io.File
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>(),
MainView
{
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>(),
MainView
{
...
@@ -104,6 +107,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -104,6 +107,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
}
}
}
}
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
ToolFragment
.
initAppVidePhotoMusicData
(
this
@MainActivity
)
}
}
}
...
@@ -143,7 +149,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...
@@ -143,7 +149,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
}
}
if
(
actionId
==
NOTIFICATION_ACTION_APP_PROCESS
)
{
if
(
actionId
==
NOTIFICATION_ACTION_APP_PROCESS
)
{
startActivity
(
Intent
(
this
,
AppProcessActivity
::
class
.
java
))
startActivity
(
Intent
(
this
,
AppProcess
Loading
Activity
::
class
.
java
))
return
return
}
}
if
(
actionId
==
NOTIFICATION_ACTION_CLEAN_JUNK
)
{
if
(
actionId
==
NOTIFICATION_ACTION_CLEAN_JUNK
)
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/ToolFragment.kt
View file @
d5c912fb
...
@@ -2,6 +2,7 @@ package com.base.pdfviewerscannerwhite.ui.main
...
@@ -2,6 +2,7 @@ package com.base.pdfviewerscannerwhite.ui.main
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.app.usage.StorageStatsManager
import
android.app.usage.StorageStatsManager
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.net.Uri
import
android.net.Uri
import
android.os.Build
import
android.os.Build
...
@@ -28,6 +29,7 @@ import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
...
@@ -28,6 +29,7 @@ import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
import
com.base.pdfviewerscannerwhite.ui.view.ProgressBean
import
com.base.pdfviewerscannerwhite.ui.view.ProgressBean
import
com.base.pdfviewerscannerwhite.ui.weather.WeatherInterface
import
com.base.pdfviewerscannerwhite.ui.weather.WeatherInterface
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import
com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import
com.base.pdfviewerscannerwhite.utils.getMediaAudioCountSize
import
com.base.pdfviewerscannerwhite.utils.getMediaAudioCountSize
import
com.base.pdfviewerscannerwhite.utils.getMediaPhotoCountSize
import
com.base.pdfviewerscannerwhite.utils.getMediaPhotoCountSize
...
@@ -45,6 +47,7 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
...
@@ -45,6 +47,7 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
FragmentToolBinding
.
inflate
(
layoutInflater
)
FragmentToolBinding
.
inflate
(
layoutInflater
)
}
}
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
override
fun
setView
()
{
override
fun
setView
()
{
val
bean
=
WeatherUtils
.
getWeatherEntity
()
?.
list
?.
get
(
0
)
val
bean
=
WeatherUtils
.
getWeatherEntity
()
?.
list
?.
get
(
0
)
...
@@ -143,15 +146,54 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
...
@@ -143,15 +146,54 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
}
}
}
}
var
usedBytes
:
Long
=
0
var
totalBytes
:
Long
=
0
private
val
progressList
=
arrayListOf
<
ProgressBean
>()
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
private
fun
refreshData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
fun
refreshData
()
{
if
(
preProgressList
.
isNullOrEmpty
())
{
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
LogEx
.
logDebug
(
TAG
,
"now load data"
)
initAppVidePhotoMusicData
(
requireContext
(),
{
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
binding
.
tvUsedStorage
.
text
=
usedBytes
.
toFormatSize
()
binding
.
tvTotalStorage
.
text
=
" / ${totalBytes.toFormatSize()}"
binding
.
tvPercent
.
text
=
"${usedBytes * 100 / totalBytes}"
}
},
{
launch
(
Dispatchers
.
Main
)
{
binding
.
colorProgress
.
animateProgress
(
progressList
)
}
})
}
}
else
{
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
LogEx
.
logDebug
(
TAG
,
"preload data"
)
binding
.
tvUsedStorage
.
text
=
usedBytes
.
toFormatSize
()
binding
.
tvTotalStorage
.
text
=
" / ${totalBytes.toFormatSize()}"
binding
.
tvPercent
.
text
=
"${usedBytes * 100 / totalBytes}"
binding
.
colorProgress
.
animateProgress
(
preProgressList
?:
arrayListOf
())
preProgressList
=
null
}
}
}
companion
object
{
private
var
preProgressList
:
ArrayList
<
ProgressBean
>?
=
arrayListOf
()
private
val
progressList
=
arrayListOf
<
ProgressBean
>()
private
var
usedBytes
:
Long
=
0
private
var
totalBytes
:
Long
=
0
fun
initAppVidePhotoMusicData
(
context
:
Context
,
vararg
uiAction
:
()
->
Unit
)
{
progressList
.
clear
()
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
val
storageStatsManager
=
requireContext
().
getSystemService
(
AppCompatActivity
.
STORAGE_STATS_SERVICE
)
as
StorageStatsManager
val
storageStatsManager
=
context
.
getSystemService
(
AppCompatActivity
.
STORAGE_STATS_SERVICE
)
as
StorageStatsManager
totalBytes
=
storageStatsManager
.
getTotalBytes
(
StorageManager
.
UUID_DEFAULT
)
totalBytes
=
storageStatsManager
.
getTotalBytes
(
StorageManager
.
UUID_DEFAULT
)
usedBytes
=
totalBytes
-
storageStatsManager
.
getFreeBytes
(
StorageManager
.
UUID_DEFAULT
)
usedBytes
=
totalBytes
-
storageStatsManager
.
getFreeBytes
(
StorageManager
.
UUID_DEFAULT
)
}
else
{
}
else
{
...
@@ -162,15 +204,12 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
...
@@ -162,15 +204,12 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
totalBytes
=
(
stat1
.
totalBytes
+
stat2
.
totalBytes
)
totalBytes
=
(
stat1
.
totalBytes
+
stat2
.
totalBytes
)
usedBytes
=
((
stat1
.
totalBytes
+
stat2
.
totalBytes
)
-
(
stat1
.
availableBytes
+
stat2
.
availableBytes
))
usedBytes
=
((
stat1
.
totalBytes
+
stat2
.
totalBytes
)
-
(
stat1
.
availableBytes
+
stat2
.
availableBytes
))
}
}
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
binding
.
tvUsedStorage
.
text
=
usedBytes
.
toFormatSize
()
binding
.
tvTotalStorage
.
text
=
" / ${totalBytes.toFormatSize()}"
binding
.
tvPercent
.
text
=
"${usedBytes * 100 / totalBytes}"
}
val
videoPair
=
requireContext
().
getMediaVideoCountSize
()
runCatching
{
uiAction
[
0
].
invoke
()
}
val
picturePair
=
requireContext
().
getMediaPhotoCountSize
()
val
audioPair
=
requireContext
().
getMediaAudioCountSize
()
val
videoPair
=
context
.
getMediaVideoCountSize
()
val
picturePair
=
context
.
getMediaPhotoCountSize
()
val
audioPair
=
context
.
getMediaAudioCountSize
()
val
totalAngle
=
(
usedBytes
.
toFloat
()
/
totalBytes
.
toFloat
())
*
360f
val
totalAngle
=
(
usedBytes
.
toFloat
()
/
totalBytes
.
toFloat
())
*
360f
val
appSize
=
usedBytes
-
videoPair
.
second
-
picturePair
.
second
-
audioPair
.
second
val
appSize
=
usedBytes
-
videoPair
.
second
-
picturePair
.
second
-
audioPair
.
second
...
@@ -193,8 +232,10 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
...
@@ -193,8 +232,10 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
progressList
.
add
(
audioBean
)
progressList
.
add
(
audioBean
)
progressList
.
reverse
()
progressList
.
reverse
()
launch
(
Dispatchers
.
Main
)
{
if
(
preProgressList
!=
null
)
{
binding
.
colorProgress
.
animateProgress
(
progressList
)
preProgressList
?.
addAll
(
progressList
)
}
runCatching
{
uiAction
[
1
].
invoke
()
}
}
}
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/splash/SplashActivity.kt
View file @
d5c912fb
...
@@ -19,16 +19,20 @@ import com.base.pdfviewerscannerwhite.fcm.NotificationHoverUtils
...
@@ -19,16 +19,20 @@ import com.base.pdfviewerscannerwhite.fcm.NotificationHoverUtils
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.EventUtils
import
com.base.pdfviewerscannerwhite.helper.EventUtils
import
com.base.pdfviewerscannerwhite.helper.MyApplication
import
com.base.pdfviewerscannerwhite.helper.MyApplication
import
com.base.pdfviewerscannerwhite.helper.WeatherUtils
import
com.base.pdfviewerscannerwhite.service.StayNotificationService.Companion.startStayNotification
import
com.base.pdfviewerscannerwhite.service.StayNotificationService.Companion.startStayNotification
import
com.base.pdfviewerscannerwhite.ui.main.MainActivity
import
com.base.pdfviewerscannerwhite.ui.main.MainActivity
import
com.base.pdfviewerscannerwhite.ui.permission.PermissionActivity
import
com.base.pdfviewerscannerwhite.ui.permission.PermissionActivity
import
com.base.pdfviewerscannerwhite.ui.set.SetLanguageActivity
import
com.base.pdfviewerscannerwhite.ui.set.SetLanguageActivity
import
com.base.pdfviewerscannerwhite.utils.AnimationUtils
import
com.base.pdfviewerscannerwhite.utils.BarUtils
import
com.base.pdfviewerscannerwhite.utils.BarUtils
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.base.pdfviewerscannerwhite.utils.UmpUtils
import
com.base.pdfviewerscannerwhite.utils.UmpUtils
import
com.base.pdfviewerscannerwhite.utils.UmpUtils.requestUMP
import
com.base.pdfviewerscannerwhite.utils.UmpUtils.requestUMP
import
com.base.pdfviewerscannerwhite.utils.UmpUtils.umpCalled
import
com.base.pdfviewerscannerwhite.utils.UmpUtils.umpCalled
import
com.base.pdfviewerscannerwhite.utils.UmpUtils.umpCanAd
import
com.base.pdfviewerscannerwhite.utils.UmpUtils.umpCanAd
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
java.util.Calendar
import
java.util.Calendar
import
java.util.Locale
import
java.util.Locale
import
java.util.concurrent.atomic.AtomicBoolean
import
java.util.concurrent.atomic.AtomicBoolean
...
@@ -108,6 +112,8 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
...
@@ -108,6 +112,8 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
if
(
BuildConfig
.
DEBUG
)
{
if
(
BuildConfig
.
DEBUG
)
{
// toast("isHotLaunch=$isHotLaunch")
// toast("isHotLaunch=$isHotLaunch")
}
}
startWeatherAnimation
()
ifAgreePrivacy
=
true
ifAgreePrivacy
=
true
if
(
ifAgreePrivacy
)
{
if
(
ifAgreePrivacy
)
{
if
(
isHotLaunch
)
{
if
(
isHotLaunch
)
{
...
@@ -239,4 +245,35 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
...
@@ -239,4 +245,35 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
}
}
@SuppressLint
(
"SetTextI18n"
)
private
fun
startWeatherAnimation
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
if
(!
WeatherUtils
.
hasWeatherDataToday
())
{
WeatherUtils
.
getWeatherData
()
}
val
weatherCityBean
=
WeatherUtils
.
getWeatherEntity
()
val
weather
=
weatherCityBean
?.
list
?.
random
()
LogEx
.
logDebug
(
TAG
,
"weather=$weather"
)
if
(
weather
!=
null
)
{
val
icon
=
when
(
weather
.
iconDay
)
{
"Sunny day"
->
R
.
mipmap
.
d_qing
"Cloudy day"
->
R
.
mipmap
.
d_yin
"Rainy day"
->
R
.
mipmap
.
d_dayu
"Snowy day"
->
R
.
mipmap
.
d_xiaxue
"Greasy day"
->
R
.
mipmap
.
d_wumaishachengbao
"Unknown"
->
R
.
mipmap
.
d_qing
else
->
R
.
mipmap
.
d_qing
}
binding
.
ivWeather
.
setImageResource
(
icon
)
binding
.
tvWendu
.
text
=
weather
.
tempMin
+
"℃"
+
" / "
+
weather
.
tempMax
+
"℃"
launch
(
Dispatchers
.
Main
)
{
AnimationUtils
.
startAlphaAnimation
(
binding
.
ivWeather
,
400
,
null
)
{
AnimationUtils
.
startAlphaAnimation
(
binding
.
tvWendu
,
400
,
null
)
{
}
}
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/utils/AnimationUtils.java
0 → 100644
View file @
d5c912fb
package
com
.
base
.
pdfviewerscannerwhite
.
utils
;
import
android.animation.Animator
;
import
android.animation.AnimatorListenerAdapter
;
import
android.animation.ObjectAnimator
;
import
android.view.View
;
public
class
AnimationUtils
{
/**
* 开始透明度渐变动画,并设置动画结束时的回调。
*
* @param view 要应用动画的视图。
* @param duration 动画持续时间(毫秒)。
* @param endCallback 动画结束时调用的回调接口。
*/
public
static
void
startAlphaAnimation
(
final
View
view
,
long
duration
,
final
AnimationStartCallback
startCallback
,
final
AnimationEndCallback
endCallback
)
{
// 确保视图初始透明度为0
view
.
setAlpha
(
0
f
);
// 创建透明度从0到1的动画
ObjectAnimator
alphaAnimator
=
ObjectAnimator
.
ofFloat
(
view
,
"alpha"
,
0
f
,
1
f
);
alphaAnimator
.
setDuration
(
duration
);
// 设置动画监听器,以便在动画结束时调用回调
alphaAnimator
.
addListener
(
new
AnimatorListenerAdapter
()
{
@Override
public
void
onAnimationStart
(
Animator
animation
)
{
super
.
onAnimationStart
(
animation
);
if
(
startCallback
!=
null
)
{
startCallback
.
onAnimationStart
();
}
}
@Override
public
void
onAnimationEnd
(
Animator
animation
)
{
super
.
onAnimationEnd
(
animation
);
// 调用回调接口的onAnimationEnd方法
if
(
endCallback
!=
null
)
{
endCallback
.
onAnimationEnd
();
}
}
});
// 启动动画
alphaAnimator
.
start
();
}
/**
* 动画结束时的回调接口。
*/
public
interface
AnimationEndCallback
{
void
onAnimationEnd
();
}
/**
* 动画结束时的回调接口。
*/
public
interface
AnimationStartCallback
{
void
onAnimationStart
();
}
}
\ No newline at end of file
app/src/main/res/layout/activity_splash_2.xml
View file @
d5c912fb
...
@@ -9,38 +9,42 @@
...
@@ -9,38 +9,42 @@
tools:context=
".ui.splash.SplashActivity"
>
tools:context=
".ui.splash.SplashActivity"
>
<ImageView
<ImageView
android:id=
"@+id/iv_logo"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"25dp"
android:layout_marginStart=
"25dp"
android:layout_marginTop=
"82dp"
android:layout_marginTop=
"82dp"
android:src=
"@mipmap/qdylogo"
android:src=
"@mipmap/qdylogo"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<TextView
android:id=
"@+id/tv_month_day"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"56dp"
android:textColor=
"#16151A"
android:textSize=
"25sp"
app:layout_constraintStart_toStartOf=
"@id/iv_logo"
app:layout_constraintTop_toBottomOf=
"@id/iv_logo"
tools:text=
"October 09"
/>
<TextView
<TextView
android:id=
"@+id/tv_xingqi"
android:id=
"@+id/tv_xingqi"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"28dp"
android:layout_marginStart=
"28dp"
android:layout_marginTop=
"1
80
dp"
android:layout_marginTop=
"1
2
dp"
android:textColor=
"#7D7D7F"
android:textColor=
"#7D7D7F"
android:textSize=
"20sp"
android:textSize=
"20sp"
android:textStyle=
"bold"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_to
TopOf=
"parent
"
app:layout_constraintTop_to
BottomOf=
"@id/tv_month_day
"
tools:text=
"Wednesday"
/>
tools:text=
"Wednesday"
/>
<TextView
android:id=
"@+id/tv_month_day"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"31dp"
android:textColor=
"#16151A"
android:textSize=
"45sp"
app:layout_constraintStart_toStartOf=
"@id/tv_xingqi"
app:layout_constraintTop_toBottomOf=
"@id/tv_xingqi"
tools:text=
"October 09"
/>
<View
<View
android:layout_width=
"48dp"
android:layout_width=
"48dp"
android:layout_height=
"1dp"
android:layout_height=
"1dp"
...
@@ -62,7 +66,31 @@
...
@@ -62,7 +66,31 @@
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.45"
/>
app:layout_constraintVertical_bias=
"0.55"
/>
<ImageView
android:id=
"@+id/iv_weather"
android:layout_width=
"90dp"
android:layout_height=
"90dp"
android:layout_marginBottom=
"8dp"
android:alpha=
"0"
android:src=
"@mipmap/duoyun"
app:layout_constraintBottom_toTopOf=
"@id/tv_wendu"
app:layout_constraintEnd_toEndOf=
"@id/tv_app_name"
tools:ignore=
"ContentDescription"
/>
<TextView
android:id=
"@+id/tv_wendu"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"35dp"
android:alpha=
"0"
android:textColor=
"#16151A"
android:textSize=
"45sp"
app:layout_constraintBottom_toTopOf=
"@id/tv_app_name"
app:layout_constraintEnd_toEndOf=
"@id/tv_app_name"
tools:text=
"13℃/20℃"
/>
<ImageView
<ImageView
android:id=
"@+id/iv_document"
android:id=
"@+id/iv_document"
...
@@ -72,7 +100,9 @@
...
@@ -72,7 +100,9 @@
android:src=
"@mipmap/document_all"
android:src=
"@mipmap/document_all"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_app_name"
/>
app:layout_constraintTop_toBottomOf=
"@id/tv_app_name"
app:layout_constraintVertical_bias=
"0.45"
tools:ignore=
"ContentDescription"
/>
<FrameLayout
<FrameLayout
...
...
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