嘿我有一个ImageButton
的网格,它按显示宽度缩放,并包含一个 PNG 文件作为图像。我将整个事物添加到线性布局中:
public void createButtons(){
int buttonX = 9;
int buttonY = 9;
int size = 80;
int tag = 0;
TableLayout layout = new TableLayout (this);
layout.setLayoutParams( new TableLayout.LayoutParams(900,900) );
layout.setPadding(1,1,1,1);
layout.setBackgroundColor(0xff00af00); //green
RelativeLayout ll = (RelativeLayout)findViewById(R.id.rel);
ll.addView(layout);
for(int x=0;x<buttonX;x++) {
TableRow tr = new TableRow(this);
for(int y=0;y<buttonY;y++) {
but[x][y] = new ImageButton(this);
but[x][y].setBackgroundColor(0xff0000af); //blue
but[x][y].setImageResource(R.drawable.buttonmask3);
but[x][y].setScaleType(ImageButton.ScaleType.CENTER_INSIDE);
tr.addView(but[x][y], height/10,height/10);
}
layout.addView(tr);
}
}
问题是,布局现在如下所示:
虽然看起来像:
(这个是一个快速的Photoshop,但你明白了,这个量表应该完全填满按钮)
对于这些微小图像,我该怎么办?我尝试了 CENTER_INSIDE , FITXY 以及所有其他 ScaleTypes ,但到目前为止我还没有幸运:/
width
取自屏幕宽度(或横向高度)
buttonmask3.png约为 170 * 170像素。
答案 0 :(得分:2)
问题是ImageButton
自然带来的填充。
添加
but[x][y].setPadding(0, 0, 0, 0);
与
一起but[x][y].setScaleType(ImageButton.ScaleType.CENTER_CROP);
为我解决了。