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