Android Open Source - android-gskbyte-utils Proportional Height Layout






From Project

Back to project page android-gskbyte-utils.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project android-gskbyte-utils 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

package org.gskbyte.view;
/* w  ww  .j av  a  2 s  .  c  om*/
import org.gskbyte.R;

import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;

public class ProportionalHeightLayout
extends FrameLayout
{

private float heightProportion = 1;

public ProportionalHeightLayout(Context context, AttributeSet attrs)
{
    super(context, attrs);
    initAttributes(context, attrs);
}

public ProportionalHeightLayout(Context context, AttributeSet attrs, int defStyle)
{
    super(context, attrs);
    initAttributes(context, attrs);
}

private void initAttributes(Context context, AttributeSet attrs)
{
    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.org_gskbyte_view_ProportionalHeightLayout);
    this.heightProportion = a.getFloat(R.styleable.org_gskbyte_view_ProportionalHeightLayout_heightProportion, 1);
    a.recycle();
}

public float getHeightProportion()
{ return heightProportion; }

public void setHeightProportion(float p)
{
    heightProportion = p;
    requestLayout();
}

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = (int)(width*heightProportion);
    setMeasuredDimension(width, height);
    for (int i = 0; i < getChildCount(); i++) {
        final View child = getChildAt(i);
        int wChildMeasureSpec = getChildMeasureSpec(widthMeasureSpec, 0, width);
        int hChildMeasureSpec = getChildMeasureSpec(heightMeasureSpec, 0, height);
        child.measure(wChildMeasureSpec, hChildMeasureSpec);
    }
}

@Override
public void addView(View child)
{
    if (getChildCount() > 0) {
        throw new IllegalStateException("ProportionalHeightLayout can host only one direct child");
    }

    super.addView(child);
}

@Override
public void addView(View child, int index)
{
    if (getChildCount() > 0) {
        throw new IllegalStateException("ProportionalHeightLayout can host only one direct child");
    }

    super.addView(child, index);
}

@Override
public void addView(View child, ViewGroup.LayoutParams params)
{
    if (getChildCount() > 0) {
        throw new IllegalStateException("ProportionalHeightLayout can host only one direct child");
    }

    super.addView(child, params);
}

@Override
public void addView(View child, int index, ViewGroup.LayoutParams params)
{
    if (getChildCount() > 0) {
        throw new IllegalStateException("ProportionalHeightLayout can host only one direct child");
    }

    super.addView(child, index, params);
}


}




Java Source Code List

com.woozzu.android.widget.IndexScroller.java
com.woozzu.android.widget.IndexableListView.java
org.gskbyte.FragmentWrapperActivity.java
org.gskbyte.animation.ExpandAnimation.java
org.gskbyte.bitmap.AbstractBitmapManager.java
org.gskbyte.bitmap.BitmapColorizer.java
org.gskbyte.bitmap.BitmapManager.java
org.gskbyte.bitmap.CachedBitmapColorizer.java
org.gskbyte.bitmap.IndexedBitmaps.java
org.gskbyte.bitmap.LRUBitmapCache.java
org.gskbyte.bitmap.LRUBitmapManager.java
org.gskbyte.bitmap.PrivateBitmapManager.java
org.gskbyte.bitmap.ReferencedBitmaps.java
org.gskbyte.collection.ArrayHashMap.java
org.gskbyte.collection.DoubleSparseArray.java
org.gskbyte.collection.ListHashMap.java
org.gskbyte.dialog.DownloadDialogFragment.java
org.gskbyte.dialog.LoadDialogFragment.java
org.gskbyte.dialog.OpenLinkDialogBuilder.java
org.gskbyte.dialog.PickerDialogFragment.java
org.gskbyte.download.DiskDownload.java
org.gskbyte.download.DownloadManager.java
org.gskbyte.download.Download.java
org.gskbyte.download.MemoryDownload.java
org.gskbyte.drawable.AutoBackgroundButtonDrawable.java
org.gskbyte.listener.IListenable.java
org.gskbyte.listener.ListenableNG.java
org.gskbyte.listener.Listenable.java
org.gskbyte.preferences.DialogSeekBarPreference.java
org.gskbyte.preferences.InlineSeekBarPreference.java
org.gskbyte.remote.AsyncURLRequest.java
org.gskbyte.remote.URLRequest.java
org.gskbyte.tasks.QueuedTaskExecutor.java
org.gskbyte.tasks.TaskStep.java
org.gskbyte.tasks.Task.java
org.gskbyte.ui.ArrayAdapterWithDefaultValue.java
org.gskbyte.ui.ListAdapter.java
org.gskbyte.ui.ColorDialog.ColorDialog.java
org.gskbyte.ui.ColorDialog.ColorPreference.java
org.gskbyte.ui.iconifiedMainMenuList.EntryView.java
org.gskbyte.ui.iconifiedMainMenuList.MainMenuAdapter.java
org.gskbyte.ui.iconifiedMainMenuList.MenuEntry.java
org.gskbyte.util.FrequentIntents.java
org.gskbyte.util.IOUtils.java
org.gskbyte.util.Logger.java
org.gskbyte.util.OpenFileHandlerFactory.java
org.gskbyte.util.OpenFileHandler.java
org.gskbyte.util.XmlUtils.java
org.gskbyte.view.AsyncImageView.java
org.gskbyte.view.AutoBackgroundButton.java
org.gskbyte.view.AutoBackgroundImageButton.java
org.gskbyte.view.AutoHeightImageView.java
org.gskbyte.view.ExpandedGridView.java
org.gskbyte.view.ExpandedListView.java
org.gskbyte.view.FontUtil.java
org.gskbyte.view.FontableButton.java
org.gskbyte.view.FontableCheckBox.java
org.gskbyte.view.FontableEditText.java
org.gskbyte.view.FontableTextView.java
org.gskbyte.view.FullWidthImageView.java
org.gskbyte.view.ProportionalHeightLayout.java
org.gskbyte.view.PullToRefreshListView.java
org.gskbyte.view.SquaredLayout.java
org.gskbyte.view.StepSeekBar.java
org.gskbyte.view.TextViewUtil.java
org.gskbyte.view.ViewUtils.java