如何控制将在ImageButton上绘制的位图大小?

时间:2011-12-29 15:03:58

标签: android

在我的代码上,我需要创建一些表,每列包含位图和文本 - 我动态创建此表。 所以我通过使用这段代码来做到这一点:

    for (int i = 0; i < collection.size(); i++) 
    {               

      ObjectITem item = collection.get(i);

        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.HORIZONTAL);

        TextView textView = new TextView(this);            
        textView.setText(item.getText());            

        linearLayout.addView(textView);            

        linearLayout.addView( (new ImageButton(this)).setImageBitmap(item.getBitmap());
        layout.addView(linearLayout, LayoutParams.WRAP_CONTENT);        

    }

这段代码运行良好 - 但由于原始图像的大小不同 - 我看到ImageButton上出现的图像看起来不太好。

  1. 如何使ImageButton上的所有图像看起来都一样?
  2. 有没有更好的方法来制作我在这里做的布局?

1 个答案:

答案 0 :(得分:1)

1)您可以使用Bitmap.createScaledBitmap()将所有图像缩放到所需大小。像这样......

Bitmap buttonBmp = Bitmap.createScaledBitmap(item.getBitmap(), buttonW, buttonH, true);
linearLayout.addView((new ImageButton(this)).setImageBitmap(buttonBmp);

2)您可能需要考虑使用ListActivityListView。这更复杂,但如果您的集合很大并且需要滚动多个页面,则效率会更高。