2010-12-10 31 views
7

使用ImageView,我可以設置一個方形的高度和寬度(比如100dip x 100dip)。然後使用android:scaleType="centerCrop"給我一個圖像,無論長寬比如何,它都被裁剪成方形。VideoView作物到廣場

我們可以用VideoView來做到這一點嗎?

我試過只是設置一個方形的高度和寬度,但它只是重新調整大小以儘可能最好地填充正方形,同時保持縱橫比,我猜這是完全可以預料的。

它似乎沒有任何規模或作物屬性/方法不同於ImageView,但這個VideoView文檔中讓我覺得我失去了一些東西:

[VideoView] ...提供各種顯示選項 ,如縮放和着色。

任何想法將不勝感激。

回答

1

Source暗示它不是在VideoView視圖中本機支持的。您可以複製源代碼並使其工作。 :)最有可能通過線255添加其他,修改onMeasure以防止其擴大,以滿足規模等

編輯: 不要感到驚訝的是,參考文檔稍微偏離或只是簡單的錯誤。

+0

甜,謝謝,只是一個恥辱我剛剛結束了這個項目,現在! :) – Andy 2011-08-06 09:07:39

+0

@安迪你試圖實現廣場視頻? – Naz141 2015-11-19 09:57:41

+0

@ Naz141不知道我做了什麼。想想我可能已經裁剪了源視頻,因爲它是用於演示目的。 – Andy 2015-11-19 13:06:54

4

您使用需要Android API 14和硬件加速的TextureView來實現視頻作物效果。我在我的文章here中描述了它。

您還可以使用我的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(); 

希望這會幫助別人!

+0

https://github.com/malmstein/fenster – 2015-12-18 10:34:20