Circular ImageView в Android с использованием Jetpack Compose
Circular ImageView используется во многих приложениях. Эти типы изображений обычно используются для представления изображения профиля пользователя и многих других изображений. Мы видели реализацию ImageView в Android с помощью Jetpack Compose. В этой статье мы рассмотрим реализацию Circle ImageView в Android с использованием Jetpack Compose.
Пошаговая реализация
Шаг 1: Создайте новый проект
Чтобы создать новый проект в Android Studio Canary Version, обратитесь к статье Как создать новый проект в Android Studio Canary Version с помощью Jetpack Compose.
Шаг 2: добавьте изображение в папку с возможностью рисования
После создания нового проекта мы должны добавить изображение в нашу папку с возможностью рисования для отображения этого изображения внутри нашего ImageView. Скопируйте свое изображение из папки и зайдите в наш проект. Внутри нашего проекта перейдите в приложение > res > drawable > щелкните правой кнопкой мыши папку drawable и вставьте туда свое изображение.
Шаг 3: Работа с файлом MainActivity.kt
После добавления этого изображения перейдите к приложению > java > MainActivity.kt и добавьте к нему приведенный ниже код. Комментарии добавляются внутри кода, чтобы понять код более подробно.
Kotlin
import android.graphics.drawable.shapes.Shapeimport android.media.Imageimport android.os.Bundleimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivityimport androidx.compose.foundation.BorderStrokeimport androidx.compose.foundation.Imageimport androidx.compose.foundation.InteractionStateimport androidx.compose.foundation.Textimport androidx.compose.foundation.layout.*import androidx.compose.foundation.shape.CircleShapeimport androidx.compose.foundation.shape.RoundedCornerShapeimport androidx.compose.foundation.text.KeyboardOptionsimport androidx.compose.material.*import androidx.compose.material.icons.Iconsimport androidx.compose.material.icons.filled.AccountCircleimport androidx.compose.material.icons.filled.Infoimport androidx.compose.material.icons.filled.Phoneimport androidx.compose.runtime.*import androidx.compose.runtime.savedinstancestate.savedInstanceStateimport androidx.compose.ui.Alignmentimport androidx.compose.ui.layout.ContentScaleimport androidx.compose.ui.platform.setContentimport androidx.compose.ui.res.imageResourceimport androidx.compose.ui.tooling.preview.Previewimport androidx.compose.ui.unit.dpimport com.example.gfgapp.ui.GFGAppThemeimport androidx.compose.ui.Modifierimport androidx.compose.ui.draw.clipimport androidx.compose.ui.graphics.Colorimport androidx.compose.ui.graphics.SolidColorimport androidx.compose.ui.platform.ContextAmbientimport androidx.compose.ui.platform.testTagimport androidx.compose.ui.res.colorResourceimport androidx.compose.ui.text.TextStyleimport androidx.compose.ui.text.font.FontFamilyimport androidx.compose.ui.text.input.*import androidx.compose.ui.unit.Dpimport androidx.compose.ui.unit.TextUnit class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { GFGAppTheme { // A surface container using the "background" color from the theme Surface(color = MaterialTheme.colors.background) { // at below line we are calling // our function for button. CircleImg(); } } } }} @Preview(showBackground = true)@Composablefun DefaultPreview() { GFGAppTheme { CircleImg(); }} @Composablefun CircleImg() { Column( // we are using column to align our imageview // to center of the screen. modifier = Modifier.fillMaxWidth().fillMaxHeight(), // below line is used for specifying // vertical arrangement. verticalArrangement = Arrangement.Center, // below line is used for specifying // horizontal arrangement. horizontalAlignment = Alignment.CenterHorizontally, ) { // creating a card for creating a circle image view. Card( // below line is use to add size to our image view and // test tag is use to add tag to our image. modifier = Modifier.preferredSize(100.dp).testTag(tag = "circle"), // below line is use to // add shape to our image view. shape = CircleShape, // below line is use to add // elevation to our image view. elevation = 12.dp ) { // below line we are creating a new image. Image( // in below line we are providing image // resource from drawable folder. imageResource(id = R.drawable.gfgimage), // below line is use to give scaling // to our image view. contentScale = ContentScale.Crop, // below line is use to add modifier // to our image view. modifier = Modifier.fillMaxSize() ) } }} |
Теперь запустите ваше приложение и посмотрите, что выдает приложение.
Выход:
