ami*_*gal 5 android runtime view coordinates android-relativelayout
View我在将视图(我的类扩展)放置在特定位置时遇到问题。我设计了一款将屏幕视为网格的游戏。我从用户那里获取特定视图的 x 和 y 坐标(我有不同类型的视图)。
我的第一个任务是在其位置上设置正确的视图。我该怎么做?我用的RelativeLayout是屏幕。
PS我不想使用AbsoluteLayout参数,因为它被截断了。
这不是实现它的最佳方法,但它是一个解决方案......
创建一个扩展您的父级ViewGroup(例如RelativeLayout或其他一些ViewGroup)的类。在 override 中找到你自己的观点onFinishInflate()。
重写该onLayout()方法并在调用后手动布局您自己的视图super.onLayout()。
最后,每次你想刷新自己视图的位置时,只需调用requestLayout().
下面是一个示例:
private AwesomeView mMyView;
private int mYourDesiredX;
private int mYourDesiredY;
@Override
public void onFinishInflate() {
super.onFinishInflate();
if (mMyView == null) {
mMyView = (AwesomeView)findViewById();
}
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
mMyView.layout(mYourDesiredX,
mYourDesiredY,
mYourDesiredX + mMyView.getWidth(),
mYourDesiredY + mMyView.getHeight());
}
Run Code Online (Sandbox Code Playgroud)
但这不是一个有效的解决方案。
如果您正在制作游戏,请尝试SurfaceView甚至GLSurfaceView使用自己绘制对象Canvas。
| 归档时间: |
|
| 查看次数: |
10981 次 |
| 最近记录: |