当前位置: 首页 > 知识库问答 >
问题:

图像离开屏幕的GridLayout

唐骏祥
2023-03-14

我正在尝试使用图像创建GridLayout。网格有3列。

但我有一些问题:

  1. ImageView正在离开屏幕,如下图所示。GridLayout未正确设置ImageViews的宽度以适应。

这是我当前的代码。我应该改变什么来解决我的两个问题?

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="3"
    android:horizontalSpacing="10dp"
    android:verticalSpacing="10dp"
    android:stretchMode="columnWidth">

    <ImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:background="@color/Color_DarkRed" />

    <ImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:background="@color/Color_DarkRed" />

    <ImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:background="@color/Color_DarkRed" />

    <ImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:background="@color/Color_DarkRed" />

    <ImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:background="@color/Color_DarkRed" />

    <ImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:background="@color/Color_DarkRed" />

</GridLayout>

根据这个答案,我尝试使用以下布局:

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="3">

    <com.my.package.view.SquareImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/Color_DarkRed" />

    <com.my.package.view.SquareImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/Color_DarkRed" />

    <com.my.package.view.SquareImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/Color_DarkRed" />

</GridLayout>

但它看起来像下图。每个图像视图占据整个屏幕的宽度:

http://i.imgur.com/p8AXcKN.png

共有2个答案

龚寂弦
2023-03-14

更改图像,也可以使用方形图像视图来调整网格项目的大小。

创建一个单独的类,用于动态定义ImageView的大小,该类应继承ImageView类,如下所示:

    public class SquareImageView extends ImageView {

    public SquareImageView(Context context) {
        super(context);
    }

    public SquareImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public SquareImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, widthMeasureSpec);

    int width = getMeasuredWidth();
        setMeasuredDimension(width, width);

    }
}

设置的测量尺寸(宽度、宽度);将自动将您的高度设置为宽度。

在xml文件中,使用此类作为视图来代替ImageView,如下所示:

<com.packagepath.SquareImageView
    android:id="@+id/Imageview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
孔梓
2023-03-14

您应该减少布局宽度=“130dp”,因为您的屏幕不能保证为390dp

 类似资料:
  • 问题内容: 现在,我正在Xcode 6中使用spritekit(swift)制作游戏。 它必须可在iPhone 4s及更高版本上播放。但据我所知,所有iPhone都来自4s和更高的Retina,所以我可以添加(750 x 1334像素)和@ 2x.png的所有图像。 因此,我不需要添加没有@ 2x的图像。 我对么? 问题答案: 示例:如果您具有512 x 512(1x)图像,并且希望它支持(2x和

  • 这一定是这里问得最多的问题之一,通常只是针对Android开发者网站。读完留档后,我只想来这里澄清一下。 我理解,为了创建优化的用户体验,每个屏幕大小和密度都必须有不同的可绘制内容。我只想要一个简单的背景图像。因此,我需要为mdpi、hdpi、xhdpi和xxhdpi创建背景图像。经过研究,我发现以下大小的文件夹: 超大型 (XHDPI):640x960 大 (HDPI):480x800 中 (M

  • 我正在使用一个内部带有CardView的GridLayout来显示一组对象,供用户单击并在应用程序中导航。 在我正在测试的平板电脑上,一切似乎都很好,但当我将APK发送给朋友时,有三分之二的APK从屏幕上消失了,似乎不起作用。 示例屏幕截图: 这里的“游戏”部分似乎工作得很好。由于找不到任何错误,我将此部分复制并粘贴到“Community”部分中,只是重新命名了图标,以便代码除了几个字符串之外是相

  • 我创建了一个使用HTML5画布元素的网络应用程序,允许用户绘制各种形状、颜色、线宽。他们也可以上传一张图片,把它画在画布上,然后在上面画画,作为注释他们的图片的一种方式。 我的挑战是我正在使用。toDataURL()获取画布的全部内容,并将其保存为图像。但据我所知,这只能捕获画布的大小。在较小的设备(手机)上,保存的图像最终尺寸非常小。下面是我为获得画布上的内容所做的: var image=文档。

  • 问题内容: 如何使用乌龟图形将图像添加到我的图像? 每当我使用该功能时,我都会不断出错。 龟图形是否有其他方式加载/导入图像? 例如: 问题答案: 该模块确实支持图像,但仅支持GIF图像,不支持PNG或任何其他格式。正如文档所说: name 是gif文件的名称,shape是:安装相应的图像形状。 而且,如果您查看源代码,他们会认真对待“ gif文件”:它通过调用来确定您要添加图像还是多边形的方式显

  • 我想在我的应用程序中使用背景图像。但是我对不同的屏幕大小感到困惑。我发现了这个问题: Android:支持所有设备的背景图像大小(以像素为单位) 但在回答中他说但Lg G3是和屏幕分辨率: 我需要一个路线图。所有屏幕的图像尺寸应该是多少?(mdpi、hdpi、xhdpi等)