VectorDrawableCommon.java revision ebbed34a78fa6519de6c2848e68b97f9d3b98e08
1968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu/* 2968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * Copyright (C) 2015 The Android Open Source Project 3968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * 4968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * in compliance with the License. You may obtain a copy of the License at 6968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * 7968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * http://www.apache.org/licenses/LICENSE-2.0 8968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * 9968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * Unless required by applicable law or agreed to in writing, software distributed under the License 10968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * or implied. See the License for the specific language governing permissions and limitations under 12968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * the License. 13968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu */ 14968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 15968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhupackage android.support.graphics.drawable; 16968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 17968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.annotation.TargetApi; 18968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.content.res.Resources; 19968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.content.res.TypedArray; 20968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.graphics.ColorFilter; 21968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.graphics.Outline; 22968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.graphics.PorterDuff; 23968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.graphics.Rect; 24968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.graphics.Region; 25968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.graphics.drawable.Drawable; 26968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.os.Build; 27ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhuimport android.support.v4.graphics.drawable.DrawableCompat; 28968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.util.AttributeSet; 29968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuimport android.view.View; 30968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 31968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu/** 32968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * Internal common delegation shared by VectorDrawableCompat and AnimatedVectorDrawableCompat 33968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu */ 34968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu@TargetApi(Build.VERSION_CODES.LOLLIPOP) 35968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhuabstract class VectorDrawableCommon extends Drawable { 36968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu /** 37968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * Obtains styled attributes from the theme, if available, or unstyled 38968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu * resources if the theme is null. 39968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu */ 40968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu static TypedArray obtainAttributes( 41968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu Resources res, Resources.Theme theme, AttributeSet set, int[] attrs) { 42968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (theme == null) { 43968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return res.obtainAttributes(set, attrs); 44968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 45968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return theme.obtainStyledAttributes(set, attrs, 0, 0); 46968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 47968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 48968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu // Drawable delegation for Lollipop and above. 49968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu Drawable mDelegateDrawable; 50968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 51968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 52968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void setColorFilter(int color, PorterDuff.Mode mode) { 53968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 54968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu mDelegateDrawable.setColorFilter(color, mode); 55968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 56968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 57968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu super.setColorFilter(color, mode); 58968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 59968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 60968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 61968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public ColorFilter getColorFilter() { 62968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 63ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu return DrawableCompat.getColorFilter(mDelegateDrawable); 64968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 65ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu return null; 66968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 67968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 68968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 69968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu protected boolean onLevelChange(int level) { 70968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 71968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.setLevel(level); 72968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 73968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.onLevelChange(level); 74968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 75968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 76968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 77968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu protected void onBoundsChange(Rect bounds) { 78968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 79968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu mDelegateDrawable.setBounds(bounds); 80968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 81968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 82968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu super.onBoundsChange(bounds); 83968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 84968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 85968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 86968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void setHotspot(float x, float y) { 87968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu // API >= 21 only. 88968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 89ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.setHotspot(mDelegateDrawable, x, y); 90968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 91968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 92968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 93968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 94968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 95968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void setHotspotBounds(int left, int top, int right, int bottom) { 96968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 97ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.setHotspotBounds(mDelegateDrawable, left, top, right, bottom); 98968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 99968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 100968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 101968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 102968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 103968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void setFilterBitmap(boolean filter) { 104968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 105968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu mDelegateDrawable.setFilterBitmap(filter); 106968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 107968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 108968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 109968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 110968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 111968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void jumpToCurrentState() { 112968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 113ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.jumpToCurrentState(mDelegateDrawable); 114968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 115968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 116968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 117968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 118968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 119968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void setAutoMirrored(boolean mirrored) { 120968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu // API >= 21 only. 121968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 122ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.setAutoMirrored(mDelegateDrawable, mirrored); 123ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu 124968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 125968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 126968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 127968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 128968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 129968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public boolean isAutoMirrored() { 130968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu // API >= 21 only. 131968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 132ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.isAutoMirrored(mDelegateDrawable); 133968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 134968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return false; 135968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 136968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 137968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 138968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void applyTheme(Resources.Theme t) { 139968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu // API >= 21 only. 140968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 141ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.applyTheme(mDelegateDrawable, t); 142968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 143968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 144968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 145968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 146968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 147968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public int getLayoutDirection() { 148ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu if (mDelegateDrawable != null) { 149ebbed34a78fa6519de6c2848e68b97f9d3b98e08Tenghui Zhu DrawableCompat.getLayoutDirection(mDelegateDrawable); 150968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 151968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return View.LAYOUT_DIRECTION_LTR; 152968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 153968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 154968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 155968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void clearColorFilter() { 156968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 157968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu mDelegateDrawable.clearColorFilter(); 158968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 159968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 160968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu super.clearColorFilter(); 161968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 162968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 163968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 164968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public Drawable getCurrent() { 165968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 166968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.getCurrent(); 167968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 168968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.getCurrent(); 169968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 170968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 171968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 172968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public int getMinimumWidth() { 173968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 174968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.getMinimumWidth(); 175968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 176968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.getMinimumWidth(); 177968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 178968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 179968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 180968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public int getMinimumHeight() { 181968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 182968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.getMinimumHeight(); 183968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 184968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.getMinimumHeight(); 185968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 186968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 187968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 188968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public boolean getPadding(Rect padding) { 189968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 190968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.getPadding(padding); 191968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 192968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.getPadding(padding); 193968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 194968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 195968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 196968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public int[] getState() { 197968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 198968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.getState(); 199968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 200968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.getState(); 201968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 202968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 203968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 204968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 205968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public Region getTransparentRegion() { 206968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 207968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.getTransparentRegion(); 208968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 209968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.getTransparentRegion(); 210968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 211968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 212968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 213968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public void setChangingConfigurations(int configs) { 214968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 215968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu mDelegateDrawable.setChangingConfigurations(configs); 216968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return; 217968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 218968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu super.setChangingConfigurations(configs); 219968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 220968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu 221968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu @Override 222968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu public boolean setState(int[] stateSet) { 223968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu if (mDelegateDrawable != null) { 224968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return mDelegateDrawable.setState(stateSet); 225968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 226968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu return super.setState(stateSet); 227968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu } 228968dcfaff0c0a9e85ff4db2a985188f6996f5dadTeng-Hui Zhu} 229