只是一个关于你将如何实施这个的快速问题。我希望屏幕底部有按钮,但如果屏幕尺寸较大,则会添加更多按钮。
例如,在小屏幕尺寸下,底部可能有 4-5 个按钮,但如果您在平板电脑或类似设备上运行它,则可能有 20 个按钮。
有什么建议么?它也不能滚动,它只需要用按钮动态填充布局。
谢谢。
只是一个关于你将如何实施这个的快速问题。我希望屏幕底部有按钮,但如果屏幕尺寸较大,则会添加更多按钮。
例如,在小屏幕尺寸下,底部可能有 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 (例如),直到你用完屏幕空间。
如果您知道按钮的大小(以像素为单位),您可以使用 DisplayMetrics 来获取屏幕的尺寸,然后计算有多少按钮适合您的分配空间。
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels 以像素为单位给出绝对高度 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);