/*
* This source is part of the
* _____ ___ ____
* __ / / _ \/ _ | / __/___ _______ _
* / // / , _/ __ |/ _/_/ _ \/ __/ _ `/
* \___/_/|_/_/ |_/_/ (_)___/_/ \_, /
* /___/
* repository.
*
* Copyright (C) 2013 Benoit 'BoD' Lubek (BoD@JRAF.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jraf.android.util.ui;
import android.app.Activity;
import android.graphics.Rect;
import android.view.View;
public class UiUtil {
/**
* Returns the location of the view on the screen. The screen includes the 'notification area' (aka 'status bar').
*/
public static Rect getLocationInScreen(View v) {
int[] location = new int[2];
v.getLocationInWindow(location);
int x = location[0];
int y = location[1];
int width = v.getWidth();
int height = v.getHeight();
Rect rectPick = new Rect(x, y, x + width, y + height);
return rectPick;
}
/**
* Returns the location of the view on its window. The window does not include the 'notification area' (aka 'status bar').
*/
public static Rect getLocationInWindow(View v) {
// Height of status bar
Rect rect = new Rect();
((Activity) v.getContext()).getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
Rect res = getLocationInScreen(v);
res.offset(0, -statusBarHeight);
return res;
}
}