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