Я знаю, що для малювання растрових зображень на полотні нам потрібно викликати canvas.drawBitmap (filterBitmap, 0f, 0f, paint) для повноекранного зображення. Але я не знаю, чому мій код не працює, а ImageView порожній.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val bitmap = BitmapFactory.decodeResource(resources, R.drawable.grass)
val filterBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config)
val paint = Paint().apply {
color = Color.RED
style = Paint.Style.FILL
}
val canvas = Canvas(filterBitmap)
canvas.drawBitmap(filterBitmap, 0f, 0f, paint)
filter_image.setImageBitmap(filterBitmap)
}
Малюнок ресурсу має ширину та висоту
Відповіді:
0 для відповіді № 1Рішення - намалювати прямокутне зображення з розміром растрових зображень і встановити деякий клір.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val bitmap = BitmapFactory.decodeResource(resources, R.drawable.grass)
val filterBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config)
button.setOnClickListener {
val paint = Paint().apply {
color = Color.RED
}
val canvas = Canvas(filterBitmap)
canvas.drawRect(Rect(/*bitmap size**/), Paint())
filter_image.setImageBitmap(filterBitmap)
}
}
} В цьому випадку
val filterBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config)
у нас є щось на кшталт прозорого растрового зображення
або використовувати
filterBitmap.eraseColor(Color.RED)