我在HorizontalScrollView中有一个TableLayout。当我添加单行图像时,图像是并排的,没有额外的填充。
但是当我添加另一行并且图像缩小时,TableLayout会在每个单元格周围水平创建额外的填充,但不会垂直。 这是我的代码:
TableLayout grid = (TableLayout) deckBuilder.findViewById(R.id.grid);
for (int j = 0; j < 3; ++j) {
TableRow testRow = new TableRow(this);
\\Each row has the same weight
testRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.MATCH_PARENT, 1f));
for (int i = 0; i < 20; ++i) {
ImageView testImage = new ImageView(this);
testImage.setImageResource(R.test_image);
testRow.addView(testImage);
}
grid.addView(testRow);
}
这是我的xml:
<HorizontalScrollView
android:id="@+id/horizontalscroll"
android:layout_width="wrap_content"
android:layout_height="1dip"
android:scrollbars="none"
android:overScrollMode="never">
<TableLayout
android:id="@+id/grid"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
</TableLayout>
</HorizontalScrollView>
答案 0 :(得分:0)
编辑:
抱歉误读了这段代码。
解决方案:
将图像视图的宽度/高度设置为wrap_content。你可以通过
来做到这一点LayoutParams对象:
http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
请参阅此问题以获取示例:
Show ImageView programmatically
//ImageView Setup
ImageView imageView = new ImageView(this);
//setting image resource
imageView.setImageResource(R.drawable.play);
//setting image position
imageView.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
请看这里的文档:
http://developer.android.com/reference/android/widget/ImageView.html
具体看scaleType:
http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
我认为其中一个选项应该解决这个问题(也许...... fitXY?)