嘿,我有一个hor scrollview,它包含一个LinearLayout(方向:hor)。
<HorizontalScrollView
android:id="@+id/adImageScroller"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/adImageViewContainer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="left"
android:background="@color/material_blue_grey_950">
</LinearLayout>
</HorizontalScrollView>
我使用ImageViews动态填充此LinearLayout(所有图像都具有随机宽高比)。
这是填充LinearLayout的onCreateView方法:
for (int i = 0; i < reObjectPicUrls.size(); i++) {
String url = reObjectPicUrls.get(i).getContent();
ImageView imageView = new ImageView(getActivity());
imageView.setId(i);
imageView.setPadding(2, 2, 2, 2);
new DownloadImageTask(imageView)
.execute(url);
imageView.setScaleType(ImageView.ScaleType.FIT_START); //<-- WORKS IN XML
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT)); //<-- WORKS IN XML
imageViewContainer.addView(imageView);
}
我需要但不能得到的是所有图像都要缩放到灰色区域的高度(horizontalScrollView高度),同时保持它们的宽高比。
图片全部按options.inSampleSize = 4;
问题出现在下图中。图像未缩放以适合LinearLayout的高度。
我尝试过不同的scaleType但似乎没有什么能解决它。 感谢您提供有关如何解决此问题的任何提示。
答案 0 :(得分:1)
最后破解了它。
没有必要更改布局xml但确实改变了onCreateView代码并添加了setAdjustViewBounds(true)
也使用了FIT_CENTER比例类型。
for (int i = 0; i < reObjectPicUrls.size(); i++) {
String url = reObjectPicUrls.get(i).getContent();
ImageView imageView = new ImageView(getActivity());
imageView.setId(i);
imageView.setPadding(2, 2, 2, 2);
new DownloadImageTask(imageView)
.execute(url);
imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT));
imageView.setAdjustViewBounds(true); <--- THIS DID THE TRICK
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageViewContainer.addView(imageView);
}