Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
B
Browser White
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
wanglei
Browser White
Commits
45731203
Commit
45731203
authored
Aug 08, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
520009b7
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
278 additions
and
29 deletions
+278
-29
MediaBrowserActivity.kt
...serwhite/ui/activity/mediabrowser/MediaBrowserActivity.kt
+36
-3
MediaAdapter.kt
...ain/java/com/base/browserwhite/ui/adapter/MediaAdapter.kt
+60
-1
FileFragment.kt
...in/java/com/base/browserwhite/ui/fragment/FileFragment.kt
+47
-24
MediaStoreUtils.kt
.../main/java/com/base/browserwhite/utils/MediaStoreUtils.kt
+35
-1
fragment_file.xml
app/src/main/res/layout/fragment_file.xml
+3
-0
item_media_list.xml
app/src/main/res/layout/item_media_list.xml
+97
-0
z_music.png
app/src/main/res/mipmap-xxhdpi/z_music.png
+0
-0
z_zip.png
app/src/main/res/mipmap-xxhdpi/z_zip.png
+0
-0
No files found.
app/src/main/java/com/base/browserwhite/ui/activity/mediabrowser/MediaBrowserActivity.kt
View file @
45731203
...
@@ -6,10 +6,16 @@ import androidx.core.view.updatePadding
...
@@ -6,10 +6,16 @@ import androidx.core.view.updatePadding
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
androidx.recyclerview.widget.GridLayoutManager
import
androidx.recyclerview.widget.GridLayoutManager
import
androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup
import
androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.databinding.ActivityMediaBrowserBinding
import
com.base.browserwhite.databinding.ActivityMediaBrowserBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.adapter.MediaAdapter
import
com.base.browserwhite.ui.adapter.MediaAdapter
import
com.base.browserwhite.ui.fragment.FileFragment
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaAudio
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaAudioSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaFile
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaPhoto
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaPhoto
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaVideo
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaVideo
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
...
@@ -46,9 +52,11 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
...
@@ -46,9 +52,11 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
}
}
}
}
"Document"
->
{
"Document"
,
"APK"
,
"Music"
,
"Zip"
->
{
adapter
=
MediaAdapter
(
0
)
adapter
=
MediaAdapter
(
2
,
moreAction
=
{
view
,
bean
->
FileFragment
.
moreAction
(
this
,
view
,
bean
,
adapter
)
})
binding
.
rv
.
layoutManager
=
LinearLayoutManager
(
this
)
}
}
}
}
...
@@ -71,6 +79,31 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
...
@@ -71,6 +79,31 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
val
mediaList
=
when
(
tittle
)
{
val
mediaList
=
when
(
tittle
)
{
"Picture"
->
getMediaPhoto
()
"Picture"
->
getMediaPhoto
()
"Video"
->
getMediaVideo
()
"Video"
->
getMediaVideo
()
"Document"
->
getMediaFile
(
arrayOf
(
ConstObject
.
MIME_TYPE_PDF
,
ConstObject
.
MIME_TYPE_DOC
,
ConstObject
.
MIME_TYPE_DOCX
,
ConstObject
.
MIME_TYPE_XLS
,
ConstObject
.
MIME_TYPE_XLSX
,
ConstObject
.
MIME_TYPE_PPT
,
ConstObject
.
MIME_TYPE_PPTX
,
)
)
"APK"
->
getMediaFile
(
arrayOf
(
ConstObject
.
MIME_TYPE_APK
)
)
"Music"
->
getMediaAudio
()
"Zip"
->
getMediaFile
(
arrayOf
(
ConstObject
.
MIME_TYPE_ZIP
)
)
else
->
arrayListOf
()
else
->
arrayListOf
()
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/adapter/MediaAdapter.kt
View file @
45731203
...
@@ -14,7 +14,9 @@ import com.base.browserwhite.bean.ConstObject.MIME_TYPE_PPT
...
@@ -14,7 +14,9 @@ import com.base.browserwhite.bean.ConstObject.MIME_TYPE_PPT
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_PPTX
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_PPTX
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_XLS
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_XLS
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_XLSX
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_XLSX
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_ZIP
import
com.base.browserwhite.bean.MediaBean
import
com.base.browserwhite.bean.MediaBean
import
com.base.browserwhite.databinding.ItemMediaListBinding
import
com.base.browserwhite.databinding.ItemMediaPictureVideoBinding
import
com.base.browserwhite.databinding.ItemMediaPictureVideoBinding
import
com.base.browserwhite.databinding.ItemMediaRecentBinding
import
com.base.browserwhite.databinding.ItemMediaRecentBinding
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
...
@@ -40,6 +42,9 @@ class MediaAdapter(
...
@@ -40,6 +42,9 @@ class MediaAdapter(
if
(
uiType
==
1
)
{
if
(
uiType
==
1
)
{
return
MediaViewHolder
(
R
.
layout
.
item_media_picture_video
.
inflate
(
parent
))
return
MediaViewHolder
(
R
.
layout
.
item_media_picture_video
.
inflate
(
parent
))
}
}
if
(
uiType
==
2
)
{
return
MediaViewHolder
(
R
.
layout
.
item_media_list
.
inflate
(
parent
))
}
return
MediaViewHolder
(
R
.
layout
.
item_media_recent
.
inflate
(
parent
))
return
MediaViewHolder
(
R
.
layout
.
item_media_recent
.
inflate
(
parent
))
}
}
...
@@ -67,7 +72,7 @@ class MediaAdapter(
...
@@ -67,7 +72,7 @@ class MediaAdapter(
}
}
bean
.
mimeType
.
contains
(
"audio"
)
->
{
bean
.
mimeType
.
contains
(
"audio"
)
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
z_music
)
}
}
bean
.
mimeType
==
MIME_TYPE_PDF
->
{
bean
.
mimeType
==
MIME_TYPE_PDF
->
{
...
@@ -89,6 +94,10 @@ class MediaAdapter(
...
@@ -89,6 +94,10 @@ class MediaAdapter(
bean
.
mimeType
==
MIME_TYPE_APK
->
{
bean
.
mimeType
==
MIME_TYPE_APK
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_apk
)
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_apk
)
}
}
bean
.
mimeType
==
MIME_TYPE_ZIP
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
z_zip
)
}
}
}
val
file
=
File
(
bean
.
path
)
val
file
=
File
(
bean
.
path
)
...
@@ -110,6 +119,56 @@ class MediaAdapter(
...
@@ -110,6 +119,56 @@ class MediaAdapter(
if
(
bean
.
mimeType
.
contains
(
"video"
))
{
if
(
bean
.
mimeType
.
contains
(
"video"
))
{
binding
.
ivShipin
.
visibility
=
View
.
VISIBLE
binding
.
ivShipin
.
visibility
=
View
.
VISIBLE
}
}
}
else
if
(
uiType
==
2
)
{
val
binding
=
ItemMediaListBinding
.
bind
(
holder
.
itemView
)
when
{
bean
.
mimeType
.
contains
(
"image"
)
->
{
Glide
.
with
(
context
).
load
(
bean
.
path
).
into
(
binding
.
iv
)
}
bean
.
mimeType
.
contains
(
"video"
)
->
{
Glide
.
with
(
context
).
load
(
bean
.
path
).
into
(
binding
.
iv
)
binding
.
ivShipin
.
visibility
=
View
.
VISIBLE
}
bean
.
mimeType
.
contains
(
"audio"
)
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
z_music
)
}
bean
.
mimeType
==
MIME_TYPE_PDF
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
f_pdf
)
}
bean
.
mimeType
==
MIME_TYPE_DOC
||
bean
.
mimeType
==
MIME_TYPE_DOCX
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_word
)
}
bean
.
mimeType
==
MIME_TYPE_XLS
||
bean
.
mimeType
==
MIME_TYPE_XLSX
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_xls
)
}
bean
.
mimeType
==
MIME_TYPE_PPT
||
bean
.
mimeType
==
MIME_TYPE_PPTX
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_ppt
)
}
bean
.
mimeType
==
MIME_TYPE_APK
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_apk
)
}
bean
.
mimeType
==
MIME_TYPE_ZIP
->
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
z_zip
)
}
}
val
file
=
File
(
bean
.
path
)
binding
.
tvName
.
text
=
file
.
name
binding
.
tvSize
.
text
=
file
.
length
().
toFormatSize
()
binding
.
flMore
.
setOnClickListener
{
moreAction
?.
invoke
(
it
,
bean
)
}
binding
.
root
.
setOnClickListener
{
clickAction
?.
invoke
(
bean
)
}
}
}
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/FileFragment.kt
View file @
45731203
...
@@ -2,6 +2,7 @@ package com.base.browserwhite.ui.fragment
...
@@ -2,6 +2,7 @@ package com.base.browserwhite.ui.fragment
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.os.Build
import
android.os.Build
import
android.os.Environment
import
android.os.Environment
...
@@ -11,6 +12,7 @@ import android.view.View
...
@@ -11,6 +12,7 @@ import android.view.View
import
android.widget.Toast
import
android.widget.Toast
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.bean.MediaBean
import
com.base.browserwhite.databinding.FragmentFileBinding
import
com.base.browserwhite.databinding.FragmentFileBinding
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import
com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
...
@@ -52,15 +54,26 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -52,15 +54,26 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
},
},
moreAction
=
{
view
,
bean
->
moreAction
=
{
view
,
bean
->
requireContext
().
showMediaMoreDialog
(
view
,
moreAction
(
requireContext
(),
view
,
bean
,
adapter
)
})
binding
.
rvRecent
.
adapter
=
adapter
if
(
requireContext
().
checkStorePermission
())
{
initData
()
}
}
companion
object
{
@SuppressLint
(
"QueryPermissionsNeeded"
)
fun
moreAction
(
context
:
Context
,
archView
:
View
,
bean
:
MediaBean
,
adapter
:
MediaAdapter
)
{
context
.
showMediaMoreDialog
(
archView
,
deleteAction
=
{
deleteAction
=
{
requireContext
()
.
showDeleteTipDialog
{
context
.
showDeleteTipDialog
{
runCatching
{
File
(
bean
.
path
).
delete
()
}
runCatching
{
File
(
bean
.
path
).
delete
()
}
adapter
.
removeData
(
bean
)
adapter
.
removeData
(
bean
)
}
}
},
},
shareAction
=
{
shareAction
=
{
LogEx
.
logDebug
(
TAG
,
"uri=${bean.uri}"
)
val
shareIntent
=
Intent
().
apply
{
val
shareIntent
=
Intent
().
apply
{
action
=
Intent
.
ACTION_SEND
action
=
Intent
.
ACTION_SEND
type
=
bean
.
mimeType
type
=
bean
.
mimeType
...
@@ -70,17 +83,12 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -70,17 +83,12 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
}
}
val
chooserIntent
=
Intent
.
createChooser
(
shareIntent
,
"Share File"
)
val
chooserIntent
=
Intent
.
createChooser
(
shareIntent
,
"Share File"
)
if
(
shareIntent
.
resolveActivity
(
requireContext
()
.
packageManager
)
!=
null
)
{
if
(
shareIntent
.
resolveActivity
(
context
.
packageManager
)
!=
null
)
{
startActivity
(
chooserIntent
)
context
.
startActivity
(
chooserIntent
)
}
else
{
}
else
{
Toast
.
makeText
(
requireContext
()
,
"no app can share the file"
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
makeText
(
context
,
"no app can share the file"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
})
})
})
binding
.
rvRecent
.
adapter
=
adapter
if
(
requireContext
().
checkStorePermission
())
{
initData
()
}
}
}
}
...
@@ -110,6 +118,21 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -110,6 +118,21 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
putExtra
(
"tittle"
,
"Document"
)
putExtra
(
"tittle"
,
"Document"
)
})
})
}
}
binding
.
llApk
.
setOnClickListener
{
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
MediaBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"tittle"
,
"APK"
)
})
}
binding
.
llMusic
.
setOnClickListener
{
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
MediaBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"tittle"
,
"Music"
)
})
}
binding
.
llZip
.
setOnClickListener
{
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
MediaBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"tittle"
,
"Zip"
)
})
}
}
}
...
...
app/src/main/java/com/base/browserwhite/utils/MediaStoreUtils.kt
View file @
45731203
...
@@ -5,6 +5,7 @@ import android.database.Cursor
...
@@ -5,6 +5,7 @@ import android.database.Cursor
import
android.net.Uri
import
android.net.Uri
import
android.provider.MediaStore
import
android.provider.MediaStore
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_APK
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_APK
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_AUDIO
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_DOC
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_DOC
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_DOCX
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_DOCX
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_IMAGE
import
com.base.browserwhite.bean.ConstObject.MIME_TYPE_IMAGE
...
@@ -38,7 +39,7 @@ object MediaStoreUtils {
...
@@ -38,7 +39,7 @@ object MediaStoreUtils {
val
mimeTypeSelectionArgs
=
selectionArgs
?:
arrayOf
(
val
mimeTypeSelectionArgs
=
selectionArgs
?:
arrayOf
(
MIME_TYPE_IMAGE
,
MIME_TYPE_IMAGE
,
MIME_TYPE_VIDEO
,
MIME_TYPE_VIDEO
,
//
MIME_TYPE_AUDIO,
MIME_TYPE_AUDIO
,
MIME_TYPE_PDF
,
MIME_TYPE_PDF
,
MIME_TYPE_DOC
,
MIME_TYPE_DOC
,
MIME_TYPE_DOCX
,
MIME_TYPE_DOCX
,
...
@@ -188,6 +189,39 @@ object MediaStoreUtils {
...
@@ -188,6 +189,39 @@ object MediaStoreUtils {
return
list
return
list
}
}
fun
Context
.
getMediaAudio
():
List
<
MediaBean
>
{
val
list
=
arrayListOf
<
MediaBean
>()
val
contentResolver
=
this
.
contentResolver
// 定义查询的Uri和列
val
baseUri
=
MediaStore
.
Audio
.
Media
.
EXTERNAL_CONTENT_URI
val
projection
=
arrayOf
(
MediaStore
.
Audio
.
Media
.
_ID
,
MediaStore
.
Audio
.
Media
.
DATA
,
MediaStore
.
Audio
.
Media
.
MIME_TYPE
)
// 执行查询
var
cursor
:
Cursor
?
=
null
try
{
cursor
=
contentResolver
.
query
(
baseUri
,
projection
,
null
,
null
,
null
)
if
(
cursor
!=
null
)
{
while
(
cursor
.
moveToNext
())
{
val
id
=
cursor
.
getInt
(
cursor
.
getColumnIndexOrThrow
(
MediaStore
.
Video
.
Media
.
_ID
))
val
uri
=
Uri
.
withAppendedPath
(
baseUri
,
id
.
toString
())
val
path
=
cursor
.
getString
(
cursor
.
getColumnIndexOrThrow
(
MediaStore
.
Video
.
Media
.
DATA
))
val
mimeType
=
cursor
.
getString
(
cursor
.
getColumnIndexOrThrow
(
MediaStore
.
Video
.
Media
.
MIME_TYPE
))
list
.
add
(
MediaBean
(
path
=
path
,
uri
=
uri
,
mimeType
=
mimeType
))
}
}
}
catch
(
e
:
Exception
)
{
}
finally
{
cursor
?.
close
()
}
return
list
}
fun
Context
.
getMediaVideoSize
():
Int
{
fun
Context
.
getMediaVideoSize
():
Int
{
var
count
=
0
var
count
=
0
...
...
app/src/main/res/layout/fragment_file.xml
View file @
45731203
...
@@ -401,6 +401,7 @@
...
@@ -401,6 +401,7 @@
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_apk"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -437,6 +438,7 @@
...
@@ -437,6 +438,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_music"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -473,6 +475,7 @@
...
@@ -473,6 +475,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_zip"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
...
app/src/main/res/layout/item_media_list.xml
0 → 100644
View file @
45731203
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"8dp"
android:orientation=
"horizontal"
>
<androidx.cardview.widget.CardView
android:id=
"@+id/card"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:layout_marginVertical=
"4dp"
android:layout_marginStart=
"8dp"
app:cardElevation=
"0dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/iv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_shipin"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@mipmap/h_shipin"
android:visibility=
"gone"
tools:ignore=
"ContentDescription"
/>
</androidx.cardview.widget.CardView>
<LinearLayout
android:id=
"@+id/ll"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"5dp"
android:orientation=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/fl_more"
app:layout_constraintStart_toEndOf=
"@id/card"
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
android:id=
"@+id/tv_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:ellipsize=
"end"
android:singleLine=
"true"
android:text=
"Screenshot 20240805 103…"
android:textColor=
"#010101"
android:textSize=
"17sp"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_size"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"5dp"
android:text=
"358KB"
android:textColor=
"#6B6B6D"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
<FrameLayout
android:id=
"@+id/fl_more"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"8dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/geduo"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<View
android:layout_width=
"0dp"
android:layout_height=
"1px"
android:background=
"#E5E6EB"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"@id/ll"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/z_music.png
0 → 100644
View file @
45731203
15.3 KB
app/src/main/res/mipmap-xxhdpi/z_zip.png
0 → 100644
View file @
45731203
2.39 KB
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