feat: 图片加载器使用 Sketch
This commit is contained in:
parent
4773f41870
commit
87f24ffca0
|
|
@ -111,8 +111,6 @@ wire {
|
|||
|
||||
dependencies {
|
||||
implementation "com.github.germainkevinbusiness:CollapsingTopBarCompose:1.1.7"
|
||||
implementation "io.coil-kt:coil:2.2.2"
|
||||
implementation "io.coil-kt:coil-compose:2.2.2"
|
||||
|
||||
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1'
|
||||
// implementation 'androidx.compose.material3:material3:1.0.0'
|
||||
|
|
@ -145,7 +143,7 @@ dependencies {
|
|||
implementation "com.google.accompanist:accompanist-swiperefresh:$accompanist_version"
|
||||
implementation "com.google.accompanist:accompanist-webview:$accompanist_version"
|
||||
|
||||
def sketch_version = "3.1.0"
|
||||
def sketch_version = "3.2.0-beta01"
|
||||
implementation "io.github.panpf.sketch3:sketch:$sketch_version"
|
||||
implementation "io.github.panpf.sketch3:sketch-compose:$sketch_version"
|
||||
implementation "io.github.panpf.sketch3:sketch-extensions:$sketch_version"
|
||||
|
|
|
|||
|
|
@ -19,8 +19,9 @@ import androidx.compose.ui.layout.ContentScale
|
|||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import coil.compose.AsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import com.github.panpf.sketch.compose.AsyncImage
|
||||
import com.github.panpf.sketch.fetch.newResourceUri
|
||||
import com.github.panpf.sketch.request.DisplayRequest
|
||||
import com.google.accompanist.drawablepainter.rememberDrawablePainter
|
||||
import com.google.accompanist.placeholder.PlaceholderHighlight
|
||||
import com.google.accompanist.placeholder.material.fade
|
||||
|
|
@ -83,9 +84,13 @@ fun Avatar(
|
|||
val context = LocalContext.current
|
||||
when (data) {
|
||||
is Int -> {
|
||||
Image(
|
||||
painter = rememberDrawablePainter(drawable = context.getDrawable(data)),
|
||||
AsyncImage(
|
||||
request = DisplayRequest(LocalContext.current, newResourceUri(data)) {
|
||||
placeholder(ImageUtil.getPlaceHolder(context, 0))
|
||||
crossfade()
|
||||
},
|
||||
contentDescription = contentDescription,
|
||||
contentScale = ContentScale.Crop,
|
||||
modifier = modifier
|
||||
.size(size)
|
||||
.clip(CircleShape),
|
||||
|
|
@ -104,21 +109,15 @@ fun Avatar(
|
|||
|
||||
is String? -> {
|
||||
AsyncImage(
|
||||
model = ImageRequest.Builder(LocalContext.current)
|
||||
.data(data)
|
||||
.crossfade(true)
|
||||
.build(),
|
||||
request = DisplayRequest(LocalContext.current, data) {
|
||||
placeholder(ImageUtil.getPlaceHolder(context, 0))
|
||||
crossfade()
|
||||
},
|
||||
contentDescription = contentDescription,
|
||||
placeholder = rememberDrawablePainter(
|
||||
drawable = ImageUtil.getPlaceHolder(
|
||||
context,
|
||||
0
|
||||
)
|
||||
),
|
||||
contentScale = ContentScale.Crop,
|
||||
modifier = modifier
|
||||
.size(size)
|
||||
.clip(CircleShape),
|
||||
contentScale = ContentScale.Crop
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -321,8 +321,8 @@ fun FeedCard(
|
|||
NetworkImage(
|
||||
imageUri = media.url,
|
||||
contentDescription = null,
|
||||
photoViewData = getPhotoViewData(item, index),
|
||||
modifier = Modifier.weight(1f),
|
||||
photoViewData = getPhotoViewData(item, index),
|
||||
contentScale = ContentScale.Crop
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,9 +8,8 @@ import androidx.compose.runtime.remember
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import coil.compose.AsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import com.google.accompanist.drawablepainter.rememberDrawablePainter
|
||||
import com.github.panpf.sketch.compose.AsyncImage
|
||||
import com.github.panpf.sketch.request.DisplayRequest
|
||||
import com.huanchengfly.tieba.post.goToActivity
|
||||
import com.huanchengfly.tieba.post.models.protos.PhotoViewData
|
||||
import com.huanchengfly.tieba.post.ui.page.photoview.PhotoViewActivity
|
||||
|
|
@ -21,8 +20,8 @@ import com.huanchengfly.tieba.post.utils.ImageUtil
|
|||
fun NetworkImage(
|
||||
imageUri: String,
|
||||
contentDescription: String?,
|
||||
photoViewData: PhotoViewData? = null,
|
||||
modifier: Modifier = Modifier,
|
||||
photoViewData: PhotoViewData? = null,
|
||||
contentScale: ContentScale = ContentScale.Fit,
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
|
|
@ -39,12 +38,11 @@ fun NetworkImage(
|
|||
}
|
||||
} else Modifier
|
||||
AsyncImage(
|
||||
model = ImageRequest.Builder(LocalContext.current)
|
||||
.data(imageUri)
|
||||
.crossfade(true)
|
||||
.build(),
|
||||
request = DisplayRequest(context, imageUri) {
|
||||
placeholder(ImageUtil.getPlaceHolder(context, 0))
|
||||
crossfade()
|
||||
},
|
||||
contentDescription = contentDescription,
|
||||
placeholder = rememberDrawablePainter(drawable = ImageUtil.getPlaceHolder(context, 0)),
|
||||
modifier = modifier.then(clickableModifier),
|
||||
contentScale = contentScale,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,9 +19,8 @@ import androidx.browser.customtabs.CustomTabsIntent
|
|||
import androidx.core.content.pm.ShortcutInfoCompat
|
||||
import androidx.core.content.pm.ShortcutManagerCompat
|
||||
import androidx.core.graphics.drawable.IconCompat
|
||||
import coil.Coil
|
||||
import coil.request.ImageRequest
|
||||
import coil.request.SuccessResult
|
||||
import com.github.panpf.sketch.request.LoadRequest
|
||||
import com.github.panpf.sketch.request.LoadResult
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.huanchengfly.tieba.post.App
|
||||
import com.huanchengfly.tieba.post.R
|
||||
|
|
@ -273,15 +272,10 @@ suspend fun requestPinShortcut(
|
|||
onFailure: (String) -> Unit = {}
|
||||
) {
|
||||
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
|
||||
val request = ImageRequest.Builder(context)
|
||||
.data(iconImageUri)
|
||||
.allowHardware(false)
|
||||
.build()
|
||||
val imageResult = Coil.imageLoader(context)
|
||||
.execute(request)
|
||||
if (imageResult is SuccessResult) {
|
||||
val imageResult = LoadRequest(context, iconImageUri).execute()
|
||||
if (imageResult is LoadResult.Success) {
|
||||
val shortcutInfo = ShortcutInfoCompat.Builder(context, shortcutId)
|
||||
.setIcon(IconCompat.createWithBitmap(ImageUtil.drawableToBitmap(imageResult.drawable)))
|
||||
.setIcon(IconCompat.createWithBitmap(imageResult.bitmap))
|
||||
.setIntent(shortcutIntent)
|
||||
.setShortLabel(label)
|
||||
.build()
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@ org.gradle.caching=true
|
|||
org.gradle.configureondemand=true
|
||||
org.gradle.jvmargs=-Xmx2g -XX:+UseParallelGC -Dfile.encoding=UTF-8
|
||||
org.gradle.parallel=true
|
||||
org.gradle.unsafe.configuration-cache=true
|
||||
# org.gradle.unsafe.configuration-cache=true
|
||||
|
|
|
|||
Loading…
Reference in New Issue