我有一些存储在内部存储上的图片,它们有不同的尺寸,我想在包含imageview的scrollview中显示它。我希望在每个维度情况下(图像宽于高于图像,图像高于宽图像,平方图像)图像占据整个屏幕宽度。 但是我写的那些代码并不能很好地运行。如果图像的平方或高于宽广的图像效果很好,但如果图像宽于高图像则不然。 这是xml of scrollview
<RelativeLayout
....
>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/linearInsideScroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
</ScrollView>
</RelativeLayout>
这是我将在布局中充气的单个imageView的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!--
othed widget
-->
<ImageView
android:id="@+id/picture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
这就是我填充视图的方式(图片列表对象包含图片信息):
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearInsideScroll);
for (int i = 0; i < pics.size(); i++) {
View new_element = inflater.inflate(R.layout.single_element, null,
false);
if (pics.get(i).getWidth() > pics.get(i).getHeight()) {
imageView.getLayoutParams().width = width_px;
imageView.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
} else if (pics.get(i).getWidth() < pics.get(i).getHeight()) {
imageView.getLayoutParams().height = height_px;
imageView.getLayoutParams().width = LayoutParams.MATCH_PARENT;
}
else {
imageView.getLayoutParams().height = width_px;
imageView.getLayoutParams().width = width_px;
}
linearLayout.addView(new_element);
}
答案 0 :(得分:0)
对于imageView,设置scaleType。
http://developer.android.com/reference/android/widget/ImageView.ScaleType.html