172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/* 272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 Esmertec AG. 372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * you may not use this file except in compliance with the License. 772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * You may obtain a copy of the License at 872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 1172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * See the License for the specific language governing permissions and 1572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * limitations under the License. 1672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 1772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 1872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpackage com.android.mms.layout; 1972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 2037880013315d8b7abefd9081b2c36b060083d6faTom Taylorimport android.content.Context; 2172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.util.Log; 2272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 2372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpublic class HVGALayoutParameters implements LayoutParameters { 2472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private static final String TAG = "HVGALayoutParameters"; 2572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private static final boolean DEBUG = false; 26150c4179995cc0a75f934ef194372f9295957ca2Joe Onorato private static final boolean LOCAL_LOGV = false; 2772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 2872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private int mType = -1; 2972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 3037880013315d8b7abefd9081b2c36b060083d6faTom Taylor private static int mImageHeightLandscape; 3137880013315d8b7abefd9081b2c36b060083d6faTom Taylor private static int mTextHeightLandscape; 3237880013315d8b7abefd9081b2c36b060083d6faTom Taylor private static int mImageHeightPortrait; 3337880013315d8b7abefd9081b2c36b060083d6faTom Taylor private static int mTextHeightPortrait; 3437880013315d8b7abefd9081b2c36b060083d6faTom Taylor private static int mMaxHeight; 3537880013315d8b7abefd9081b2c36b060083d6faTom Taylor private static int mMaxWidth; 3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 3737880013315d8b7abefd9081b2c36b060083d6faTom Taylor public HVGALayoutParameters(Context context, int type) { 3872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if ((type != HVGA_LANDSCAPE) && (type != HVGA_PORTRAIT)) { 3972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project throw new IllegalArgumentException( 4072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project "Bad layout type detected: " + type); 4172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 4272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 4372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (LOCAL_LOGV) { 4472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project Log.v(TAG, "HVGALayoutParameters.<init>(" + type + ")."); 4572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 4672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mType = type; 4737880013315d8b7abefd9081b2c36b060083d6faTom Taylor 4837880013315d8b7abefd9081b2c36b060083d6faTom Taylor float scale = context.getResources().getDisplayMetrics().density; 4937880013315d8b7abefd9081b2c36b060083d6faTom Taylor mMaxWidth = (int) (context.getResources().getConfiguration().screenWidthDp * scale + 0.5f); 5037880013315d8b7abefd9081b2c36b060083d6faTom Taylor mMaxHeight = 5137880013315d8b7abefd9081b2c36b060083d6faTom Taylor (int) (context.getResources().getConfiguration().screenHeightDp * scale + 0.5f); 5237880013315d8b7abefd9081b2c36b060083d6faTom Taylor 5337880013315d8b7abefd9081b2c36b060083d6faTom Taylor mImageHeightLandscape = (int) (mMaxHeight * .90f); 5437880013315d8b7abefd9081b2c36b060083d6faTom Taylor mTextHeightLandscape = (int) (mMaxHeight * .10f); 5537880013315d8b7abefd9081b2c36b060083d6faTom Taylor mImageHeightPortrait = (int) (mMaxWidth * .90f); 5637880013315d8b7abefd9081b2c36b060083d6faTom Taylor mTextHeightPortrait = (int) (mMaxWidth * .10f); 5737880013315d8b7abefd9081b2c36b060083d6faTom Taylor 5837880013315d8b7abefd9081b2c36b060083d6faTom Taylor if (LOCAL_LOGV) { 5937880013315d8b7abefd9081b2c36b060083d6faTom Taylor Log.v(TAG, "HVGALayoutParameters mMaxWidth: " + mMaxWidth + 6037880013315d8b7abefd9081b2c36b060083d6faTom Taylor " mMaxHeight: " + mMaxHeight + 6137880013315d8b7abefd9081b2c36b060083d6faTom Taylor " mImageHeightLandscape: " + mImageHeightLandscape + 6237880013315d8b7abefd9081b2c36b060083d6faTom Taylor " mTextHeightLandscape: " + mTextHeightLandscape + 6337880013315d8b7abefd9081b2c36b060083d6faTom Taylor " mImageHeightPortrait: " + mImageHeightPortrait + 6437880013315d8b7abefd9081b2c36b060083d6faTom Taylor " mTextHeightPortrait: " + mTextHeightPortrait); 6537880013315d8b7abefd9081b2c36b060083d6faTom Taylor } 6637880013315d8b7abefd9081b2c36b060083d6faTom Taylor 6772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 6872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 6972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public int getWidth() { 7037880013315d8b7abefd9081b2c36b060083d6faTom Taylor return mType == HVGA_LANDSCAPE ? mMaxWidth 7137880013315d8b7abefd9081b2c36b060083d6faTom Taylor : mMaxHeight; 7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 7372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public int getHeight() { 7537880013315d8b7abefd9081b2c36b060083d6faTom Taylor return mType == HVGA_LANDSCAPE ? mMaxHeight 7637880013315d8b7abefd9081b2c36b060083d6faTom Taylor : mMaxWidth; 7772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 7872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public int getImageHeight() { 8037880013315d8b7abefd9081b2c36b060083d6faTom Taylor return mType == HVGA_LANDSCAPE ? mImageHeightLandscape 8137880013315d8b7abefd9081b2c36b060083d6faTom Taylor : mImageHeightPortrait; 8272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 8372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 8472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public int getTextHeight() { 8537880013315d8b7abefd9081b2c36b060083d6faTom Taylor return mType == HVGA_LANDSCAPE ? mTextHeightLandscape 8637880013315d8b7abefd9081b2c36b060083d6faTom Taylor : mTextHeightPortrait; 8772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 8872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 8972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public int getType() { 9072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return mType; 9172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 9272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 9372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public String getTypeDescription() { 9472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return mType == HVGA_LANDSCAPE ? "HVGA-L" : "HVGA-P"; 9572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 9672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project} 97