Android Open Source - device-frame-generator Orientation

From Project

Back to project page device-frame-generator.


The source code is released under:

Apache License

If you think the Android project device-frame-generator listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

 * Copyright 2014 Prateek Srivastava (@f2prateek)
 */*from  w  w w  . j  a va 2  s . c o  m*/
 * 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
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.

package com.f2prateek.dfg.model;


public enum Orientation {
  LANDSCAPE("land"), PORTRAIT("port");

  String id;

  private Orientation(String id) { = id;

  public String getId() {
    return id;

   * Checks if screenshot matches the aspect ratio of the device.
  public static Orientation calculate(Bitmap screenshot, Device device) {
    Bounds screenshotBounds = Bounds.create(screenshot.getWidth(), screenshot.getHeight());
    return calculate(screenshotBounds, device.portSize());

   * Check if the aspect ratio of the given bounds matches the device.
  public static Orientation calculate(Bounds bounds, Device device) {
    return calculate(bounds, device.portSize());

   * Check if the aspect ratios of the bounds match.
   * @return {@link Orientation#PORTRAIT} if matched to portrait,
   * {@link Orientation#LANDSCAPE} if matched to landscape and null if no match
  private static Orientation calculate(Bounds lhs, Bounds rhs) {
    float aspect1 = (float) lhs.y() / (float) lhs.x();
    float aspect2 = (float) rhs.y() / (float) rhs.x();

    if (aspect1 == aspect2) {
      return Orientation.PORTRAIT;
    } else if (aspect1 == 1 / aspect2) {
      return Orientation.LANDSCAPE;

    return null;

Java Source Code List