我遇到了问题,我正在尝试调整ImageView
及其父容器的大小,但问题是ImageView
有ScaleType:"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
?非常感谢你,抱歉我的英语不好
答案 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 ();
进行调整大小