I am using a class "BoardView" which extends to View class.In onDraw()
I want to positioned two buttons with image on them.
I searched on forum,but not clearly got the answer.Right now I am able
to draw a button on canvas but can't positioned it on desire
location.This is code I am using.
public BoardView(Context context) {
Bitmap image
=((BitmapDrawable)imageDrawable).getBitmap();
Button undo_Btn = new Button(context);
undo_Btn.measure(150, 75); //size of view
int width = undo_Btn.getMeasuredWidth();
int height = undo_Btn.getMeasuredHeight();
int left = 100;
int top = 100;
undo_Btn.layout(left, top, left + width, top + height);
//
position relative to parent
undo_Btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.icon));
undo_Btn.setVisibility(VISIBLE);
undo_Btn.setId(10);
undo_Btn.setPadding(50,250,0,0); //Not getting this
padding;no
effect of this
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Drawable board =
getResources().getDrawable(R.drawable.board);
Bitmap bitmap2 = ((BitmapDrawable)board).getBitmap();
canvas.drawRect(0, 0, getWidth(), getHeight(), new
Paint());
canvas.drawBitmap(bitmap2, 0, 0, new Paint());
//Here drawing the button on canvas,it shows on top left
corner not on desired location
undo_Btn.draw(canvas);
invalidate();
}
@Override
protected void onMeasure(int widthMeasureSpec, int
heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(measureWidth(widthMeasureSpec),
measureHeight(heightMeasureSpec));
}
private int measureWidth(int measureSpec){
int preferred = image.getWidth()*3 ;
return getMeasurement(measureSpec, preferred);
}
private int measureHeight(int measureSpec){
int preferred = image.getHeight()+20 ;
return getMeasurement(measureSpec, preferred);
}
private int getMeasurement(int measureSpec, int preferred){
// System.out.println("in getMeasurement");
// System.out.println("measureSpec:->"+measureSpec +
"preferred:->"
+ preferred);
int specSize = MeasureSpec.getSize(measureSpec);
// System.out.println("specSize:->"+specSize);
int measurement = 0;
switch(MeasureSpec.getMode(measureSpec))
{
case MeasureSpec.EXACTLY:
// This means the width of this view has been
given.
measurement = specSize;
break;
case MeasureSpec.AT_MOST:
// Take the minimum of the preferred size and what
// we were told to be.
measurement = Math.min(preferred, specSize);
break;
default:
measurement = preferred;
break;
}
return measurement;
}
}
How to place it on desired position on canvas.When we use Button
undo_Btn = new Button(context); does this button require any extra to
set its dimension so that it will get proper view when screen
dimension changes.?
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en