From 063b68edf61dbf8bf1b3bf342b9fd16bb0cc49b2 Mon Sep 17 00:00:00 2001 From: Chris Banes Date: Fri, 4 Sep 2015 07:27:28 +1000 Subject: [PATCH] Add DrawableCompat demo to Support4Demos Change-Id: Ie00198b1d4dbc0c71084961eee2387a68e39505f --- samples/Support4Demos/AndroidManifest.xml | 8 ++ .../res/color/tint_state_list.xml | 20 +++++ .../res/drawable-hdpi/ic_favorite.png | Bin 0 -> 875 bytes .../res/drawable-mdpi/ic_favorite.png | Bin 0 -> 551 bytes .../res/drawable-xhdpi/ic_favorite.png | Bin 0 -> 1162 bytes .../res/drawable-xxhdpi/ic_favorite.png | Bin 0 -> 1779 bytes .../res/drawable-xxxhdpi/ic_favorite.png | Bin 0 -> 2295 bytes .../res/layout/drawable_compat.xml | 51 +++++++++++ samples/Support4Demos/res/values/strings.xml | 4 + .../graphics/DrawableCompatActivity.java | 84 ++++++++++++++++++ 10 files changed, 167 insertions(+) create mode 100644 samples/Support4Demos/res/color/tint_state_list.xml create mode 100644 samples/Support4Demos/res/drawable-hdpi/ic_favorite.png create mode 100644 samples/Support4Demos/res/drawable-mdpi/ic_favorite.png create mode 100644 samples/Support4Demos/res/drawable-xhdpi/ic_favorite.png create mode 100644 samples/Support4Demos/res/drawable-xxhdpi/ic_favorite.png create mode 100644 samples/Support4Demos/res/drawable-xxxhdpi/ic_favorite.png create mode 100644 samples/Support4Demos/res/layout/drawable_compat.xml create mode 100644 samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java diff --git a/samples/Support4Demos/AndroidManifest.xml b/samples/Support4Demos/AndroidManifest.xml index e662cf4b9..d3f0b8522 100644 --- a/samples/Support4Demos/AndroidManifest.xml +++ b/samples/Support4Demos/AndroidManifest.xml @@ -367,6 +367,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-hdpi/ic_favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..1de4e583d4a25ee489ca55c3102f3068eebeb74e GIT binary patch literal 875 zcmV-x1C;!UP)RuE3Wkw z92I-lDu};{JCtp_0UKsnYa@7@@mhUgxh_F`nZF`E@e}NsvDQ9uh3SZwX>RW{SI%qF z8~?z5a6tU6GlsyjtOOM_+*Wf1KanO3tyOB|H>nXp$H?C}qAI90gQu0t@ul9aR!>kT z`5$Lw1r;R@fq9JKq!V|Npmqu;+GGTE2PEjMjG%#l1U-@wR0&AXdl^CF0ST(g2$~E? z(4>r@YCwX%%Lp0?NKi#aP&pt${W5|s1|+CgM$q1X1nrg)v{dA0d=JidFP43qzY&0- z>niDv5MEf@R0MHK@`cB8o>QH)Ya=PwT^6Y; z;qbIaf=-c!$|~n=2R)GUkW$p>)7Iv>WIL8)Ih>$hL7KZewt~Mol*1L~`LC(FbZYwe{im(9O zGAQS!STk3%8hiw}W4Gta>q=(SV84`QH5wd)HUf`HCBec(tuQ>zMK4|G@+m;h-q zUO6!P=bSl^H*wAr7&j}RHUB~8s|=RG3R$aMHHm7kO`5D%SzxsuE4@yY1Y*Rmc4Y;E zl0R6ttDyJqq$dz1z7>%XNH7*SlM%=;7I>8rC@~f&$_Nx03lwAovWx}ZWCSi53nXO( zwipX+$_R`x78sSiO58AP{>sQ*XojJ{q|xhioKf>9X6Aum@X4V0yck1GO=L?91QxB% z#0MTWzi-D--vX{ZX#N5;+ZC&Hfs~8Q--AxObD@w;bF$3*8*nO_3yV9sQ}ql6osJeq zz>5RTr^OfKN;Vp{`E}A>n<2Nu-G1<3L-Q$-gm{up_kcSK&EJA<@;F}io4mbhgHt;( z*$=dVQv=N(gH~d;;Ao=XXuVcxSCd9!x}j+RJ5`$B7SFI>F-3Gz>Q$<<9od2i$+Vnl pp6YbTHw~spZ7G$25>Nt__yHUK%^b1$<-`C0002ovPDHLkV1iY`@oWG9 literal 0 HcmV?d00001 diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-xhdpi/ic_favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..5868c34bfa7ab7b4c780a2ab6e6cf5c55218ce29 GIT binary patch literal 1162 zcmV;51a*K)~Gj4f@l(kK@cQmgUGNfgUo`;95gCJ!zdF8%m&$@d4ZEgDVkw8 zsfYrJD5#VoDkISz_VSYL)}nnQ()6Bv_v@Vd|L{#hVeS97^VnzawI>K6CIEN91O$Kp z00KY&00AHXfB+BxKmZ5;L@0nPqJU^1T8VCAfQS>r#Gw4QcA}mrl)q!Do;k#J;v8{< z=#e!H%bK{hXR=oQnXSa^umun!iitKku%P1Kxk;1|(>2sHgV;xOD%SHu2C|dL@Hqf3 zuAF!&^r?@iA~F@~nMqU={Tl0eL6i|wd zB%)IBzqX26i0m=ynNM7|R1064Dx?Qa0^n#OhJ%;lIc?4(hogy|5ZUOx~DW z=?k&(uX;8UUme!dq8ftgWv5BF*AS5>gNS=j&t;X%kxBrS!XJH>_@bkx1IV>_!wsYO z#++j+fDFTrno&_#koSZj0hGhrq;*ht05Q#PxKY>hWT!2X4WJmF23C>I0NUVZU^VLs zAPY}E%1=bIbOcZUFO{`LM*t1*QCamm0%(Pg=I#T@1kep1mGx9d00Zz*S^YW!h{H!^ z#dQQQ1Rqm+6iqpRKKQ7tPq+!YRgaDU+To+JI&=hZ9zH6oQAYr!@KITNbp)^gJ}PUG z&@>(W2wn!(W1;bTKrQ?XtQwsGEQOzewOnZaDBl53^*w&71dtD3lUBZo0C?H=U3fdL z?u+D>(JQTt+XR2dRh}@sHuM@i{;!&ag~ho`i0|-vgucnAMJxLQD&hAC9TyfiXz=3G z+wlC4?g+(=d#P+uS|vMt{s%c$FPnAnYj~6wa`76e^*TK>(Jh6$iu{bA z`8=i_y8SZM2j_4E12|;DE0fKdsv>0mF;hO7?wC~*0rO9q^vHAo{9)p3h|RAR0Y0wy z7(gO~`Vg95XWD#Q0VG1G3z7L}Y?yB|fJ6wVLtuWjMNgdc4fXlysKT}%t{Rpe@zDHo z7hbsR8oS?9pQ#ZICzb{R!*Ank7 zn$LTmb9@-PPo2b961^78f30&qKS}{47JZrAmHC8N=+l^e?5WS~hr0}ze~*~!+jxCF z*nm5qcWN}B&kD%&ajZU{E-{U`s=<8j@;lYnar%D5$7JGC3g%xBDRwtc_W%-;c&8N1 zKVfS|GwJ~(C`)qcf~OV^gk@Y|J9Vf~jNLwm_bn8JX-r`}`ia-&jJ5!b7fh`S+jzoy z{?@90-kN*mn>5Z5v;5Y~XMS;Gyv1Q1N7zrI%NCjz$szz8We5-e0ssgA0RRMm0006& c0Kf*n01W6fJW&MP`2YX_07*qoM6N<$f?b6hp8x;= literal 0 HcmV?d00001 diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..02b46e3bd42d2b19f154b2a25ec738908366be90 GIT binary patch literal 1779 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 + + + + + + + + + + + + + + + + diff --git a/samples/Support4Demos/res/values/strings.xml b/samples/Support4Demos/res/values/strings.xml index 0c388b2b8..2157be187 100644 --- a/samples/Support4Demos/res/values/strings.xml +++ b/samples/Support4Demos/res/values/strings.xml @@ -191,4 +191,8 @@ regular round + Not tint + Color tint + Color state list + diff --git a/samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java new file mode 100644 index 000000000..f6790679b --- /dev/null +++ b/samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java @@ -0,0 +1,84 @@ +/* + * Copyright 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.supportv4.graphics; + +import com.example.android.supportv4.R; + +import android.app.Activity; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.v4.content.ContextCompat; +import android.support.v4.graphics.drawable.DrawableCompat; +import android.widget.ImageView; +import android.widget.RadioGroup; + +/** + * Demonstrates use of a {@link DrawableCompat}'s ability to become circular. + */ +public class DrawableCompatActivity extends Activity { + + private static final int IMAGE_RES = R.drawable.ic_favorite; + + private ImageView mImageView; + private Drawable mDrawable; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.drawable_compat); + + mImageView = (ImageView) findViewById(R.id.image); + + Drawable d = ContextCompat.getDrawable(this, IMAGE_RES); + mDrawable = DrawableCompat.wrap(d.mutate()); + + mImageView.setImageDrawable(mDrawable); + + RadioGroup rg = (RadioGroup) findViewById(R.id.drawable_compat_options); + rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup radioGroup, int id) { + switch (id) { + case R.id.drawable_compat_no_tint: + clearTint(); + break; + case R.id.drawable_compat_color: + setColorTint(); + break; + case R.id.drawable_compat_state_list: + setColorStateListTint(); + break; + } + } + }); + } + + private void clearTint() { + DrawableCompat.setTintList(mDrawable, null); + } + + private void setColorTint() { + DrawableCompat.setTint(mDrawable, Color.MAGENTA); + } + + private void setColorStateListTint() { + DrawableCompat.setTintList(mDrawable, + ContextCompat.getColorStateList(this, R.color.tint_state_list)); + } + +}