Наиболее эффективный способ реализации шаблона интерфейса Dashboard?

Я хочу сделать шаблон Dashboard. В настоящее время я делаю это для каждой кнопки домой:

<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" />

Мой вопрос: возможно ли сделать все это:

  1. Не оборачивать кнопку внутри другого макета (используя только 1 вид на кнопку)
  2. Максимизировать кликабельную область
  3. Правильно отцентрируйте значок и текст независимо от размера экрана

Большое спасибо.

1 ответ

Вот некоторый код, который я использую для программной панели:

@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;
}

Вместо этого вы могли бы использовать android:drawableTop в XML-файле, если бы вы могли создать панель мониторинга заранее.

Другие вопросы по тегам