Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
F
FileManager
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
yanglin
FileManager
Commits
ef567503
Commit
ef567503
authored
Apr 16, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
图片卡顿
parent
1fa11825
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
212 additions
and
126 deletions
+212
-126
build.gradle
MyDemo3/app/build.gradle
+2
-0
MediaActivity.kt
...n/java/com/xm/test/myfilemaster/activity/MediaActivity.kt
+38
-30
MediaAdapter2.kt
...in/java/com/xm/test/myfilemaster/adapter/MediaAdapter2.kt
+53
-0
FileUtil.kt
...p/src/main/java/com/xm/test/myfilemaster/util/FileUtil.kt
+73
-65
GlideApp.kt
...p/src/main/java/com/xm/test/myfilemaster/util/GlideApp.kt
+8
-0
activity_media.xml
MyDemo3/app/src/main/res/layout/activity_media.xml
+24
-31
item_image_video.xml
MyDemo3/app/src/main/res/layout/item_image_video.xml
+14
-0
No files found.
MyDemo3/app/build.gradle
View file @
ef567503
...
@@ -97,4 +97,6 @@ dependencies {
...
@@ -97,4 +97,6 @@ dependencies {
// compile(name:'trustlook_cleanjunk_sdk_release_3.0.4.20240322',ext:'aar')
// compile(name:'trustlook_cleanjunk_sdk_release_3.0.4.20240322',ext:'aar')
implementation
files
(
'libs/trustlook_cleanjunk_sdk_release_3.0.4.20240322.aar'
)
implementation
files
(
'libs/trustlook_cleanjunk_sdk_release_3.0.4.20240322.aar'
)
implementation
files
(
'libs/cloudscan_sdk_5.0.5.20240306.aar'
)
implementation
files
(
'libs/cloudscan_sdk_5.0.5.20240306.aar'
)
implementation
(
"com.github.bumptech.glide:glide:4.15.1"
)
}
}
MyDemo3/app/src/main/java/com/xm/test/myfilemaster/activity/MediaActivity.kt
View file @
ef567503
...
@@ -13,6 +13,8 @@ import androidx.lifecycle.ViewModelProvider
...
@@ -13,6 +13,8 @@ import androidx.lifecycle.ViewModelProvider
import
com.kongzue.dialogx.dialogs.WaitDialog
import
com.kongzue.dialogx.dialogs.WaitDialog
import
com.xm.test.myfilemaster.R
import
com.xm.test.myfilemaster.R
import
com.xm.test.myfilemaster.adapter.MediaAdapter
import
com.xm.test.myfilemaster.adapter.MediaAdapter
import
com.xm.test.myfilemaster.adapter.MediaAdapter2
import
com.xm.test.myfilemaster.databinding.ActivityMediaBinding
import
com.xm.test.myfilemaster.model.FileBean
import
com.xm.test.myfilemaster.model.FileBean
import
com.xm.test.myfilemaster.util.FileUtil
import
com.xm.test.myfilemaster.util.FileUtil
...
@@ -31,8 +33,11 @@ class MediaActivity : AppCompatActivity() {
...
@@ -31,8 +33,11 @@ class MediaActivity : AppCompatActivity() {
private
lateinit
var
mTitleTv
:
TextView
private
lateinit
var
mTitleTv
:
TextView
lateinit
var
mItemCheckedArray
:
SparseBooleanArray
lateinit
var
mItemCheckedArray
:
SparseBooleanArray
private
var
mItemDataList
=
ArrayList
<
FileBean
>()
private
var
mItemDataList
=
ArrayList
<
FileBean
>()
private
var
mItemAdapter
:
MediaAdapter
?
=
null
private
lateinit
var
binding
:
ActivityMediaBinding
// private var mItemAdapter: MediaAdapter? = null
private
var
mItemAdapter
:
MediaAdapter2
?
=
null
private
var
mDataList
:
ArrayList
<
String
>
=
ArrayList
<
String
>()
private
var
mDataList
:
ArrayList
<
String
>
=
ArrayList
<
String
>()
private
var
mCheckedDataList
:
ArrayList
<
String
>
=
ArrayList
<
String
>()
private
var
mCheckedDataList
:
ArrayList
<
String
>
=
ArrayList
<
String
>()
...
@@ -40,27 +45,28 @@ class MediaActivity : AppCompatActivity() {
...
@@ -40,27 +45,28 @@ class MediaActivity : AppCompatActivity() {
private
lateinit
var
mModel
:
BaseActivityViewModel
private
lateinit
var
mModel
:
BaseActivityViewModel
val
mFileTypeBeanList
:
ArrayList
<
String
>
=
ArrayList
()
val
mFileTypeBeanList
:
ArrayList
<
String
>
=
ArrayList
()
var
mShowBeanData
:
ArrayList
<
String
>
=
ArrayList
()
var
mShowBeanData
:
ArrayList
<
String
>
=
ArrayList
()
var
mStartNumber
:
Int
=
0
var
mStartNumber
:
Int
=
0
var
mIsCheckClick
=
false
var
mIsCheckClick
=
false
companion
object
{
companion
object
{
var
isClickEditBtn
=
false
var
isClickEditBtn
=
false
}
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
activity_media
)
binding
=
ActivityMediaBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
initView
()
initView
()
}
}
@SuppressLint
(
"ClickableViewAccessibility"
)
@SuppressLint
(
"ClickableViewAccessibility"
)
private
fun
initView
()
{
private
fun
initView
()
{
mGridView
=
findViewById
(
R
.
id
.
image_item_grid
)
//
mGridView = findViewById(R.id.image_item_grid)
mTitleBar
=
findViewById
(
R
.
id
.
title_bar
)
mTitleBar
=
findViewById
(
R
.
id
.
title_bar
)
mSelectBar
=
findViewById
(
R
.
id
.
switch_and_select_layout
)
mSelectBar
=
findViewById
(
R
.
id
.
switch_and_select_layout
)
// mScrollView = findViewById(R.id.grid_view_scroll)
// mScrollView = findViewById(R.id.grid_view_scroll)
...
@@ -81,17 +87,19 @@ class MediaActivity : AppCompatActivity() {
...
@@ -81,17 +87,19 @@ class MediaActivity : AppCompatActivity() {
mItemCheckedArray
=
SparseBooleanArray
()
mItemCheckedArray
=
SparseBooleanArray
()
val
fileType
=
intent
.
getStringExtra
(
"fileType"
).
toString
()
val
fileType
=
intent
.
getStringExtra
(
"fileType"
).
toString
()
mItemAdapter
=
MediaAdapter
(
mItemDataList
,
this
,
mItemCheckedArray
,
fileType
,
118
)
// mItemAdapter = MediaAdapter(mItemDataList, this, mItemCheckedArray, fileType, 118)
mGridView
.
adapter
=
mItemAdapter
mItemAdapter
=
MediaAdapter2
()
// mGridView.adapter = mItemAdapter
binding
.
imageItemGrid
.
adapter
=
mItemAdapter
Thread
(
Runnable
{
Thread
(
Runnable
{
WaitDialog
.
show
(
"please wait.."
)
WaitDialog
.
show
(
"please wait.."
)
mItemDataList
=
FileUtil
.
getMediaFiles
(
this
,
fileType
,
20
)
mItemDataList
=
FileUtil
.
getMediaFiles
(
this
,
fileType
,
20
)
runOnUiThread
{
runOnUiThread
{
mItemAdapter
?.
setData
(
mItemDataList
)
WaitDialog
.
dismiss
()
WaitDialog
.
dismiss
()
for
(
fileBean
in
mItemDataList
){
for
(
fileBean
in
mItemDataList
)
{
mDataList
.
add
(
fileBean
.
filePath
)
mDataList
.
add
(
fileBean
.
filePath
)
}
}
mItemAdapter
?.
setData
(
mItemDataList
)
}
}
}).
start
()
}).
start
()
...
@@ -131,31 +139,31 @@ class MediaActivity : AppCompatActivity() {
...
@@ -131,31 +139,31 @@ class MediaActivity : AppCompatActivity() {
}
}
}
}
private
fun
setOnGridViewItemClickListener
(){
private
fun
setOnGridViewItemClickListener
()
{
mGridView
.
setOnItemClickListener
{
parent
,
view
,
position
,
id
->
//
mGridView.setOnItemClickListener { parent, view, position, id ->
if
(
isClickEditBtn
)
{
// if (isClickEditBtn)
{
updateCheckBoxStatus
(
view
,
position
)
//
updateCheckBoxStatus(view, position)
}
else
{
// } else
{
//TODO 点击进入图片或视频播放
//
//TODO 点击进入图片或视频播放
}
//
}
}
//
}
}
}
private
fun
setStateCheckedMap
(
isChecked
:
Boolean
){
private
fun
setStateCheckedMap
(
isChecked
:
Boolean
)
{
for
(
i
in
mDataList
.
indices
)
{
for
(
i
in
mDataList
.
indices
)
{
mItemCheckedArray
.
put
(
i
,
isChecked
)
mItemCheckedArray
.
put
(
i
,
isChecked
)
mGridView
.
setItemChecked
(
i
,
isChecked
)
mGridView
.
setItemChecked
(
i
,
isChecked
)
}
}
}
}
private
fun
updateCheckBoxStatus
(
view
:
View
,
position
:
Int
){
private
fun
updateCheckBoxStatus
(
view
:
View
,
position
:
Int
)
{
val
viewHolder
=
view
.
tag
as
MediaAdapter
.
ViewHolder
val
viewHolder
=
view
.
tag
as
MediaAdapter
.
ViewHolder
viewHolder
.
checkedBox
.
toggle
()
viewHolder
.
checkedBox
.
toggle
()
mGridView
.
setItemChecked
(
position
,
viewHolder
.
checkedBox
.
isChecked
)
mGridView
.
setItemChecked
(
position
,
viewHolder
.
checkedBox
.
isChecked
)
mItemCheckedArray
.
put
(
position
,
viewHolder
.
checkedBox
.
isChecked
)
mItemCheckedArray
.
put
(
position
,
viewHolder
.
checkedBox
.
isChecked
)
if
(
viewHolder
.
checkedBox
.
isChecked
){
if
(
viewHolder
.
checkedBox
.
isChecked
)
{
mCheckedDataList
.
add
(
mDataList
[
position
])
mCheckedDataList
.
add
(
mDataList
[
position
])
}
else
{
}
else
{
mCheckedDataList
.
remove
(
mDataList
[
position
])
mCheckedDataList
.
remove
(
mDataList
[
position
])
}
}
mItemAdapter
?.
notifyDataSetChanged
()
mItemAdapter
?.
notifyDataSetChanged
()
...
@@ -163,14 +171,14 @@ class MediaActivity : AppCompatActivity() {
...
@@ -163,14 +171,14 @@ class MediaActivity : AppCompatActivity() {
mModel
.
setNumber
(
mCheckedNumber
)
mModel
.
setNumber
(
mCheckedNumber
)
}
}
private
fun
selectAll
(){
private
fun
selectAll
()
{
mCheckedDataList
.
clear
()
mCheckedDataList
.
clear
()
mCheckedNumber
=
if
(
mIsCheckClick
){
mCheckedNumber
=
if
(
mIsCheckClick
)
{
setStateCheckedMap
(
true
)
setStateCheckedMap
(
true
)
mCheckedDataList
.
addAll
(
mDataList
)
mCheckedDataList
.
addAll
(
mDataList
)
mCheckedDataList
.
size
mCheckedDataList
.
size
}
else
{
}
else
{
setStateCheckedMap
(
false
)
setStateCheckedMap
(
false
)
0
0
}
}
mModel
.
setNumber
(
mCheckedNumber
)
mModel
.
setNumber
(
mCheckedNumber
)
...
@@ -179,9 +187,9 @@ class MediaActivity : AppCompatActivity() {
...
@@ -179,9 +187,9 @@ class MediaActivity : AppCompatActivity() {
override
fun
onBackPressed
()
{
override
fun
onBackPressed
()
{
mItemAdapter
?.
notifyDataSetChanged
()
mItemAdapter
?.
notifyDataSetChanged
()
if
(
isClickEditBtn
){
if
(
isClickEditBtn
)
{
cancelBtn
()
cancelBtn
()
}
else
{
}
else
{
super
.
onBackPressed
()
super
.
onBackPressed
()
}
}
}
}
...
...
MyDemo3/app/src/main/java/com/xm/test/myfilemaster/adapter/MediaAdapter2.kt
0 → 100644
View file @
ef567503
package
com.xm.test.myfilemaster.adapter
import
android.annotation.SuppressLint
import
android.content.Context
import
android.util.SparseBooleanArray
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.BaseAdapter
import
android.widget.CheckBox
import
android.widget.ImageView
import
androidx.recyclerview.widget.RecyclerView
import
com.bumptech.glide.Glide
import
com.xm.test.myfilemaster.R
import
com.xm.test.myfilemaster.activity.MediaActivity
import
com.xm.test.myfilemaster.databinding.ItemImageVideoBinding
import
com.xm.test.myfilemaster.model.FileBean
import
com.xm.test.myfilemaster.util.FileUtil
class
MediaAdapter2
:
RecyclerView
.
Adapter
<
MediaAdapter2
.
CCC
>()
{
private
var
mListData
:
ArrayList
<
FileBean
>
=
arrayListOf
()
fun
Int
.
inflate
(
parent
:
ViewGroup
,
attachToRoot
:
Boolean
=
false
):
View
{
return
LayoutInflater
.
from
(
parent
.
context
).
inflate
(
this
,
parent
,
attachToRoot
)
}
class
CCC
(
view
:
View
)
:
RecyclerView
.
ViewHolder
(
view
)
{
val
binding
=
ItemImageVideoBinding
.
bind
(
view
)
}
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
CCC
{
return
CCC
(
R
.
layout
.
item_image_video
.
inflate
(
parent
))
}
override
fun
getItemCount
():
Int
{
return
mListData
.
size
}
override
fun
onBindViewHolder
(
holder
:
CCC
,
position
:
Int
)
{
val
data
=
mListData
[
position
]
val
context
=
holder
.
binding
.
root
.
context
Glide
.
with
(
context
).
load
(
data
.
filePath
).
centerCrop
().
into
(
holder
.
binding
.
ivMedia
)
}
@SuppressLint
(
"NotifyDataSetChanged"
)
fun
setData
(
datas
:
List
<
FileBean
>)
{
mListData
.
clear
()
mListData
.
addAll
(
datas
)
notifyDataSetChanged
()
}
}
\ No newline at end of file
MyDemo3/app/src/main/java/com/xm/test/myfilemaster/util/FileUtil.kt
View file @
ef567503
This diff is collapsed.
Click to expand it.
MyDemo3/app/src/main/java/com/xm/test/myfilemaster/util/GlideApp.kt
0 → 100644
View file @
ef567503
package
com.xm.test.myfilemaster.util
import
android.app.Application
import
com.bumptech.glide.annotation.GlideModule
@GlideModule
class
GlideApp
:
Application
()
{
}
\ No newline at end of file
MyDemo3/app/src/main/res/layout/activity_media.xml
View file @
ef567503
...
@@ -3,43 +3,36 @@
...
@@ -3,43 +3,36 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/main"
android:id=
"@+id/main"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
tools:context=
".activity.MediaActivity"
>
tools:context=
".activity.MediaActivity"
>
<include
<include
android:id=
"@+id/title_bar"
android:id=
"@+id/title_bar"
layout=
"@layout/title_bar_layout"
/>
layout=
"@layout/title_bar_layout"
/>
<!-- <ScrollView-->
<!-- <ScrollView-->
<!-- android:id="@+id/grid_view_scroll"-->
<!-- android:id="@+id/grid_view_scroll"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_marginTop="12dp"-->
<!-- android:layout_marginTop="12dp"-->
<!-- android:layout_marginStart="16dp"-->
<!-- android:layout_marginStart="16dp"-->
<!-- android:layout_marginEnd="16dp">-->
<!-- android:layout_marginEnd="16dp">-->
<GridView
<androidx.recyclerview.widget.RecyclerView
android:layout_marginTop=
"12dp"
android:id=
"@+id/image_item_grid"
android:layout_marginStart=
"16dp"
android:layout_width=
"match_parent"
android:layout_marginEnd=
"16dp"
android:layout_height=
"wrap_content"
android:id=
"@+id/image_item_grid"
android:layout_marginStart=
"16dp"
android:layout_width=
"fill_parent"
android:layout_marginTop=
"12dp"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"16dp"
android:fadingEdge=
"none"
android:padding=
"1dp"
android:horizontalSpacing=
"1dp"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
android:listSelector=
"#00000000"
app:spanCount=
"3"
/>
android:padding=
"1dp"
android:scrollbars=
"none"
android:verticalSpacing=
"5dp"
<!-- </ScrollView>-->
android:numColumns=
"3"
android:columnWidth=
"118dp"
/>
<!-- </ScrollView>-->
</LinearLayout>
</LinearLayout>
\ No newline at end of file
MyDemo3/app/src/main/res/layout/item_image_video.xml
0 → 100644
View file @
ef567503
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"wrap_content"
android:layout_margin=
"15dp"
android:layout_height=
"wrap_content"
>
<ImageView
android:id=
"@+id/iv_media"
android:layout_width=
"100dp"
android:layout_height=
"100dp"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
\ No newline at end of file
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