即使ScaleType也调整ImageView的大小

时间:2014-06-15 08:55:48

标签: android resize imageview layoutparams scaletype

我遇到了问题,我正在尝试调整ImageView及其父容器的大小,但问题是ImageViewScaleType:"matrix",我无法调整图像大小或其容器 这是我的代码:

public void resize() {

    LayoutParams contet = relativeLayout.getLayoutParams();
    LayoutParams photo =  image.getLayoutParams();


    int widPhoto = image.getWidth();
    int hePhoto = image.getHeight();

    photo.width = ((widPhoto * 6) / 2);
    photo.height = ((hePhoto * 6) / 2);

    contenedor.width = widPhoto * 2;
    contenedor.height = hePhoto * 2;


    relativeLayout.setLayoutParams(contenedor); 

    image.setLayoutParams(photo );
}

和我的xml

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/containerImg"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="matrix" />

</RelativeLayout>
如果我正确调整所有内容,

setLayoutParams()除了删除属性ScaleType之外什么都不做,但我无法移除该属性。有什么方法可以调整大小?他们可以把财产ScaleType: NONE?非常感谢你,抱歉我的英语不好

2 个答案:

答案 0 :(得分:0)

要调整ImageView的大小,我建议使用FrameLayout:

<FrameLayout
    android:id="@+id/fm_id"
    android:layout_width="img_width"
    android:layout_height="img_height"
    ... ...

    >
   <ImageView
     android:id="@+id/imageView1"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:adjustViewBounds="true"
     android:layout_gravity="center"
     android:gravity="center"
     />

</FrameLayout>

然后你只需要调整大小&#39; img_width&#39;和&#39; img_height&#39;在你的代码中

答案 1 :(得分:0)

如果您使用Layout ScaleType: matrix,我就得到了解决方案 您需要使用matrix.setScale ();进行调整大小