Как я могу контролировать прозрачность растрового изображения?

#android #canvas #bitmap #transparent

#Android #холст #растровое изображение #прозрачный

Вопрос:

Я создаю 2D-игру для платформы Android. Предполагается, что персонаж перемещается только вверх и вниз, поэтому я хочу создать 2 стрелки для перемещения в нижней части экрана, чтобы игрок мог перемещать персонажа вверх и вниз. Я также хочу убедиться, что они не блокируют просмотр или что игрок не может видеть, что он делает, поэтому я хочу, чтобы они были прозрачными примерно на 50%.

Как я могу контролировать уровень прозрачности растрового изображения? Я использую canvas на SurfaceView и управляю им в потоке с помощью lockCanvas и unlockAndPost .

Ответ №1:

Когда вы рисуете растровое изображение, вы передаете Paint в качестве аргумента. Вы можете установить уровень прозрачности в Paint с помощью Paint.setAlpha():

 paint.setAlpha(127); //50% translucent
canvas.drawBitmap(bitmap, x, y, paint)
  

Ответ №2:

Если вы используете файлы PNG вместо файлов BMP, вы можете сделать их полупрозрачными. С помощью бесплатного программного обеспечения Inkscape вы можете импортировать файлы формата BMP (с помощью перетаскивания), сделать их прозрачными (выберите изображение и нажмите Ctrl Shift F) и экспортировать их в формате png (Ctrl Shift E).