如何获取在 Android 中添加我的视图的容器的宽度
Posted
技术标签:
【中文标题】如何获取在 Android 中添加我的视图的容器的宽度【英文标题】:How to get width of the container in which my view is added in Android 【发布时间】:2011-02-11 11:36:02 【问题描述】:我在LinearLayout
中有一个ImageView
对象。我正在为ImageView
设置一个动画,它将图像视图从点x 移动到y。现在,起点应该是父容器的右上角。我的问题是,我如何获得视图所在容器的尺寸。我在视图层次结构中看不到 view.getParent().getWidth()
类型的方法。
【问题讨论】:
【参考方案1】:试试这个:
View parent = (View)view.getParent();
int width = parent.getWidth();
【讨论】:
提前调用getWidth,尚未绘制。您必须添加 ViewTreeObserver.OnGlobalLayoutListener 以在绘制时进行监听【参考方案2】:也许你不需要,因为你可以使用 % 来制作这样的动画:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="150" />
【讨论】:
嗯...我差点忘了这个选项。我认为这会对我有所帮助。谢谢。【参考方案3】:在父视图中添加视图后调用,否则您会出现此异常 java.lang.NullPointerException:尝试调用虚拟方法'int android.view.View.getHeight()'
int height = ((View) view.getParent()).getHeight();
int width = ((View) view.getParent()).getWidth();
int mHeight = ((View) view.getParent()).getMeasuredHeight();
int mWidth = ((View) view.getParent()).getMeasuredWidth();
【讨论】:
以上是关于如何获取在 Android 中添加我的视图的容器的宽度的主要内容,如果未能解决你的问题,请参考以下文章
android如何使用listview而不是scrollview