只是一个关于如何执行此操作的简短问题。我希望在屏幕底部有按钮,但如果屏幕尺寸较大,则会添加更多按钮。Android - 按钮填充布局
例如,在小屏幕尺寸下,底部可能会有4-5个按钮,但如果您在平板电脑或类似的平板上运行它,则可能会有20个按钮。
有什么建议吗?它不能滚动,它只需用按钮动态填充布局。
谢谢。
只是一个关于如何执行此操作的简短问题。我希望在屏幕底部有按钮,但如果屏幕尺寸较大,则会添加更多按钮。Android - 按钮填充布局
例如,在小屏幕尺寸下,底部可能会有4-5个按钮,但如果您在平板电脑或类似的平板上运行它,则可能会有20个按钮。
有什么建议吗?它不能滚动,它只需用按钮动态填充布局。
谢谢。
为了把按钮在布局的底部,做这样的事情给你的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout">
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/button_layout"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:gravity="center">
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"></Button>
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"></Button>
<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"></Button>
</LinearLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/button_layout"
android:id="@+id/content">
<ListView
android:id="@+id/ListView01"
android:layout_height="fill_parent"
android:layout_width="fill_parent"></ListView>
</FrameLayout>
</RelativeLayout>
要改变多少按键根据屏幕大小显示,你应该实现多种屏幕分开布局尺寸..
http://developer.android.com/guide/practices/screens_support.html
听起来像是你想创建自己的自定义布局类。或者直接填充一个LinearLayout(例如)直到屏幕空间用完。
有没有办法告诉我什么时候动态地用尽了屏幕空间? – GuyNoir 2010-03-14 14:05:32
如果您知道按像素的大小,则可以使用DisplayMetrics获取屏幕的尺寸,然后计算将在您的分配空间中安装多少个按钮。
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels GIVS像素绝对高度 metrics.ydpi每个屏幕英寸给出确切的物理像素
和metrics.density给出的逻辑密度换算目的
在这里看到:http://developer.android.com/reference/android/util/DisplayMetrics.html
然后就做类似
do{
Button button=new Button(context);
button.setText("yada yada")
button.allYoursettings....
.
.
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LinearLayout layout=(LinearLayout) findViewById(R.id.yourlayout);
layout.addView(button,p);
} while(havespaceleft);
位置不是我的问题。而且我不想为每一个祝福的屏幕尺寸设置不同的布局。随着市场上大量的设备,我无法保持它的最新状态。 – GuyNoir 2010-03-14 03:49:42
只有3种支持的屏幕尺寸:240x320,320x480和480x800。支持所有三个正确的答案并不困难:) – 2010-03-14 08:07:32
真的吗?我不知道。所有平板电脑都是480x800吗?那么特定设备的定制版本呢? – GuyNoir 2010-03-14 14:04:43