YouTubeThumbnailView上的android:layout_width =“fill_parent”不填充父级

时间:2013-11-21 22:54:58

标签: xml android-ui android-youtube-api xml-layout

我不确定为什么,但我试图设置我的缩略图的大小来填充父母,但是看起来他们没有这样做,我不确定为什么。

我将参数设置为(我相信)它们应该是,但缩略图仍然不会延伸到屏幕的边缘。

SCREENSHOT

enter image description here

XML

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:autoLink="web"
        android:textStyle="bold" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:id="@+id/groupScrollView">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <com.google.android.youtube.player.YouTubePlayerView
                android:id="@+id/youtubeplayerview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/textView1a"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Throw &apos;Em Up"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView2a"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="by DJ Generic"
                android:textAppearance="?android:attr/textAppearanceSmall" />

            <TextView
                android:id="@+id/textView3a"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="100,000 views"
                android:textAppearance="?android:attr/textAppearanceSmall" />

            <com.google.android.youtube.player.YouTubeThumbnailView
                android:id="@+id/youtubethumbnailview1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="5dp" />

            <TextView
                android:id="@+id/textView1b"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Bulls On Parade"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView2b"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="by Rage Against the Machine"
                android:textAppearance="?android:attr/textAppearanceSmall" />

            <TextView
                android:id="@+id/textView3b"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="100,000 views"
                android:textAppearance="?android:attr/textAppearanceSmall" />

            <View
                android:layout_width="1dp"
                android:layout_height="5dp" >
            </View>

            <com.google.android.youtube.player.YouTubeThumbnailView
                android:id="@+id/youtubethumbnailview2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="5dp" />

            <TextView
                android:id="@+id/textView1b"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Isaac Daniel at CNN Anderson Cooper"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView2b"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="by idconex"
                android:textAppearance="?android:attr/textAppearanceSmall" />

            <TextView
                android:id="@+id/textView3b"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="678,000,000 views"
                android:textAppearance="?android:attr/textAppearanceSmall" />

            <View
                android:layout_width="1dp"
                android:layout_height="5dp" >
            </View>
        </LinearLayout>
    </ScrollView>

</LinearLayout>

2 个答案:

答案 0 :(得分:10)

android:adjustViewBounds="true"添加到您的视图中。

我做了:

<com.google.android.youtube.player.YouTubeThumbnailView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"/>

缩略图与我的父版面匹配,保持16:9的比例。

答案 1 :(得分:0)

我设法通过使用谷歌为youtube缩略图(https://support.google.com/youtube/answer/72431?hl=en)规定的宽高比最佳做法来解决这个问题。

他们声明缩略图应该具有16:9的宽高比,所以当我创建视图时,我得到它的父宽度并根据它计算高度。我找不到任何其他方法来缩放拇指图像以适应屏幕宽度(YoutubeThumbnailView被缩放但其中的图像不是)。

    View parentView = activity.findViewById(parentId);
    int parentWidth = parentView.getWidth();
    int youtubeThumbnailHeight = (int) (parentWidth * aspectRatioY / aspectRatioX);
    thumb.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, youtubeThumbnailHeight));

其中aspectRatioY为9且aspectRatioX为16。

我知道这不是一个好的解决方案,但在搜索了一段时间后没有结果,这是我能做的最好的。希望它有所帮助。