在setimagebitmap之后,imageview的高度和视图搞砸了

时间:2014-04-01 16:46:39

标签: java android image

这是我的XML:

<LinearLayout
android:id="@+id/afterphotolayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

    <ImageView
        android:id="@+id/imgPreview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:maxHeight="400dp"
        android:contentDescription="@string/image_description"
        android:scaleType="centerCrop" />

    <ImageView
        android:id="@+id/blankView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

但是在代码中,当我这样做时:

_imgPreview.setImageBitmap(_compressedBitmap);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 1.0f );
_imgPreview.setLayoutParams(param);

我的图像仍未调整大小以占据屏幕高度的一半并按中心裁剪缩放。似乎setImageBitmap函数搞砸了imageview的高度/宽度,即使在我尝试设置新的布局参数后也不允许更改它。任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题!疯了,setImageBitmap完全忽略了布局权重。我还以编程方式添加了权重设置:

barcode.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 2));

但没有帮助。 但后来我这样做了:

barcode.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1, 2));

这有帮助,没有给出高度的'0'值。我刚刚在lollipop上试过这个,所以没有在旧版本上测试,但可能会有效。 令人沮丧的是,我花了太长时间才弄清楚Android怪癖的一些解决方法