181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka/* 281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * Copyright (C) 2011 The Android Open Source Project 381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * 481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * Licensed under the Apache License, Version 2.0 (the "License"); 581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * you may not use this file except in compliance with the License. 681efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * You may obtain a copy of the License at 781efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * 881efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * http://www.apache.org/licenses/LICENSE-2.0 981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * 1081efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * Unless required by applicable law or agreed to in writing, software 1181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * distributed under the License is distributed on an "AS IS" BASIS, 1281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * See the License for the specific language governing permissions and 1481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka * limitations under the License. 1581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka */ 1681efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka 1781efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkapackage com.android.launcher2; 1881efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka 1981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaimport android.content.Context; 20dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurkaimport android.graphics.Canvas; 2181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaimport android.util.AttributeSet; 2281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaimport android.widget.ImageView; 2381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka 2481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurkaclass PagedViewWidgetImageView extends ImageView { 2581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka public boolean mAllowRequestLayout = true; 2681efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka 2781efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka public PagedViewWidgetImageView(Context context, AttributeSet attrs) { 2881efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka super(context, attrs); 2981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka } 3081efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka 3181efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka public void requestLayout() { 3281efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka if (mAllowRequestLayout) { 3381efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka super.requestLayout(); 3481efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka } 3581efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka } 36dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka 37dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka @Override 38dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka protected void onDraw(Canvas canvas) { 39dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka canvas.save(); 409bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka canvas.clipRect(getScrollX() + getPaddingLeft(), 419bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka getScrollY() + getPaddingTop(), 429bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka getScrollX() + getRight() - getLeft() - getPaddingRight(), 439bc8eba3338455c5d915055e8ba044981c512dfaMichael Jurka getScrollY() + getBottom() - getTop() - getPaddingBottom()); 44dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka 45dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka super.onDraw(canvas); 46dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka canvas.restore(); 47dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka 48dac8591072959f69eaa8c6319311fd111ae75db6Michael Jurka } 4981efbad05e0ce69b06d7323749ef2e200b84b98eMichael Jurka} 50