Метод getDrawable
Метод getDrawable класса
Resources
возвращает
Drawable
из res/drawable/ или mipmap.
На API 21+ используют overload
с theme для vector drawable.
В Compose тот же файл часто грузят через
painterResource.
Синтаксис
resources.getDrawable(R.drawable.ic_logo, theme)
Параметры
| Параметр | Описание |
|---|---|
id |
Идентификатор R.drawable.
|
theme |
Тема для загрузки vector и tint attrs. |
Пример
Давайте загрузим drawable и зададим tint:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.material3.Text
import androidx.compose.foundation.layout.Column
import androidx.compose.ui.graphics.asImageBitmap
import androidx.core.graphics.drawable.toBitmap
import com.example.app.R
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val icon = resources.getDrawable(R.drawable.ic_logo, theme)
icon.setTint(resources.getColor(R.color.brand, theme))
setContent {
Column {
Text(text = "abcde")
Image(
bitmap = icon.toBitmap().asImageBitmap(),
contentDescription = "12345",
)
}
}
}
}
На экране над или под текстом "abcde"
появится иконка из drawable.
Смотрите также
-
метод
setTint,
которым меняют цвет drawable -
функция
painterResource,
способ показать drawable в Compose -
класс
Drawable,
тип возвращаемого значения -
метод
getColor,
откуда берут tint для setTint