【发布时间】:2012-01-27 20:21:31
【问题描述】:
我正在尝试设置 ImageView 的填充。我的代码在下面
private void createEpisodeView() {
float scale = this.getResources().getDisplayMetrics().density;
int padding = (int) (PADDING * scale + 0.5f);
rlItemsRoot = (LinearLayout) findViewById(R.id.rl_items_root);
for (int i = 0; i < GameLevels.TOTAL_EPISODES; i++) {
ImageView iv = new ImageView(this);
iv.setPadding(padding, padding, padding, padding);
iv.setBackgroundResource(R.drawable.icon_small);
rlItemsRoot.addView(iv);
}
}
但它没有效果。但是当我在 XML 中设置它时,它看起来很好。
【问题讨论】:
-
当我们动态设置填充时,填充默认以像素表示。在 xml 中使用相同的值 px 或 dip
-
我在 XML 中使用 dip,在这里我将 pix 转换为 DIP。而 5 常量是取消转换为 int 的效果。即 0.7 在 int 中为 0,但如果添加 0.5 则不会。