我只想计算一些在onNewIntend(Intent intent)方法中绘制的线位置。考虑到一些纬度/经度,我必须将它们放入自定义视图中。 对于这个计算 - 这是我的问题 - 我需要myView.getHeight()/ getWidth()方法为0,因为在onCreate(...)之前调用onNewIntend(...)。 :/
你有任何想法来解决这个问题吗?
我已经尝试过了......
@Override
public void onNewIntent(Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_RUN.equals(action)) {
// @Todo: Here should be checked if view is already inflated ...
setContentView(R.layout.collector);
int x = mGraphView.getMeasuredHeight();
...
......这也导致x = 0
非常感谢!
答案 0 :(得分:0)
在自定义视图中覆盖onMeasure,以便在父级视图请求自行测量时获取宽度和高度。您可以添加布局侦听器
http://developer.android.com/reference/android/view/View.OnLayoutChangeListener.html
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight));
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}