Saturday, 20 August 2011

More on the example of custom widget view

Modify onDraw() of MyWidgetView.java on last exercise to add more funny text on the custom widget view.



More on the example of custom widget view



package com.exercise.AndroidWidgetView;



import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.RectF;

import android.util.AttributeSet;

import android.view.View;



public class MyWidgetView extends View {



final int MIN_WIDTH = 300;

final int MIN_HEIGHT = 150;

final int DEFAULT_COLOR = Color.WHITE;

int _color;



final int STROKE_WIDTH = 2;



public MyWidgetView(Context context) {

super(context);

// TODO Auto-generated constructor stub

init();

}



public MyWidgetView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

init();

}



public MyWidgetView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

// TODO Auto-generated constructor stub

init();

}



private void init(){

setMinimumWidth(MIN_WIDTH);

setMinimumHeight(MIN_HEIGHT);

_color = DEFAULT_COLOR;

}



@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

// TODO Auto-generated method stub

super.onMeasure(getSuggestedMinimumWidth(), getSuggestedMinimumHeight());

}



@Override

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub



Paint paint = new Paint();

paint.setColor(_color);

paint.setStrokeWidth(STROKE_WIDTH);

canvas.drawRect(5, 5, getWidth()-5, getHeight()-5, paint);



Path path;

path = new Path();

paint.setColor(Color.GRAY);

paint.setTextSize(25);

path.addArc(new RectF(25, 25, getWidth()-25, getHeight()-25), 180, 90);

canvas.drawTextOnPath("Hello", path, 0, 0, paint);

path = new Path();

path.addArc(new RectF(25, 25, getWidth()-25, getHeight()-25), 0, 90);

canvas.drawTextOnPath("Android-er", path, 0, 0, paint);

}



public void setColor(int color){

_color = color;

}



}






No comments:

Post a Comment