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;
239038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.view.Gravity;
249038afb70d70650d87659bb252181ca8645670b8Chris Craikimport android.view.View;
259038afb70d70650d87659bb252181ca8645670b8Chris Craik
269038afb70d70650d87659bb252181ca8645670b8Chris Craikclass RoundedBitmapDrawable21 extends RoundedBitmapDrawable {
279038afb70d70650d87659bb252181ca8645670b8Chris Craik    protected RoundedBitmapDrawable21(Resources res, Bitmap bitmap) {
289038afb70d70650d87659bb252181ca8645670b8Chris Craik        super(res, bitmap);
299038afb70d70650d87659bb252181ca8645670b8Chris Craik    }
309038afb70d70650d87659bb252181ca8645670b8Chris Craik
319038afb70d70650d87659bb252181ca8645670b8Chris Craik    @Override
329038afb70d70650d87659bb252181ca8645670b8Chris Craik    public void getOutline(Outline outline) {
339038afb70d70650d87659bb252181ca8645670b8Chris Craik        updateDstRect();
349038afb70d70650d87659bb252181ca8645670b8Chris Craik        outline.setRoundRect(mDstRect, getCornerRadius());
359038afb70d70650d87659bb252181ca8645670b8Chris Craik    }
369038afb70d70650d87659bb252181ca8645670b8Chris Craik
379038afb70d70650d87659bb252181ca8645670b8Chris Craik    @Override
389038afb70d70650d87659bb252181ca8645670b8Chris Craik    public void setMipMap(boolean mipMap) {
399038afb70d70650d87659bb252181ca8645670b8Chris Craik        if (mBitmap != null) {
409038afb70d70650d87659bb252181ca8645670b8Chris Craik            mBitmap.setHasMipMap(mipMap);
419038afb70d70650d87659bb252181ca8645670b8Chris Craik            invalidateSelf();
429038afb70d70650d87659bb252181ca8645670b8Chris Craik        }
439038afb70d70650d87659bb252181ca8645670b8Chris Craik    }
449038afb70d70650d87659bb252181ca8645670b8Chris Craik
459038afb70d70650d87659bb252181ca8645670b8Chris Craik    @Override
469038afb70d70650d87659bb252181ca8645670b8Chris Craik    public boolean hasMipMap() {
479038afb70d70650d87659bb252181ca8645670b8Chris Craik        return mBitmap != null && mBitmap.hasMipMap();
489038afb70d70650d87659bb252181ca8645670b8Chris Craik    }
499038afb70d70650d87659bb252181ca8645670b8Chris Craik
509038afb70d70650d87659bb252181ca8645670b8Chris Craik    @Override
519038afb70d70650d87659bb252181ca8645670b8Chris Craik    void gravityCompatApply(int gravity, int bitmapWidth, int bitmapHeight,
529038afb70d70650d87659bb252181ca8645670b8Chris Craik            Rect bounds, Rect outRect) {
539038afb70d70650d87659bb252181ca8645670b8Chris Craik        Gravity.apply(gravity, bitmapWidth, bitmapHeight,
549038afb70d70650d87659bb252181ca8645670b8Chris Craik                bounds, outRect, View.LAYOUT_DIRECTION_LTR);
559038afb70d70650d87659bb252181ca8645670b8Chris Craik    }
569038afb70d70650d87659bb252181ca8645670b8Chris Craik}
57