适应ImageView正确显示图片

时间:2014-05-03 20:39:39

标签: android image android-widget android-imageview

我有一些存储在内部存储上的图片,它们有不同的尺寸,我想在包含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);

}

1 个答案:

答案 0 :(得分:0)