在我的代码上,我需要创建一些表,每列包含位图和文本 - 我动态创建此表。 所以我通过使用这段代码来做到这一点:
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上出现的图像看起来不太好。
答案 0 :(得分:1)
1)您可以使用Bitmap.createScaledBitmap()将所有图像缩放到所需大小。像这样......
Bitmap buttonBmp = Bitmap.createScaledBitmap(item.getBitmap(), buttonW, buttonH, true);
linearLayout.addView((new ImageButton(this)).setImageBitmap(buttonBmp);
2)您可能需要考虑使用ListActivity和ListView。这更复杂,但如果您的集合很大并且需要滚动多个页面,则效率会更高。