我想做Dashboard pattern。我目前为每个主页按钮执行此操作:
<FrameLayout
android:layout_weight="1"
android:focusable="true"
android:onClick="onHomeButtonClicked"
android:background="@drawable/button_background">
<TextView
android:text="@string/button_text"
android:drawableTop="@drawable/button_icon"
android:layout_gravity="center"
android:gravity="center"
android:background="@android:color/transparent" />
</FrameLayout>
我将我的按钮包装在FrameLayout中的原因是我想:
我过去尝试过这样做,但放弃了,因为我无法找到一种独立于屏幕尺寸的文本和图标居中方式:
<Button
android:layout_weight="1"
android:background="@drawable/button_background"
android:text="@string/button_text"
android:onClick="onHomeButtonClicked"
android:drawableTop="@drawable/button_icon"
android:drawablePadding="DONT_KNOW_WHAT_TO_PUT_IN_HERE" />
我的问题:是否有可能做到这一切:
非常感谢。
答案 0 :(得分:0)
以下是我用于以编程方式构建仪表板的一些代码:
@Override public View getView(int position, View convertView,
ViewGroup parent) {
TextView v = (TextView) convertView;
if (v == null) {
v = new TextView(DashboardActivity.this);
v.setGravity(Gravity.CENTER);
}
v.setCompoundDrawablesWithIntrinsicBounds(0,
mIcons[position].drawableId, 0, 0);
v.setText(mIcons[position].labelId);
return v;
}
如果您可以预先构建仪表板,则可以在XML文件中使用android:drawableTop。