18

我无法让我的图像视图出现在屏幕的一半有人可以帮忙。这是我的 xml 文件。它应该占据屏幕大小的一半,并且带有 textview 的线性布局应该位于 imageview 的页脚。

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/fond" >

<RelativeLayout

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:layout_alignParentLeft="true"

    android:layout_below="@+id/relativeLayout1" >

    <RelativeLayout

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_alignParentLeft="true" >

        <WebView

            android:id="@+id/webcontent"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_alignParentLeft="true"

            android:layout_alignParentTop="true"

            android:layout_marginTop="151dp" />

    </RelativeLayout>

    <ImageView

        android:id="@+id/image_actualitedetails"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:src="@drawable/six_yamaha" />

    <LinearLayout

        android:id="@+id/linearvideo"

        android:layout_width="fill_parent"

        android:layout_height="65dp"

        android:layout_alignBottom="@+id/image_actualitedetails"

        android:layout_alignParentLeft="true"

        android:background="#88FFFFFF"

        android:gravity="center"

        android:paddingLeft="@dimen/fourdp"

        android:paddingRight="@dimen/fourdp" >


        <TextView

            android:id="@+id/text_actualites"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="TextView"

            android:textColor="@color/tabDark"

            android:textStyle="bold" />

    </LinearLayout>


</RelativeLayout>

<RelativeLayout

    android:id="@+id/relativeLayout1"

    android:layout_width="fill_parent"

    android:layout_height="75dp"

    android:layout_alignParentLeft="true"

    android:layout_alignParentTop="true"

    android:background="@drawable/header" >

    <Button

        android:id="@+id/boutton_retour"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_centerVertical="true"

        android:layout_marginLeft="14dp"

        android:background="@drawable/back" />

</RelativeLayout>

4

4 回答 4

45

使用 LinearyLayout 包装你的 ImageView 和另一个不可见的 View,并将 layout_weight 都设置为 0.5,那么 ImageView 应该是一半大小。

这是一个示例,展示如何将图像设置为屏幕大小的一半

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5"
        android:background="#ff0000"
        >
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/your_image"
            android:adjustViewBounds="true"
            />
    </RelativeLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5"
        android:background="#00ff00"
        />
</LinearLayout>

这就是结果

enter image description here

If you want to put your image in center of the screen, you can use the same idea and set proper weight to achieve your goal. Good luck!

于 2013-01-27T04:24:47.487 回答
4

首先,您需要在运行时获取显示尺寸

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
windowWidth = size.x;
windowHeight = size.y;

然后您可以继续将您的 imageView 高度和宽度参数设置为这些值的一半

int orgWidth = yourImageView.getDrawable().getIntrinsicWidth();
int orgHeight = yourImageView.getDrawable().getIntrinsicHeight();



//Use RelativeLayout.LayoutParams if your parent is a RelativeLayout
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
windowHeight / 2, windowWidth / 2);
yourImageView.setLayoutParams(params);
yourImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
于 2013-01-27T04:18:34.473 回答
4

Just if someone wants landscape version its almost the same :)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:baselineAligned="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:background="#ff0000" >

        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/adele" />
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:background="#00ff00" />
</LinearLayout>
于 2013-05-11T03:25:51.100 回答
0

您必须将您的 imageview 放在具有水平对齐的 LinearLayout 中,这样您就可以使用

android:weight = 0.5// this attribute for the image view will force the image to fill half  of the screen, counting of course with the linear layout as the top parent layout(filling the hole window)
于 2013-01-27T04:23:29.503 回答