1 /* 2 * Copyright 2021 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package androidx.compose.animation.graphics.samples 18 19 import androidx.annotation.DrawableRes 20 import androidx.annotation.Sampled 21 import androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi 22 import androidx.compose.animation.graphics.res.animatedVectorResource 23 import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter 24 import androidx.compose.animation.graphics.vector.AnimatedImageVector 25 import androidx.compose.foundation.Image 26 import androidx.compose.foundation.clickable 27 import androidx.compose.foundation.layout.size 28 import androidx.compose.runtime.Composable 29 import androidx.compose.runtime.getValue 30 import androidx.compose.runtime.mutableStateOf 31 import androidx.compose.runtime.remember 32 import androidx.compose.runtime.setValue 33 import androidx.compose.ui.Modifier 34 import androidx.compose.ui.unit.dp 35 36 @Sampled 37 @Composable AnimatedVectorSamplenull38fun AnimatedVectorSample() { 39 40 @OptIn(ExperimentalAnimationGraphicsApi::class) 41 @Composable 42 fun AnimatedVector(@DrawableRes drawableId: Int) { 43 val image = AnimatedImageVector.animatedVectorResource(drawableId) 44 var atEnd by remember { mutableStateOf(false) } 45 Image( 46 painter = rememberAnimatedVectorPainter(image, atEnd), 47 contentDescription = "Your content description", 48 modifier = Modifier.size(64.dp).clickable { atEnd = !atEnd } 49 ) 50 } 51 } 52