这是我的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的高度/宽度,即使在我尝试设置新的布局参数后也不允许更改它。任何人都可以解释为什么会这样吗?
答案 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怪癖的一些解决方法