android垂直ScrollView布局,使ImageView具有固定屏幕高度的百分比

时间:2014-11-25 07:09:30

标签: android android-layout android-layout-weight

嗨,我是Android开发新手。 我想设计一个包含ImageView和TextView的垂直ScrollView。 ImageView占据屏幕高度的50%,而底部是具有动态内容的TextView,可占据屏幕高度的50%或更高。因此,只有当文本内容占据屏幕的50%以上时,ScrollView才可滚动(请参阅下面的示例) in this case text occupies 50% more screen so user has to scroll down to read more

有没有办法实现这种布局?

2 个答案:

答案 0 :(得分:3)

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

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

        <ImageView
            android:id="@+id/scroll_image"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop" />

        <TextView
            android:id="@+id/scroll_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</ScrollView>

这是布局。在您的活动中,您应将ImageView的高度设置为屏幕高度的50%,如下所示:

ImageView scrollImage = (ImageView) findViewById(R.id.scroll_image);
TextView scrollText = (TextView) findViewById(R.id.scroll_text);
int height = getResources().getDisplayMetrics().heightPixels;

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) scrollImage.getLayoutParams();
params.height = height / 2;
scrollImage.setLayoutParams(params);

希望这会有所帮助。

答案 1 :(得分:0)

尝试以下代码

<ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

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

                <ImageView
                    android:id="@+id/scroll_image"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:scaleType="centerCrop"
                    android:layout_weight="50" />

                <TextView
                    android:id="@+id/scroll_text"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="50" />
            </LinearLayout>
        </ScrollView>