布局视图根据给定的大小不适合

时间:2013-06-26 09:26:33

标签: android

我想在运行时将imagview和textview大小设置为总屏幕宽度的一半。但它不能正常工作。在设置总屏幕宽度的一半后,Imageview显得很小。

请帮我解决这个问题。我从最近1天开始尝试这个但是无法识别问题。

提前致谢。

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/light_white" >

<RelativeLayout
    android:id="@+id/relativeLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/light_white" >

    <TextView
        android:id="@+id/noticeHeading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="15dip"
        android:layout_marginTop="25dip"
        android:textColor="@color/black"
        android:textSize="18dip" />

    <TextView
        android:id="@+id/noticeContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/noticeHeading"
        android:layout_below="@id/noticeHeading"
        android:layout_marginTop="20dp"
        android:textColor="@color/black"
        android:textSize="16dip" />

    <ImageView
        android:id="@+id/noticeImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/noticeHeading"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_toRightOf="@id/noticeHeading" />
</RelativeLayout>
</ScrollView>

代码:

View rootView = inflater.inflate(res, container, false);
noticeHeaderTextView = (TextView)rootView.findViewById(R.id.noticeHeading);

noticeContentTextView = (TextView)rootView.findViewById(R.id.noticeContent);

noticeImageView = (ImageView)rootView.findViewById(R.id.noticeImageView);

DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;


noticeImageView.getLayoutParams().width = width / 2;
noticeHeaderTextView.getLayoutParams().width = width / 2;
noticeContentTextView.getLayoutParams().width = width / 2;

1 个答案:

答案 0 :(得分:0)

使用线性布局并将相对布局放入其中,而不是将layout layout_weight设置为0.5以用于相对布局。 在textview和imageview中将match_parent应用为height。 希望这会奏效。 如果这在xml中有效,你可以通过LayoutPerameter类动态地执行相同操作。