我正在用代码创建ImageView:
ImageView vlogo = new ImageView(v.getContext());
RelativeLayout.LayoutParams vlogoParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
vlogoParams.addRule(RelativeLayout.ALIGN_TOP,tv_visitor.getId());
vlogoParams.addRule(RelativeLayout.ALIGN_LEFT, tv_visitor.getId());
vlogoParams.addRule(RelativeLayout.ALIGN_BOTTOM, tv_visitor.getId());
vlogo.setLayoutParams(vlogoParams);
vlogo.setImageResource(R.drawable.star);
rl.addView(vlogo);通过将图像对齐到先前创建的TOP视图的BOTTOM和tv_visitor视图(已经添加到相对布局中),图像将被“缩放”。但我认为它还没有铺好。就在这段代码之前,.requestLayout并没有改变任何事情。

通过这样做,我将ImageView的高度设置为tv_visitor视图的高度。这也没问题。然而,宽度似乎保持原创性。
问题来了。宽度保持不缩放。我这样做是让.setAdjustViewBounds(true); 不起作用。,那么我该怎么做呢?
根据评论中的要求,我提供了更多的信息:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/news_scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff000000"
android:scrollbars="none">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/fragment_news2">
<View
android:id="@+id/anchor_n"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#ffbb00"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
</ScrollView>视图作为参数传递,布局由以下方法获得:
RelativeLayout rl = (RelativeLayout) v.findViewById(R.id.fragment_news2);发布于 2015-02-11 22:04:51
这个问题是由于Imageview的缩放,因为默认情况下,imageview使用的是ImageView.ScaleType.FIT_CENTER。根据文档,FIT_CENTER执行以下操作:
计算一个标度,这将保持原来的src纵横比,但也将确保src完全符合dst。至少有一个轴(X或Y)将完全适合。结果集中在dst中。
由于图像是调整大小和居中的,您将看到左侧和右侧都有额外的空间。为了避免将ScaleType设置为ImageView.ScaleType.FIT_END,而ImageView.ScaleType.FIT_END又将结果与右边对齐,这将解决问题。
vlogo.setScaleType(ImageView.ScaleType.FIT_END);https://stackoverflow.com/questions/28463824
复制相似问题