Android将procentual大小设置为imageView

时间:2014-05-24 11:11:57

标签: android image imageview android-linearlayout

我想问一下如何设置imageview的宽度和高度?

我试图找到任何可行的解决方案,但没有形成它们对我不起作用。

感谢您的帮助。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:id="@+id/layoutContainer" android:orientation="vertical">

    <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="3">
        <!--HERE I NEED TO SET PROCENTUAL HEIGHT -->
        <ImageView
        android:id="@+id/ivFlag1"
        android:layout_alignParentTop="true"
        android:layout_width="200dp"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:src="@drawable/car_finder_logo" />

    </RelativeLayout>
</LinearLayout> 

2 个答案:

答案 0 :(得分:0)

android:layout_weight将导致视图占用父级的高度/宽度(如果它是父级的唯一子级)。将dummy view添加到LinearLayout并根据您需要的百分比设置其android:layout_weight

假设您需要ImageView占用父级的50%,修改布局如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:id="@+id/layoutContainer" android:orientation="vertical">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="3">

        <ImageView
            android:id="@+id/ivFlag1"
            android:layout_alignParentTop="true"
            android:layout_width="fill_parent" 
            android:layout_height="fil_parent"
            android:layout_marginTop="15dp"
            android:src="@drawable/car_finder_logo" />

        </RelativeLayout>
        <View
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            android:layout_weight="3" />

</LinearLayout> 

答案 1 :(得分:0)

只需设置一个LinearLayout,默认情况下,子项的权重之和为1。 您的LinearLayout(rootView)将有一个ImageView个孩子。要将高度设置为百分比,只需使用layout_height为0dp,layout_weight为0.3为30%或0.5为50%。像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1" >

<!-- HERE I NEED TO SET PROCENTUAL HEIGHT -->

<ImageView
    android:id="@+id/ivFlag1"
    android:layout_width="200dp"
    android:layout_height="0dp"
    android:layout_weight="0.25"
    android:layout_gravity="center"
    android:src="@drawable/ic_launcher" />

结果是您的ImageView占据了布局高度的25%: The result