java


Java android change color in xml file


I have this xml where I already set stroke color but I sometimes I want to change stoke color programmatically. The file name is dummy.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff" />
<stroke
android:width="1dp"
android:color="#ff000000" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>
I want to change color (stroke color) programmatically, how I can do this?
I use this xml here :
<LinearLayout
android:layout_marginTop="2dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/a"
android:layout_gravity="center"
android:background="#drawable/dummy"
android:layout_marginBottom="2sp"
android:orientation="horizontal"
android:padding="5dp">
<RelativeLayout
android:id="#+id/serverStatusWrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:background="#drawable/shadow_green"
android:padding="2dp">
<ImageView
android:id="#+id/serverStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:antialias="true"
android:src="#drawable/ic_settings_input_antenna_white_24dp" />
</RelativeLayout>
<RelativeLayout
android:id="#+id/locationStatusWrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/shadow_red"
android:padding="2dp">
<ImageView
android:id="#+id/locationStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:antialias="true"
android:src="#drawable/ic_warning_white_24dp" />
</RelativeLayout>
</LinearLayout>
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.a);
You can change the stroke as
GradientDrawable drawable = (GradientDrawable)linearLayout.getBackground();
drawable.setStroke(3, Color.RED);
And can change solid color as
GradientDrawable drawable = (GradientDrawable)linearLayout.getBackground();
drawable.setColor(Color.RED);
Hope this helps
If you have drawable file for a "view" like this
Then you can change
a. Stroke color :
GradientDrawable drawable = (GradientDrawable)view.getBackground();
drawable.setStroke(3, Color.RED); // set stroke width and stroke color
b. Solid color :
GradientDrawable drawable = (GradientDrawable)view.getBackground();
drawable.setColor(Color.RED); // set solid color
If you have drawable file for a "view" like this
Then you can change the individual item attributes by taking separate drawable objects by there positions.
StateListDrawable drawable = (StateListDrawable)view.getBackground();
DrawableContainerState dcs = (DrawableContainerState)drawable.getConstantState();
Drawable[] drawableItems = dcs.getChildren();
GradientDrawable gradientDrawableChecked = (GradientDrawable)drawableItems[0]; // item 1
GradientDrawable gradientDrawableUnChecked = (GradientDrawable)drawableItems[1]; // item 2
now to change stroke or solid color :
//solid color
gradientDrawableChecked.setColor(Color.BLUE);
gradientDrawableUnChecked.setColor(Color.RED);
//stroke
gradientDrawableChecked.setStroke(1, Color.RED);
gradientDrawableUnChecked.setStroke(1, Color.BLUE);

Related Links

MSC Service working on WildFly 9, stops working on WildFly 10
Regular expression exclude µ from [\W_] [duplicate]
How to programmatically know the primary keys of a table in Cassandra
How to pass values to dataprovider in testng
How to force launch4j to run java app including java.exe.manifest
Selenium sendKeys to the wrong input
executor not executing threads from within a main thread
Raise agent and increase z-position while being moved
Catching Exceptions - why is it necessary?
AWS Lambda + S3 - Metaspace: java.lang.OutOfMemoryError
How to create a Spring Reactor Flux from a ActiveMQ queue?
Convert native aggregate search in MongoDB to Spring Data framework
python setup.py egg_info failed when installing python-bioformats
how to stop recursion after printing 5 terms in this Fibonacci series code?
JavaFX ComboBox plus ListView for Map of Sets
Apache Ignite cache event registration not working

Categories

HOME
pdf
gerrit
magnific-popup
mockito
nullpointerexception
raspberry-pi
syntax
bpmn
disassembler
qore
dacpac
reveal.js
spring-kafka
google-apps-marketplace
php-7.1
n-gram
task
visual-studio-2005
facebook-page
cx-freeze
mps
graphicsmagick
restful-authentication
vlsi
info.plist
traffic
applozic
ejabberd-module
libssl
react-chartjs
data-manipulation
titanium-mobile
framemaker
lxd
geopositioning
sequential
plsql-psp
simplexml
sqlite2
angularjs-factory
g-code
fakeiteasy
s
galleria
azure-application-gateway
revapi
worksheet
celery-task
powercli
jxcore
akka-cluster
gcsfuse
jspdf-autotable
dynamics-sl
redundancy
mediaelement
instant
gridpane
httplistener
azure-virtual-network
phishing
nsfilemanager
superstack
make-install
php-internals
design-by-contract
rhino-servicebus
associative-array
energy
jfugue
wyam
varargs
0xdbe
method-parameters
mono-embedding
sailfish-os
remobjects
device-orientation
bigbluebutton
block-device
gadt
coldbox
xcode-6.2
java-metro-framework
titanium-modules
xojo
prettify
ccss
access-rights
listings
interface-orientation
selected
trusted
rdoc
coderush
dsn
viewswitcher
buildr
servicehost
appender
recent-documents
actionview
site.master
asp.net-profiles
kdbg
misv

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App