Проблема прозрачности SurfaceView - PullRequest
1 голос
/ 29 августа 2011

У меня есть эта проблема: я добавил два экземпляра вида в framelayout. Первый вид - VideoView, который воспроизводит видео в цикле. Второй вид расположен над видеовидением и является видом с поверхности. Surfaceview рисует .png в виде белого прямоугольника, который нуждается в небольшой части экрана. Часть, которая не нужна, должна быть прозрачной. Для этого я использовал следующие строки кода (SurfaceView реализует SurfaceHolder.Callback):

setZOrderOnTop(true);
getHolder().setFormat(PixelFormat.Transparent);

Проблема в том, что я хочу сделать белый прямоугольник полупрозрачным, чтобы увидеть фильм, который воспроизводит видео. Эффект прозрачности прекрасно работает на неиспользуемой части вида поверхности, но прямоугольник не становится полупрозрачным (если я рисую фон для вида поверхности, эффект становится видимым.) Я жду решения от вас, ребята. Спасибо

Ответы [ 2 ]

0 голосов
/ 31 декабря 2013
mVideoView.setZOrderOnTop( true );
getHolder().setFormat( PixelFormat.RGBA_8888 );

работал на меня.

0 голосов
/ 29 августа 2011

Возможно SurfaceHolder не допускает альфа. Вы проверили результат PixelFormat.formatHasAlpha ()? Или вы пытались явно установить PixelFormat.RGBA_4444, RGBA_5551 или RGBA_8888, чтобы увидеть, что происходит?

...