ImageButton上的ScaleType会产生很小的图像

时间:2014-10-14 20:23:12

标签: android layout

嘿我有一个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);
            }
}  

问题是,布局现在如下所示:

does

虽然看起来像:

should

(这个是一个快速的Photoshop,但你明白了,这个量表应该完全填满按钮)

对于这些微小图像,我该怎么办?我尝试了 CENTER_INSIDE FITXY 以及所有其他 ScaleTypes ,但到目前为止我还没有幸运:/

width取自屏幕宽度(或横向高度)

buttonmask3.png约为 170 * 170像素

1 个答案:

答案 0 :(得分:2)

问题是ImageButton自然带来的填充。

添加

but[x][y].setPadding(0, 0, 0, 0);

一起
but[x][y].setScaleType(ImageButton.ScaleType.CENTER_CROP); 

为我解决了。