gpt4 book ai didi

android - 更改 View 大小以匹配内容

转载 作者:行者123 更新时间:2023-11-30 01:48:20 25 4
gpt4 key购买 nike

我有一个扩展 View 的 token 类。我覆盖了 onDraw 方法来绘制两个矩形。之后我想更改 Token 对象的大小以匹配矩形的大小。为了测试,我添加了一个 onClickListener,它应该打印出“测试”

    layout = (RelativeLayout) findViewById(R.id.layout);
Paint p = new Paint();
Token a = new Token(0,0, Token.ONE, p, this);
layout.addView(a);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("test");
}
});

token 类:

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
tSize = canvas.getWidth()/Activity.SIZE;
paint.setColor(Color.BLACK);
r.set(0, 0, tSize, tSize);
canvas.drawRect(r, paint);
r.set(tSize, 0, 2 * tSize, tSize);
canvas.drawRect(r, paint);

}

到目前为止一切顺利。问题是它总是打印出“测试”,无论我在屏幕上按什么位置。我认为这是因为包含这两个矩形的 View 是整个屏幕的大小。所以我尝试了 LayoutParams:

setLayoutParams(new RelativeLayout.LayoutParams(tSize*2, tSize);

这导致矩形根本不显示(我认为它们变小了)。我尝试了一些其他数字:

setLayoutParams(new RelativeLayout.LayoutParams(600, 600);

这是有效的。 rects 出现并且 Listener 仅在 600x600 字段中工作。唯一的问题是矩形比我想要的要小。我的猜测是它们的大小与它们所在 View 的大小有关。

我如何实现我的 View 正好是 (tSize*2, tSize) 并填充了矩形?

最佳答案

您可以覆盖 onMeasure 方法来更改 GameTokenView 的大小。

关于android - 更改 View 大小以匹配内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com