删除动态创建的ImageViews Android之间的空白区域

时间:2017-03-13 20:57:56

标签: android

我在Android Studio应用程序的for循环中创建了imageViews(动态)。 有没有办法删除/缩短创建的空白区域?

LinearLayout layout = (LinearLayout)findViewById(R.id.imageLayout);
            for(int i = 0; i < userKeys.size() + 1; i++)
            {
                System.out.println(userKeys.get(i).toString());

                ImageView image = new ImageView(this);
                image.setLayoutParams(new android.view.ViewGroup.LayoutParams(1000,1000));
                image.setMaxHeight(20);
                image.setMaxWidth(20);
                // Adds the view to the layout
                //layout.addView(image);
                layout.addView(image);
                Picasso.with(this).load("***************" + userKeys.get(i).toString()).into(image);
            }

提前致谢

3 个答案:

答案 0 :(得分:2)

设置image.setAdjustViewBounds(true)image.setScaleType(something suitable like CenterCrop)

如果您的位图与视图的宽度/高度不同,则setAdjustViewBounds很重要

请参阅https://developer.android.com/reference/android/widget/ImageView.html了解更多

答案 1 :(得分:0)

尝试添加

  

centerCrop()

像:

Picasso.with(this).load("*****" + userKeys.get(i).toString()).centerCrop().into(image);

还有其他选项可供选择:

.centerInside() .fit()

来源:https://futurestud.io/tutorials/picasso-image-resizing-scaling-and-fit

答案 2 :(得分:0)

enter image description here

添加> android:scaleType =“ centerCrop”

<ImageView
        android:id="@+id/image"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/temp_image"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"/>

这对我有用