blob: 09ebeed543e18cb677a5b247518a0de4ccac6466 [file] [log] [blame]
/*
* Copyright (C) 2006 The Android Open Source Project
*
* 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 android.view;
import android.util.DisplayMetrics;
public class Display
{
/**
* Specify the default Display
*/
public static final int DEFAULT_DISPLAY = 0;
/**
* Use the WindowManager interface to create a Display object.
* Display gives you access to some information about a particular display
* connected to the device.
*/
Display(int display) {
// initalize the statics when this class is first instansiated. This is
// done here instead of in the static block because Zygote
synchronized (mStaticInit) {
if (!mInitialized) {
nativeClassInit();
mInitialized = true;
}
}
mDisplay = display;
init(display);
}
/**
* @return index of this display.
*/
public int getDisplayId() {
return mDisplay;
}
/**
* @return the number of displays connected to the device.
*/
native static int getDisplayCount();
/**
* @return width of this display in pixels.
*/
native public int getWidth();
/**
* @return height of this display in pixels.
*/
native public int getHeight();
/**
* @return orientation of this display.
*/
native public int getOrientation();
/**
* @return pixel format of this display.
*/
public int getPixelFormat() {
return mPixelFormat;
}
/**
* @return refresh rate of this display in frames per second.
*/
public float getRefreshRate() {
return mRefreshRate;
}
/**
* Initialize a DisplayMetrics object from this display's data.
*
* @param outMetrics
*/
public void getMetrics(DisplayMetrics outMetrics) {
outMetrics.widthPixels = getWidth();
outMetrics.heightPixels = getHeight();
outMetrics.density = mDensity;
outMetrics.scaledDensity= outMetrics.density;
outMetrics.xdpi = mDpiX;
outMetrics.ydpi = mDpiY;
}
/*
* We use a class initializer to allow the native code to cache some
* field offsets.
*/
native private static void nativeClassInit();
private native void init(int display);
private int mDisplay;
// Following fields are initialized from native code
private int mPixelFormat;
private float mRefreshRate;
private float mDensity;
private float mDpiX;
private float mDpiY;
private static final Object mStaticInit = new Object();
private static boolean mInitialized = false;
}