Функция Image
Функция Image рисует изображение на экране.
Источник передают в параметр painter,
подпись для доступности - в contentDescription.
Как картинка впишется в область, задаёт
ContentScale
в параметре contentScale,
оттенок - через
ColorFilter
в параметре colorFilter.
Синтаксис
Image(
painter = painterResource(R.drawable.picture),
contentDescription = "abcde",
)
Параметры
| Параметр | Описание |
|---|---|
painter |
Объект, который знает, как нарисовать картинку.
Принимает значение класса
Painter.
|
contentDescription |
Краткое описание для TalkBack. Для декора
можно передать null.
|
alignment |
Куда сдвинуть картинку внутри области,
если она меньше или больше ячейки.
Принимает значение класса
Alignment.
|
contentScale |
Как масштабировать картинку под размер области.
Принимает значение класса
ContentScale.
|
alpha |
Прозрачность от 0f до 1f.
|
colorFilter |
Фильтр цвета поверх картинки.
Принимает значение класса
ColorFilter.
|
Пример
Давайте покажем файл из каталога drawable.
Картинку положите в
res/drawable/picture.png:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.ui.res.painterResource
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Image(
painter = painterResource(R.drawable.picture),
contentDescription = "abcde",
)
}
}
}
На экране появится картинка из ресурса
R.drawable.picture в исходном масштабе.
Пример
Давайте обрежем картинку по области фиксированного размера:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.size
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Image(
painter = painterResource(R.drawable.picture),
contentDescription = "abcde",
modifier = Modifier.size(120.dp),
contentScale = ContentScale.Crop,
)
}
}
}
На экране картинка заполнит квадрат
120 dp, лишнее по краям обрежется.
Смотрите также
-
функция
painterResource,
которая читаетPainterиз drawable -
функция
Icon,
которая рисует векторную иконку Material -
класс
ContentScale,
который задаёт масштаб картинки в области -
класс
Painter,
который описывает, как нарисовать изображение