<br.application.component.HexagonGrid
android:id="@+id/hexagonGrid"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/searchResultList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="vertical" >
</LinearLayout>
</br.application.component.HexagonGrid>
创建 HexagonGrid
是为了将元素放入内部,就像RelativeLayout
一样:
public class HexagonGrid extends RelativeLayout {
public HexagonGrid(Context context) {
super(context);
}
public HexagonGrid(Context context, AttributeSet aSet) {
super(context, aSet);
}
[...]
private ImageView createGrayHexagonDefault() {
ImageView grayHexagon = new ImageView(context);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.setMargins( 10, 0, 10, 0 );
grayHexagon.setScaleType(ScaleType.MATRIX);
grayHexagon.setImageDrawable(getResources().getDrawable(R.drawable.hexagon_disabled));
grayHexagon.setLayoutParams(lp);
return grayHexagon;
}
}
我正在searchResultList
内的HexagonGrid
内以编程方式添加一些图片。
LinearLayout searchResultList= (LinearLayout) findViewById(R.id.searchResultList);
searchResultList.addView(createGrayHexagonDefault());
我不明白为什么setMargins
无效:
lp.setMargins( 10, 0, 10, 0 );
任何人都可以告诉我为什么?
答案 0 :(得分:0)
OMG!
ImageView
将以LinearLayout
作为其父级,但有两种类型的LayoutParams
:
RelativeLayout.LayoutParams
和LinearLayout.LayoutParams
出于某种原因,我的项目自动选择了RelativeLayout.LayoutParams
作为默认值。这种边距不起作用。