У статті розглядається використання власноруч створених View в xml-розмітці на платформі Android. Також буде приведено невеликий демонстраційний приклад.
Для початку створіть клас CustomView, який і буде власноруч створенним View. Успадкуйте його від View і перевизначте 3 конструктора:
public class CustomView extends View {
public CustomView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomView(Context context) {
super(context);
}
// ...
}
Щоб бачити відміну від стандартного View, перевизначите в цьому класі метод onDraw(). Наприклад, наступним способом:
@Override
protected void onDraw(Canvas canvas) {
canvas.save();
Paint paint = new Paint();
paint.setColor(Color.DKGRAY);
paint.setStyle(Style.FILL);
canvas.drawPaint(paint);
paint.setColor(Color.MAGENTA);
paint.setTextSize(30);
canvas.drawText("Custom View", 100, 40, paint);
super.onDraw(canvas);
canvas.restore();
}
Щоб скористатися CustomView в розмітці, оголосіть наступний блок:
<com.seostella.customviewsample.CustomView
android:layout_width="fill_parent"
android:layout_height="40dip"
android:text="" />
В результаті Ви побачите на екрані емулятора (мобільного телефону) наступне вікно: