1abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong/* 2abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * Copyright (C) 2011 The Android Open Source Project 3abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * 4abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * Licensed under the Apache License, Version 2.0 (the "License"); 5abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * you may not use this file except in compliance with the License. 6abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * You may obtain a copy of the License at 7abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * 8abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * http://www.apache.org/licenses/LICENSE-2.0 9abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * 10abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * Unless required by applicable law or agreed to in writing, software 11abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * distributed under the License is distributed on an "AS IS" BASIS, 12abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * See the License for the specific language governing permissions and 14abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong * limitations under the License. 15abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong */ 16abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 17abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongpackage com.android.camera.ui; 18abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 19abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.content.Context; 20abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.util.AttributeSet; 21abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.view.View; 22abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongimport android.view.ViewGroup; 23abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 24abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong// A layout designed to make the children same size as the first child. 25abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kongpublic class StackLayout extends ViewGroup { 26abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong private static final String TAG = "StackLayout"; 27abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 28abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong public StackLayout(Context context, AttributeSet attrs) { 29abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong super(context, attrs); 30abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong } 31abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 32abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong @Override 33abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 34abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong final int count = getChildCount(); 35abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 36abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong // Measure only the first child. 37abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong final View child = getChildAt(0); 38abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong measureChild(child, widthMeasureSpec, heightMeasureSpec); 39abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 40abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong // Ignore the paddings. 41abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong int width = child.getMeasuredWidth(); 42abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong int height = child.getMeasuredHeight(); 43abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 44abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong setMeasuredDimension(resolveSize(width, widthMeasureSpec), 45abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong resolveSize(height, heightMeasureSpec)); 46abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong } 47abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 48abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong @Override 49abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong protected void onLayout(boolean changed, int l, int t, int r, int b) { 50abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong final int count = super.getChildCount(); 51abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong 52abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong for (int i = 0; i < count; i++) { 53abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong final View child = getChildAt(i); 54abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong if (child.getVisibility() != View.GONE) { 55abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong child.layout(0, 0, r - l, b - t); 56abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong } 57abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong } 58abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong } 59abd82edfae4ab1a39fe7000dd22b7cab26e9fdafAngus Kong} 60