相关疑难解决方法(0)

如何在屏幕中央布置图像的"网格"

我有一组12个图像在布局中显示.这个数字是半任意选择的,但是对于纵向模式可以归结为3个横向和4个垂直,而对于横向模式则相反.

第一个实现是使用gridview.问题是高度不能强制适合屏幕.对于一种解决方法,我可以(尝试)缩放课程图像,但几乎不可能计算出网格视图可用的空间:总屏幕尺寸是已知的,但你必须"猜测"通知栏的大小并且没有'似乎是一种优雅的溶剂.测量的大小实际上并不值得信任:我没有在方向更改(速度)上完全重新启动,但是屏幕的构建方式不能在现场获得完整的空间.最后得出的结论是,我不想计算图像的大小,然后相应地对它们进行缩放:我认为最好说出视图应该如何适应屏幕,对吧?

所以接下来的尝试就是使用TableLayout.使用"ShrinkColumns ="*"图像很合适,所以图像的大小现在是我们想要它们的大小.但是我们可能在高度上的'额外'空间现在在桌面之间均匀分配.这是可以预期的,但很难看

当前的代码似乎无关紧要,因为它不起作用,但最终看起来像这样:我已经删除了所有填充和其他看起来不相关的东西.(对于肖像:)

<TableLayout
       android:shrinkColumns="*">
    <TableRow>
        <ImageView/>
        <ImageView/>
        <ImageView/>
    </TableRow>
    … (repeat 3 tablerows)
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

为了"缩放"过大的图像,TableLayout具有"shrinkcolumns ="*""属性.

我们怎样才能让三个ImageView在TableRow的中心对齐而不是在宽度上均匀分布?对于垂直列也是如此,我们如何将所有内容保持在一起而不是在屏幕的高度上展开?基本上,"多余"空间应该作为填充/边距到达边,现在它介于图像之间.

示例:左侧屏幕截图显示左/右距离太多,右侧有太多顶部/底部 例如-androblip布局图像

android gridview tablelayout android-layout

6
推荐指数
1
解决办法
6567
查看次数

自定义ViewGroup中的自定义View是否应使用onDraw()或layout()?

首先,我创建了一个自定义视图,通过覆盖该onDraw()方法来吸引自己.事实证明这是不切实际的,因为我需要创建大量的视图.所以我创建了一个自定义的ViewGroup,它使用该onLayout()方法绘制每个子节点.

我在android文档中读到了子视图应该实现一个layout()方法.但是我创建的子视图使用onDraw方法绘制自己.我该怎么处理?我应该摆脱这种onDraw()方法吗?任何人都可以举例说明该layout()方法的工作原理以及我应该如何将我的onDraw()方法"转换" 为layout()方法?

我目前的onDraw()方法如下:

protected void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);

        //Draw Border.
        canvas.drawRect(mCellBounds, mBorderPaint);

        //Draw Background.
        canvas.drawRect(mBackgroundBounds, mBackGroundPaint);

        //Draw Value if not 0.
        if(Value != 0)
            canvas.drawText(Integer.toString(Value), ValueX, ValueY, mNumberPaint);

        //Draw Notes if Value == 0.
        else
        {
            for(int i = 0 ; i < 9 ; i++)
                if(NoteList[i])
                    canvas.drawText(Integer.toString(i), NoteX + ((i%3) * NoteMeasureX), NoteY + ((i/3) * NoteMeasureY), mNotePaint);
        }
    }
Run Code Online (Sandbox Code Playgroud)

android android-custom-view viewgroup android-view

2
推荐指数
1
解决办法
3280
查看次数