我正在尝试创建一个屏幕(纵向模式),显示4个图像(相同尺寸,旨在缩小以适应屏幕),占据整个屏幕,将屏幕分成象限(高,2x2网格) )。这将作为主菜单类型的活动,每个图像都应该是可点击的,以便让用户进行不同的活动。
我曾尝试在LinerLayout中使用GridView(使用Google的GridView教程中的大量内容),但无法正确地获取图像以填满整个屏幕。我在图像周围获得额外的边距和/或滚动整个屏幕。
我也尝试过使用TableLayout,在2行中分别放置2张图像。在视觉上,这完美地运作。不幸的是,在使用它时,我似乎无法在我的活动代码中引用TableLayout中的ImageView项(findViewById总是返回null)。
我觉得TableLayout真的不是“正确的事情”,但我想听听其他人的意见。无论哪种方式,应该怎样做才能实现我想要的功能?
感谢。
编辑1.1: 相对布局更适合排队。现在我只剩下findViewById总是返回null的问题。到目前为止,这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/homescreen_bgcolor"
>
<ImageView id="@+id/one"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:src="@drawable/item1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView id="@+id/two"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:src="@drawable/item2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView id="@+id/three"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:src="@drawable/item3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView id="@+id/four"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/item4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
public class HomeScreenActivity2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homescreen2);
ImageView imageView = (ImageView) findViewById(R.id.one);
imageView.setClickable(true);
imageView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Log.i("Test", "test");
}
});
}
}
答案 0 :(得分:1)
这是一个示例布局,展示如何使用RelativeLayout实现覆盖整个屏幕的2 X 2网格。
Router.route('/blog/:permalink'), {
template: 'blogPost',
name: 'blogPost',
path: '/blog/:permalink',
data: function () {
return Blogs.findOne({ permalink: this.params.permalink, published: true });
}
}
Router.route('blog'), {
path: '/blog',
waitOn: function () {
return [
Meteor.subscribe('blogs')
]
}
}
以上布局导致:
答案 1 :(得分:0)
我认为TableLayout可能适合您,但我建议您尝试RelativeLayout。您可以使用
的组合将图像固定到四个象限android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"`
在您的图片上。
我在我的应用程序中做了类似的事情,我在主页上有多个按钮,可以启动相应的活动。 RelativeLayout工作正常,它避免了嵌套的Layout对象,这可能会妨碍渲染和布局过程中的性能(如果它失控)。