Самый эффективный способ реализовать шаблон Dashboard UI? - PullRequest
0 голосов
/ 07 мая 2011

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

<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 Ответ

0 голосов
/ 08 мая 2011

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

@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-файле, если вы могли заранее создать панель мониторинга.

...