Добавление кнопок в FingerPaint Android API Sample1 - PullRequest
0 голосов
/ 17 июня 2011

Я новичок в Android.

Я играю с примером Android FingerPaint API.Я понял, как добавить кнопки и функции в меню, но как мне получить кнопки на реальном экране?

Можно ли разместить кнопки над поверхностью рисования?Или мне понадобится линейная (вертикальная) раскладка слева и размещение там кнопок.Либо было бы хорошо.

Помогите?Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Пример кода Android FingerPaint не использует макет; вместо этого он просто имеет подкласс View, называемый MyView, и затем Activity устанавливает его представление содержимого как экземпляр MyView.

Если вы хотите, чтобы на экране было больше одного View, вам нужно использовать какой-то макет. Вы можете использовать LinearLayout, если хотите, чтобы MyView для рисования был выше, ниже или сбоку кнопок; если вы хотите, чтобы кнопки находились сверху MyView, посмотрите на использование FrameLayout или RelativeLayout.

Затем можно определить макет в XML или создать его вручную в коде. Первый более гибкий и обслуживаемый, но будет несколько икоты.

Сначала создайте макет XML, показывающий, как вы хотите, чтобы ваши компоненты были размещены. Для этого примера мы назовем это finger_paint.xml. Убедитесь, что у вас где-то есть MyView, что-то вроде:

<view class="com.example.android.apis.graphics.FingerPaint$MyView"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">

Затем замените строку, которая выглядит как

setContentView(new MyView(this));

с

setContentView(R.layout.finger_paint);

Обратите внимание, что поскольку MyView (пока) не имеет надлежащего конструктора для создания экземпляра LayoutInflater, это пока не будет работать, поэтому давайте исправим это. Добавьте дополнительный импорт в верхней части файла:

import android.util.AttributeSet;

, а затем добавьте параметр AttributeSet в конструктор MyView:

public MyView(Context c, AttributeSet as) {
    super(c, as);

    // rest of constructor is same as in the sample
}

Вам также придется изменить MyView на static внутренний класс FingerPaint.

Вы можете найти документ Создание пользовательских компонентов и образец NotePad полезными, как только вы это выясните.

Удачи!

0 голосов
/ 17 июня 2011

Вы пытаетесь динамически позиционировать свои кнопки?

Если это так, вы можете использовать setLayoutParams для установки свойств макета кнопки.

...