欢迎大家。
我有一个LinearLayout必须显示一个ImageView。imageView必须适合LinearLayout的所有宽度,所以我使用match_parent作为宽度,它必须保持高宽比,所以我使用wrap_content来表示高度和setAdjustViewBounds为真。但是有些东西不能工作,因为ImageView的宽度是正确的(它符合线性布局的宽度),但是imageView的高度是错误的(图像在上、下两部分被裁剪)。
I尝试了所有的规模类型 (fit_center,fit_xy,center_crop,center_inside等)我在所有这些方面都有问题(例如,如果我使用fit_center,图像不符合ImageView的全部宽度,我可以看到图像左右两个黑色空间,我也尝试使用没有setAdjustViewBounds的FIT_CENTER,我也有同样的问题)
这里有一个快照:http://i.stack.imgur.com/8hrKF.png
这是我的密码:
LinearLayout onlineHolder = this.holders.get(i);
onlineHolder.setLayoutParams(
new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
onlineHolder.removeAllViews();
ImageView imgv = new ImageView(onlineHolder.getContext());
imgv.setLayoutParams(
new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
imgv.setAdjustViewBounds(true);
imgv.setScaleType(ImageView.ScaleType.CENTER_CROP);
Bitmap b=res.getCachedBitmapWithWidth(this.width); //obtenemos el recurso cacheado con el width correspondiente
imageElement.setBitmap(b);
imgv.setImageBitmap(b);
onlineHolder.addView(imgv);谢谢
编辑:只有当我用绝对数字指定图像视图的宽度和高度时,它才能工作。例如,如果我放置400 (400是屏幕的50%,布局宽度)宽度和583高度,它可以工作,但如果我把MATCH_PARENT作为宽度和包装内容的高度.这不管用..。为什么?
发布于 2014-01-17 13:02:43
我在XML中有一个,它以您想要的方式工作。瞧一瞧。
<ImageView
android:id="@+id/attachedImage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:adjustViewBounds="true" />但是,如果您想在运行时执行此操作,我建议以这种方式创建XML,并在runtime上膨胀视图并将其添加到父布局中。这肯定会奏效的。
编辑:如何充气ImageView。
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.your_layout_contains_image_view, null, false);
ImageView imageView = view.findViewById(R.id.attachedImage);https://stackoverflow.com/questions/21184686
复制相似问题