ThemableWidget.java revision dc3d0176993003aa949f0baf61327f1096f453d8
1e7b146fb3bdca62a0d5ecc06dbf3348e5a4fe757Guido van Rossumpackage com.android.layoutlib.test.myapplication;
21e8fba729e218bc4b2e1ed3104f8cdbd88fdb21aBrett Cannon
31e8fba729e218bc4b2e1ed3104f8cdbd88fdb21aBrett Cannonimport android.content.Context;
41e8fba729e218bc4b2e1ed3104f8cdbd88fdb21aBrett Cannonimport android.util.AttributeSet;
51e8fba729e218bc4b2e1ed3104f8cdbd88fdb21aBrett Cannonimport android.view.ContextThemeWrapper;
61e8fba729e218bc4b2e1ed3104f8cdbd88fdb21aBrett Cannonimport android.view.LayoutInflater;
7217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossumimport android.widget.FrameLayout;
8217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum
9217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossumpublic class ThemableWidget extends FrameLayout {
109b8d801c37fa29420848ebc1b50c601893b36287Fred Drake    public ThemableWidget(Context context) {
11495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters        super(context);
12217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum
13217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum        init();
14d482e8ad4a11c7cbe9374f449da036ad21a5ee55Guido van Rossum    }
15495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters
16495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    public ThemableWidget(Context context, AttributeSet attrs) {
17217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum        super(context, attrs);
18217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum
19217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum        init();
20495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    }
21495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters
22495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    public ThemableWidget(Context context, AttributeSet attrs, int defStyleAttr) {
23495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters        super(context, attrs, defStyleAttr);
24495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters
25495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters        init();
26495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    }
27495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters
28495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    public ThemableWidget(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
29495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters        super(context, attrs, defStyleAttr, defStyleRes);
30495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters
31495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters        init();
32495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    }
33495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters
34495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    private void init() {
35495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters        ContextThemeWrapper context = new ContextThemeWrapper(getContext(), getContext().getTheme());
36217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum        context.setTheme(R.style.ThemableWidgetStyle);
37217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum
38217a5fa3c33ae58c1fe420f94eeb7e806961c3c1Guido van Rossum        LayoutInflater.from(context).inflate(R.layout.themable_widget_layout, this);
39495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters    }
40495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters}
41495ad3c8ccb9ed3554177a3e8687676c78e667deTim Peters