1d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang/* 2d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * Copyright (C) 2011 The Android Open Source Project 3d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * 4d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * you may not use this file except in compliance with the License. 6d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * You may obtain a copy of the License at 7d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * 8d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * http://www.apache.org/licenses/LICENSE-2.0 9d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * 10d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * Unless required by applicable law or agreed to in writing, software 11d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * distributed under the License is distributed on an "AS IS" BASIS, 12d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * See the License for the specific language governing permissions and 14d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang * limitations under the License. 15d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang */ 16d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang 17d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wangpackage com.android.camera.ui; 18d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang 19d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wangimport android.content.Context; 20d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wangimport android.util.AttributeSet; 21d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wangimport android.widget.GridView; 22d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang 23d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wangpublic class OneRowGridView extends GridView { 24ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li private int mInternalRequestedColumnWidth; 25d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang public OneRowGridView(Context context, AttributeSet attrs) { 26d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang super(context, attrs); 27d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang } 28d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang 29d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang @Override 30ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li public void setColumnWidth(int columnWidth) { 31ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li super.setColumnWidth(columnWidth); 32ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li if (mInternalRequestedColumnWidth != columnWidth) { 33ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li mInternalRequestedColumnWidth = columnWidth; 34ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li requestLayout(); 35ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li } 36ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li } 37ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li 38ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li @Override 39d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 40ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li if (mInternalRequestedColumnWidth != 0) { 41ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li int n = (getAdapter() == null) ? 0 : getAdapter().getCount(); 42ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li int size = mInternalRequestedColumnWidth * n; 43ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li widthMeasureSpec = MeasureSpec.makeMeasureSpec(size, MeasureSpec.EXACTLY); 44d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang } 45ceea1b9d40b80c5e24a12ae0374afc053dad09fbWu-cheng Li super.onMeasure(widthMeasureSpec, heightMeasureSpec); 46d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang } 47d33109730e0ab81230f84e2bd35599e8e24fc4baChung-yih Wang} 48