19038afb70d70650d87659bb252181ca8645670b8Chris Craik/* 29038afb70d70650d87659bb252181ca8645670b8Chris Craik * Copyright (C) 2014 The Android Open Source Project 39038afb70d70650d87659bb252181ca8645670b8Chris Craik * 49038afb70d70650d87659bb252181ca8645670b8Chris Craik * Licensed under the Apache License, Version 2.0 (the "License"); 59038afb70d70650d87659bb252181ca8645670b8Chris Craik * you may not use this file except in compliance with the License. 69038afb70d70650d87659bb252181ca8645670b8Chris Craik * You may obtain a copy of the License at 79038afb70d70650d87659bb252181ca8645670b8Chris Craik * 89038afb70d70650d87659bb252181ca8645670b8Chris Craik * http://www.apache.org/licenses/LICENSE-2.0 99038afb70d70650d87659bb252181ca8645670b8Chris Craik * 109038afb70d70650d87659bb252181ca8645670b8Chris Craik * Unless required by applicable law or agreed to in writing, software 119038afb70d70650d87659bb252181ca8645670b8Chris Craik * distributed under the License is distributed on an "AS IS" BASIS, 129038afb70d70650d87659bb252181ca8645670b8Chris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139038afb70d70650d87659bb252181ca8645670b8Chris Craik * See the License for the specific language governing permissions and 149038afb70d70650d87659bb252181ca8645670b8Chris Craik * limitations under the License. 159038afb70d70650d87659bb252181ca8645670b8Chris Craik */ 169038afb70d70650d87659bb252181ca8645670b8Chris Craik 179038afb70d70650d87659bb252181ca8645670b8Chris Craikpackage android.support.v4.graphics.drawable; 189038afb70d70650d87659bb252181ca8645670b8Chris Craik 199038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.content.res.Resources; 209038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.graphics.Bitmap; 219038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.graphics.Outline; 229038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.graphics.Rect; 238f886fe8c7e23fe6ccb8734167c960c2ed3429c3Alan Viveretteimport android.support.annotation.RequiresApi; 249038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.view.Gravity; 259038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.view.View; 269038afb70d70650d87659bb252181ca8645670b8Chris Craik 278f886fe8c7e23fe6ccb8734167c960c2ed3429c3Alan Viverette@RequiresApi(21) 289038afb70d70650d87659bb252181ca8645670b8Chris Craikclass RoundedBitmapDrawable21 extends RoundedBitmapDrawable { 299038afb70d70650d87659bb252181ca8645670b8Chris Craik protected RoundedBitmapDrawable21(Resources res, Bitmap bitmap) { 309038afb70d70650d87659bb252181ca8645670b8Chris Craik super(res, bitmap); 319038afb70d70650d87659bb252181ca8645670b8Chris Craik } 329038afb70d70650d87659bb252181ca8645670b8Chris Craik 339038afb70d70650d87659bb252181ca8645670b8Chris Craik @Override 349038afb70d70650d87659bb252181ca8645670b8Chris Craik public void getOutline(Outline outline) { 359038afb70d70650d87659bb252181ca8645670b8Chris Craik updateDstRect(); 369038afb70d70650d87659bb252181ca8645670b8Chris Craik outline.setRoundRect(mDstRect, getCornerRadius()); 379038afb70d70650d87659bb252181ca8645670b8Chris Craik } 389038afb70d70650d87659bb252181ca8645670b8Chris Craik 399038afb70d70650d87659bb252181ca8645670b8Chris Craik @Override 409038afb70d70650d87659bb252181ca8645670b8Chris Craik public void setMipMap(boolean mipMap) { 419038afb70d70650d87659bb252181ca8645670b8Chris Craik if (mBitmap != null) { 429038afb70d70650d87659bb252181ca8645670b8Chris Craik mBitmap.setHasMipMap(mipMap); 439038afb70d70650d87659bb252181ca8645670b8Chris Craik invalidateSelf(); 449038afb70d70650d87659bb252181ca8645670b8Chris Craik } 459038afb70d70650d87659bb252181ca8645670b8Chris Craik } 469038afb70d70650d87659bb252181ca8645670b8Chris Craik 479038afb70d70650d87659bb252181ca8645670b8Chris Craik @Override 489038afb70d70650d87659bb252181ca8645670b8Chris Craik public boolean hasMipMap() { 499038afb70d70650d87659bb252181ca8645670b8Chris Craik return mBitmap != null && mBitmap.hasMipMap(); 509038afb70d70650d87659bb252181ca8645670b8Chris Craik } 519038afb70d70650d87659bb252181ca8645670b8Chris Craik 529038afb70d70650d87659bb252181ca8645670b8Chris Craik @Override 539038afb70d70650d87659bb252181ca8645670b8Chris Craik void gravityCompatApply(int gravity, int bitmapWidth, int bitmapHeight, 549038afb70d70650d87659bb252181ca8645670b8Chris Craik Rect bounds, Rect outRect) { 559038afb70d70650d87659bb252181ca8645670b8Chris Craik Gravity.apply(gravity, bitmapWidth, bitmapHeight, 569038afb70d70650d87659bb252181ca8645670b8Chris Craik bounds, outRect, View.LAYOUT_DIRECTION_LTR); 579038afb70d70650d87659bb252181ca8645670b8Chris Craik } 589038afb70d70650d87659bb252181ca8645670b8Chris Craik} 59