【问题标题】:Displaying Images in a TableLayout properly in Android在 Android 中正确显示 TableLayout 中的图像
【发布时间】:2011-08-13 06:30:26
【问题描述】:

我遇到了问题,我的图像在我以编程方式创建的表格布局中没有正确缩小。

This is what I'm currently getting.

这是我的代码:

final TableLayout grd_overview = (TableLayout)this.findViewById(R.id.tbl_overview);
grd_overview.setShrinkAllColumns(true);

Integer[] mThumbIds = { R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1,  R.drawable.memory_2, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1,R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1, R.drawable.memory_2, R.drawable.memory_1};

int x = 0;
for (int j = 0; j <= 5; j++) {

    TableRow tr = new TableRow(this);
    tr.setLayoutParams(new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

        for (int i = 0; i <= 5; i++) {
            ImageView iv = new ImageView(this);
            iv.setImageResource(mThumbIds[x]);
            tr.addView(iv);
            x++;
        }
    grd_overview.addView(tr);            
}

XML:

<TableLayout
      android:id="@+id/tbl_overview"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />  

我不知道如何缩小所有 ImageViews 完美组合在一起的行。底部屏幕截图中的图像比应有的要小。

【问题讨论】:

    标签: android android-layout layout imageview tablelayout


    【解决方案1】:

    您可以在for 循环内初始化每个ImageView 后添加以下代码行:

    iv.setScaleType(ScaleType.FIT_CENTER);
    

    或者选择最适合您需要的缩放类型。

    您可以阅读更多关于ScaleTypes herescaling matrice algorithms 的信息,例如。这个FIT_CENTER 做了什么。

    【讨论】:

    • 谢谢 :) FIT_CENTER 效果不佳,所以我使用了 FIT_XY。这只是使图像适合 X 和 Y 轴。虽然(原始图片是方形的)新图片是矩形的。最底部的图片占用了剩余空间。新问题是:如何让 Tableview 的高度与显示器的宽度一样高?
    • 没关系,在我尝试解决这个问题之后,我会创建一个新线程
    • 这是FIT_XY 应该做的(拉伸第二个矩形以匹配第一个矩形)。另一方面,您可以使用DisplayMetricsgetBaseContext().getResources().getDisplayMetrics().widthPixels 获取显示器的宽度(以像素为单位)。
    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多