1 package com.android.gallery3d.filtershow;
3 import android.content.Context;
4 import android.content.res.Resources;
5 import android.content.res.TypedArray;
6 import android.util.AttributeSet;
7 import android.util.TypedValue;
8 import android.view.View.MeasureSpec;
9 import android.widget.LinearLayout;
11 import com.android.gallery3d.R;
13 public class CenteredLinearLayout extends LinearLayout {
14 private final int mMaxWidth;
16 public CenteredLinearLayout(Context context, AttributeSet attrs) {
17 super(context, attrs);
18 TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.CenteredLinearLayout);
19 mMaxWidth = a.getDimensionPixelSize(R.styleable.CenteredLinearLayout_max_width, 0);
23 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
24 int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
25 int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
26 Resources r = getContext().getResources();
27 float value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, parentWidth,
28 r.getDisplayMetrics());
29 if (mMaxWidth > 0 && parentWidth > mMaxWidth) {
30 int measureMode = MeasureSpec.getMode(widthMeasureSpec);
31 widthMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxWidth, measureMode);
33 super.onMeasure(widthMeasureSpec, heightMeasureSpec);