UrbanPro
true
default_background

Learn Android Application Development Training from the Best Tutors

  • Affordable fees
  • 1-1 or Group class
  • Flexible Timings
  • Verified Tutors

Search in

Android : Support multiple themes in an android application

Gaurav Bansal
11/01/2017 0 0

If you are developing a theme based application to enhance user experience, then following steps needs to follow.

We are taking example of an android application having 2 themes white and black.

Step 1:
Define 2 themes in your application's styles.xml file

<style name="SampleAppBlackTheme">
    <item name="ic_action_accept">@drawable/ic_action_accept</item>
    <item name="ic_action_cancel">@drawable/ic_action_cancel</item>
    <item name="ic_action_delete">@drawable/ic_action_delete</item>
</style>
<style name="SampleAppWhiteTheme">
    <item name="ic_action_accept">@drawable/ic_action_accept_white</item>
    <item name="ic_action_cancel">@drawable/ic_action_cancel_white</item>
    <item name="ic_action_delete">@drawable/ic_action_delete_white</item>
</style>
Step 2:
Define a default theme for MainActuvity in android manifest:
<activity    
    android:name=".MainActivity"    
    android:screenOrientation="portrait"    
    android:theme="@style/SampleAppBlackTheme"
    android:windowSoftInputMode="stateHidden|adjustNothing" >
.........
</activity>
 
Step 3:
Based on User choice of theme, set theme programmatically in onCreate() method of respective activity:
@Overrideprotected void onCreate(Bundle savedInstanceState) {
    overridePendingTransition(0, 0);
    if (Constants.GO_WHITE)
        setTheme(R.style.SampleAppWhiteTheme);
    else
       setTheme(R.style.SampleAppBlackTheme);
    ........
}
P.s.
In case of multiple activities, define 2 themes for each activity
 
Step 4:
Define the common items in the attrs.xml as below :
<attr name="ic_action_accept" format="reference" />
<attr name="ic_action_cancel" format="reference" />
<attr name="ic_action_delete" format="reference" />
 
Step 5:
Use the defined attributes in the layout xml file or use programmatically in any view as per below example.
Layout example :
<ImageView    
    android:id="@+id/accept_icon"    
    android:layout_width="@dimen/abc_action_button_min_width"    
    android:layout_height="@dimen/abc_action_bar_default_height_material"
    android:src="?attr/ic_action_accept"    
    android:visibility="visible" />
 
Fragment or View example :
int[] attrs = new int[]{R.attr.ic_action_accept};
TypedArray typedArray = getActivity().obtainStyledAttributes(attrs);
Drawable ic_action_accept = typedArray.getDrawable(0);
 
These attribute will be resolved in styles.xml file and return the drawable or color as per the current theme of the activity. 
 
That's how multiple themes can be supported. In case of any questions please comment.
0 Dislike
Follow 0

Please Enter a comment

Submit

Other Lessons for You

Understanding concept of Inheritance in Java
Inheritance: Acquiring a properties and methods from Parent class to Child class. For example, In some cases we can hear from any one of your relative or your friends will say like that "You are bahaving...

GIT
In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management....
R

Tips for Entry Level Java Job Seeker
3 steps you should take to make a break as a Java developer: Step 1: Invest in improving your job hunting skills encompassing interviewing, networking, and resume writing skills. Step 2: Keep applying...
A

Akshay Shende

1 0
0

A Tip for the beginners.
The world of programming languages right now is too dense, and too big for any beginner. But at the same time, because of so many options available, it's easier too. You can start with any language that...

Write your first Python program in 10 minutes
1. Download python from python official site search "python download" in google 2. Install in your machine 3. verify using : "python --version" command 4. Write first program using notepad create...
X

Looking for Android Application Development Training Classes?

The best tutors for Android Application Development Training Classes are on UrbanPro

  • Select the best Tutor
  • Book & Attend a Free Demo
  • Pay and start Learning

Learn Android Application Development Training with the Best Tutors

The best Tutors for Android Application Development Training Classes are on UrbanPro

This website uses cookies

We use cookies to improve user experience. Choose what cookies you allow us to use. You can read more about our Cookie Policy in our Privacy Policy

Accept All
Decline All

UrbanPro.com is India's largest network of most trusted tutors and institutes. Over 55 lakh students rely on UrbanPro.com, to fulfill their learning requirements across 1,000+ categories. Using UrbanPro.com, parents, and students can compare multiple Tutors and Institutes and choose the one that best suits their requirements. More than 7.5 lakh verified Tutors and Institutes are helping millions of students every day and growing their tutoring business on UrbanPro.com. Whether you are looking for a tutor to learn mathematics, a German language trainer to brush up your German language skills or an institute to upgrade your IT skills, we have got the best selection of Tutors and Training Institutes for you. Read more