我有grid view
有7张图片,现在当我给它充气的时候,我就这样了
在这里,您可以看到图像按照普通视图对齐 但我不希望它像我想要的那样
底部图像对齐以形成金字塔或三角形类型 我如何在android ???
中的gridview中实现这一点答案 0 :(得分:2)
如果您尝试设置填充,那么您可以像这样缩小视图
if(position == 4){
view.setPadding(50, 0, 0, 0);
}
所以我建议这样的事情
在xml中创建2个网格视图,使它们的对齐方式居中
<TextView
android:id="@+id/txtControl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
<GridView
android:id="@+id/gridView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/txtControl"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:numColumns="4" >
</GridView>
<GridView
android:id="@+id/gridView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtControl"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:numColumns="3" >
</GridView>
现在在您的主要活动中为每个
创建2个字符串值公共类MainActivityWrapped扩展了Activity {
static final String[] MOBILE_OS1 = new String[] {
"Android", "iOS", "Windows", "Blackberry"};
static final String[] MOBILE_OS2 = new String[] {
"Android", "iOS", "Windows"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridviewlayout);
GridView gridView1 = (GridView) findViewById(R.id.gridView1);
gridView1.setAdapter(new ImageAdapterWrapped(this, MOBILE_OS1,gridView1));
GridView gridView2 = (GridView) findViewById(R.id.gridView2);
gridView2.setAdapter(new ImageAdapterWrapped(this, MOBILE_OS2,gridView1));
}
}
您可以创建2个适配器或控制相同的第一个适配器以便重复使用
输出就像这样
答案 1 :(得分:0)
正如Takendarkk所说,你想要的布局不是网格
您应该能够通过嵌套线性布局实现您想要的效果:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- first 4 image views here -->
</LinearLayout>
<LinearLayout
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- last 3 image views here -->
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
这是可行的,但解决方案很麻烦。
如果你知道行中有多少张图片,你可以计算出你的行的左右图像需要多少填充。
然后,在适配器的getView()
中,您可以设置此填充轴承,由于视图在适配器中的回收方式,您需要为那些不适用的设备取消设置填充需要它。
如果您需要一些代码来更好地说明我提出的建议,请在评论中告诉我。