获取android布局参数'MATCH_PARENT'的实际值

时间:2011-11-17 22:21:53

标签: android android-layout

我有一个xml布局,它在屏幕顶部放置一个图像,在底部放置一些文本。在两者之间,我有一个Gallery小部件,我填充了所有相同大小的图像

这样做的原因是我可以打电话 .setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)和图库图像将完美地适应图像和文本之间的空间。

我遇到的问题是我不希望图像变得太大。对于小分辨率,填充父母是好的。当分辨率增加时,图像变得太大,我需要一个大约200-300 dp的“上限”。

有没有办法获取LayoutParam.MATCH_PARENT的整数值?然后我可以进行比较并限制大小。

编辑 - 代码

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/chooseanimage" />

        <RelativeLayout
            android:id="@+id/rlayout1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

                    <com.google.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="50dp"
                         ads:adUnitId="--"
                         ads:adSize="BANNER"
                         ads:testDevices="TEST_EMULATOR,00"
                         ads:loadAdOnCreate="true"
                         android:layout_centerHorizontal="true"
             android:layout_alignParentBottom="true"
                         />


                    <Gallery
                        android:id="@+id/gallery"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_below="@id/imageView1"
                        android:layout_above="@id/adView"
                        />

        </RelativeLayout>
        </LinearLayout>                

和java

public View getView(int position, View convertView, ViewGroup parent) {
    if( !(convertView instanceof ImageView)){
        convertView = new ImageView(this.myContext);
       convertView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
        convertView.setBackgroundResource(imageBackground);
        ((ImageView) convertView).setScaleType(ImageView.ScaleType.FIT_XY);
    }
    ((ImageView) convertView).setImageResource(this.myImageIds[position]);
     return convertView;
}

2 个答案:

答案 0 :(得分:0)

为什么不在ImageView中使用scaleType参数?

答案 1 :(得分:0)

我相信match_parent属性适用于创建曲面时。在此之前,此属性的整数值为-1并且没有意义。据我所知,一旦表面被创建,就无法获得它将需要的价值。