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