Android Compose,如何使用线圈仅播放一次动画webp?

问题描述 投票:0回答:1

我成功地在图像可组合项上使用线圈显示动画 webp。
然而,我的目标是只运行这个动画 webp 一次。
现在它无限重复。
有办法吗?

是我的代码。

animated webp

class MainActivity : ComponentActivity() {
    val resourceAnimated =
        "https://www.bandisoft.com/honeycam/help/file_format/sample.webp"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            MaterialTheme {
                // A surface container using the 'background' color from the theme
                Surface(color = MaterialTheme.colors.background) {
                    MyApp()
                }
            }
        }
    }

    @Composable
    private fun MyApp() {
        val imageLoader = ImageLoader.Builder(this)
            .components {
                if (SDK_INT >= 28) {
                    add(ImageDecoderDecoder.Factory())
                } else {
                    add(GifDecoder.Factory())
                }
            }
            .build()

        val painter = rememberAsyncImagePainter(
            model = resourceAnimated,
            imageLoader = imageLoader,
        )

        Test(painter)
    }

    @Composable
    private fun Test(painter: AsyncImagePainter) {
        Box(modifier = Modifier.padding(16.dp)) {
            Image(
                painter = painter, contentDescription = null,
                modifier = Modifier.fillMaxSize()
            )
        }
    }
android-jetpack-compose webp coil
1个回答
0
投票

您只能为卷绕的 webp 制作一次动画。

使用此扩展功能

Image(painter =  rememberAsyncImagePainter(ImageRequest.Builder(LocalContext.current)
                 .data(data= "your image url")
                 .repeatCount(0)
                 .build())
)
© www.soinside.com 2019 - 2024. All rights reserved.