I'm struggling trying to rotate by 180 degrees, a ViewGroup which contains
buttons and checkboxes. Does anyone have a reliable way of doing this?
I've been able to get what's rendered to the screen to be rotated, but the
touch event coordinates seem off and the dynamic widget elements (the
highlighting and check marks for example, don't seem to be rotated-- at last
not correctly).
Is there a setting that I'm missing in the ViewGroup? Any other ideas?
I had to modify the originally posted code as follows:
public FlipLayout(Context context) {
super(context);
//mForward.setScale(1, 1);
//mForward.setRotate(0);
//mForward.invert(mReverse);
}
@Override
protected void dispatchDraw(Canvas canvas) { //dispatchDraw
/*
canvas.save();
canvas.setMatrix(mForward);
super.dispatchDraw(canvas);
canvas.restore();
*/
canvas.rotate(180, getWidth()/2, getHeight()/2);
mForward = canvas.getMatrix();
//mForward.invert(mReverse);
canvas.save();
canvas.setMatrix(mForward); //This is the matrix we need to use
for proper positioning of touch events
super.dispatchDraw(canvas);
canvas.restore();
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
final float[] temp = mTemp;
temp[0] = event.getX();
temp[1] = event.getY();
//mReverse.mapPoints(temp);
//event.setLocation(temp[0], temp[1]);
event.setLocation(getWidth()-temp[0], getHeight()-temp[1]);
return super.dispatchTouchEvent(event);
}
}
--
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