Android Open Source - android-gskbyte-utils Auto Height Image View 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 w w . j a v a 2 s . c o m * /
import org.gskbyte.R;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
/**
* ImageView that computes its height depending on the given width.
* */
public class AutoHeightImageView
extends ImageView
{
protected float minHeightProportion, maxHeightProportion;
public AutoHeightImageView(Context context, AttributeSet attrs)
{
super (context, attrs);
initAttributes(context, attrs);
}
public AutoHeightImageView(Context context, AttributeSet attrs, int defStyle)
{
super (context, attrs, defStyle);
initAttributes(context, attrs);
}
private void initAttributes(Context context, AttributeSet attrs)
{
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.org_gskbyte_view_AutoHeightImageView);
this.minHeightProportion = a.getFloat(R.styleable.org_gskbyte_view_AutoHeightImageView_minHeightProportion, Float.MIN_VALUE);
this.maxHeightProportion = a.getFloat(R.styleable.org_gskbyte_view_AutoHeightImageView_maxHeightProportion, Float.MAX_VALUE);
a.recycle();
}
public float getMinHeightProportion()
{ return minHeightProportion; }
public float getMaxHeightProportion()
{ return maxHeightProportion; }
public void setMinHeightProportion(float minHeightProportion)
{
this.minHeightProportion = minHeightProportion;
requestLayout();
}
public void setMaxHeightProportion(float maxHeightProportion)
{
this.maxHeightProportion = maxHeightProportion;
requestLayout();
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
final Drawable drawable = getDrawable();
int width = MeasureSpec.getSize(widthMeasureSpec);
if (drawable == null || width == 0) {
setMeasuredDimension(200, 200);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
} else {
float bitmapWidth = getDrawable().getIntrinsicWidth();
float bitmapHeight = getDrawable().getIntrinsicHeight();
float proportion = Math.min(bitmapHeight / bitmapWidth, this.maxHeightProportion);
proportion = Math.max(proportion, this.minHeightProportion);
int height = (int ) (width*proportion);
setMeasuredDimension(width, height);
}
}
}
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