VideoView обрезать до квадрата - PullRequest
       21

VideoView обрезать до квадрата

8 голосов
/ 10 декабря 2010

Используя ImageView, я могу установить квадратную высоту и ширину (скажем, 100dip x 100dip).Затем, используя android:scaleType="centerCrop", я получаю изображение, обрезанное до квадрата независимо от соотношения сторон.

Можем ли мы сделать это с VideoView?

Я пытался просто установить квадратную высотуи ширину, но он просто изменяет размеры, чтобы заполнить квадрат как можно лучше, сохраняя соотношение сторон, что, я думаю, вполне ожидаемо.

Кажется, что у него нет никаких масштабных или обрезанных свойств /методы, в отличие от ImageView, но это в документации VideoView заставляет меня думать, что я что-то упускаю:

[VideoView] ... предоставляет различные параметры отображения, такие как масштабирование и тонирование.

Любые идеи будут высоко оценены.

Ответы [ 2 ]

4 голосов
/ 24 марта 2014

Вы получаете эффект обрезки видео, используя TextureView, для которого требуется Android API 14 и аппаратное ускорение.Я описал это в моей статье здесь .

Вы также можете использовать мой TextureVideoView - пользовательский вид, основанный на Android TextureView, который дает вам возможность легко игратьи обрезать видео.Это очень похоже на ImageView#setScaleType

Макет

<com.dd.crop.TextureVideoView
        android:id="@+id/cropTextureView"
        android:layout_width="fill_parent"
        android:layout_height="100dp"/>

Код

TextureVideoView cropTextureView = (TextureVideoView) findViewById(R.id.cropTextureView);
// Use `setScaleType` method to crop video
cropTextureView.setScaleType(TextureVideoView.ScaleType.TOP);
// Use `setDataSource` method to set data source, this could be url, assets folder or path
cropTextureView.setDataSource("http://www.w3schools.com/html/mov_bbb.mp4");
cropTextureView.play();

Надеюсь, это кому-нибудь поможет!

1 голос
/ 05 августа 2011

Источник подразумевает, что он изначально не поддерживается в представлении VideoView.Вы можете скопировать источник и заставить его работать, хотя.:) Скорее всего, добавив else в строке 255, изменив onMeasure, чтобы он не расширялся, чтобы соответствовать размеру, и т. Д.

Редактировать: не удивляйтесь, что Справочная документациянемного не в порядке или просто неправильно.

...