java调视图_java – 根据屏幕大小调整自定义视图的大小

实际上,我通过一些基于蒂姆所说的实验来完成这一切.我离开了“onMeasure()”,只为它编写了这段代码:

@Override

public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

{

// Call the super class.

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

// Set the dimensions of this view.

this.setMeasuredDimension((int) width, (int) width);

}

宽度是全局浮点数.宽度来自哪里?我从视图中写入的这个方法派生宽度来调整大小:

public void initSize(float size)

{

width = size;

this.invalidate();

}

我调用“invalidate()”来重绘视图.有些东西必须调用这个方法,所以我在活动中这样做.首先,我使用以下代码获取Activity中的屏幕大小,而不是View:

Display thisDisplay = this.getWindowManager().getDefaultDisplay();

Point desiredSize = new Point();

display.getSize(desiredSize);

int width = size.x;

您曾经能够在“thisDisplay”上调用名为“getWidth()”的方法,但此方法现在已经过折旧,因此您应该使用“getSize()”.最后,在初始化构造函数之后,调用“initSize()”方法:

nameBox = (InfoBoxView) findViewById(R.id.nameBox);

nameBox.initSize(width);

现在,所有视图的大小都相同.我不知道这是否是最好的方法,但它现在有效,我想我会在这里发布,所以每个人都知道. 🙂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值