I am trying to work with the android example provided on the developers page. He gives two ways to draw on canvas. The first way is to use the CustomDrawableView class, which looks like this:
public class CustomDrawableView extends View {
private ShapeDrawable mDrawable;
public CustomDrawableView(Context context) {
super(context);
int x = 10;
int y = 10;
int width = 300;
int height = 50;
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xff74AC23);
mDrawable.setBounds(x, y, x + width, y + height);
}
protected void onDraw(Canvas canvas) {
mDrawable.draw(canvas);
}
}
Then it is called by the main class:
CustomDrawableView mCustomDrawableView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCustomDrawableView = new CustomDrawableView(this);
setContentView(mCustomDrawableView);
}
But then the lesson says:
If you want to draw this custom drawing from an XML layout, and not from an Activity, the CustomDrawable class must override the View (Context, AttributeSet) constructor, which is called when creating the View instance through inflation from XML. Then add the CustomDrawable element to the XML, for example:
<com.example.shapedrawable.CustomDrawableView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
I successfully got the first example to run, but I don't know what my code looks like if I want to accept the second option. Presumably, I start with @Override View, but then got stuck.
, , - , , , .