pep*_*-pa 8 java android position imageview
我想找到一个ImageView可绘制的真实位置.目前它返回0,因为它ImageView是通过相对布局调整大小的.但是图像视图中的可绘制内容并未填充相对布局中的所有内容.它填满整个宽度,并且垂直居中,顶部和底部有空的空间.
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout_main"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
>
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:src="@drawable/drawable"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
请参阅随附的屏幕截图.我正在寻找红色矩形的x和y以及它的宽度和高度.

Mar*_*ema 10
您必须等到视图被测量.你可以使用OnGlobalLayoutListener.
imageView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
int height = imageView.getHeight();
int width = imageView.getWidth();
int x = imageView.getLeft();
int y = imageView.getTop();
// don't forget to remove the listener to prevent being called again
// by future layout events:
imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
Run Code Online (Sandbox Code Playgroud)
因为您ImageView填充整个屏幕,它可能会将设备的宽度设置为宽度,窗口高度设置为高度.要获取图像内部的实际宽度和高度ImageView,请将RelativeLayout高度match_parent设置为并将高度设置ImageView为wrap_content,并将ImageView's 设置layout_gavity为center_vertical.
| 归档时间: |
|
| 查看次数: |
11321 次 |
| 最近记录: |