我有一点(并且有点棘手)问题,并且自己无法解决很多时间。问题场景是:
我正在以编程方式(从数据库)添加 TextView s(即标题)和相关(可点击) ImageView 。它们之间的差距已经非常大(我没有添加任何边距或填充它们)。我想将保证金设置为仅1dp。但我不能。
我使用了以下代码:
LinearLayout linearLayout = (LinearLayout) this.findViewById(R.id.linearLayout);
//No params and margins used for it
TextView tvTitle = new TextView(this); // getting from json (dynamically)
tvTitle.setTextSize(17) ;
tvTitle.setText(title) ;
linearLayout.addView(tvTitle) ;
ImageView image = new ImageView(this) ;
// here getting the image from url
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) ;
params.setMargins(5, 0, 5, 0) ;
image.setLayoutParams( params );
linearLayout.addView(image) ;
这里topMargin和bottomMargin是0,但是当app运行时;图像上方和下方的边距几乎为20dp。
当我从20dp增加边距时,即当我将0替换为30或40时,边距会增加,但是当我将其减少到5或1或0时,它不会减少。它仍然接近约20 dp。有任何想法的人......
答案 0 :(得分:1)
听起来ImageView
上的视点未正确调整。
尝试在ImageView
上设置此项:
image.setAdjustViewBounds(true);