我创建了一个扩展android.view.View
的对象,覆盖draw()
并将其显示在屏幕上。为了让你进入图片,它是一个数字显示,代表一个游戏分数。它正确地水平显示,然而,它占据了屏幕的整个高度 - 将所有其他元素推离屏幕。
我已将layout_height="wrap_content"
放入xml中,但它没有效果。
有谁知道我做错了什么?
答案 0 :(得分:5)
我已经明白了......
我应该覆盖onDraw(),但这不是导致问题的原因。
最重要的是,我需要像这样覆盖onMeasure():
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(DIGIT_WIDTH * getNumberOfDigits(), DIGIT_HEIGHT);
}
DIGIT_WIDTH
和DIGIT_HEIGHT
是设置为我使用的每个数字图像尺寸的常量。 getNumberOfDigits()
只是xml属性中自定义属性集的getter。
希望能帮助其他人遇到这个问题。