I created an object that extends android.view.View
, overriding draw()
and have it displaying on the screen. To put you in the picture, it is a display of digits to represent a game score. It's displaying correctly horizontally, however, it is taking up the full height开发者_StackOverflow社区 of the screen - pushing all other elements off the screen.
I've put layout_height="wrap_content"
in the xml, but it has no effect.
Does anyone know what I am doing wrong?
I've figured it out...
I was supposed to override onDraw() but that wasn't what caused the problem.
The main thing was, I needed to override onMeasure() like this:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(DIGIT_WIDTH * getNumberOfDigits(), DIGIT_HEIGHT);
}
DIGIT_WIDTH
and DIGIT_HEIGHT
are constants set to the dimensions of each digit image I used. getNumberOfDigits()
is just a getter for a custom property set from the xml attributes.
Hope that helps anyone else coming across this.
精彩评论