[Galaxy Note 3 Themes and Apps] lacoursiere18:
Next lets look at values folder. This folder is VERY important. A LOT of things are found and changed here.. The first three folders:

arrays

attrs

bools

Lets skip over them bc this is a begginers thread and that more advanced stuff..BUT if you have ?'s ask away!!

We pretty much covered colors.xml. We saw this in xmls ( android:color=@ color/) So when you see that, you search in colors.xml to find what it is calling and change it or change it right in the xml by editing it to a hex color.

Dimens, or aka dimensions. They are what they say they are dimensions, in other words numbers that define how big or how small things are. So lets look at another xml: acount_list_item.xml Look at this line:

RelativeLayout android:id="@id/account_layout_id" android:background="#ff000000" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" [COLOR="Red"]android:layout_height[/COLOR]="[COLOR="Lime"]@dimen[/COLOR]/[COLOR="DarkOrange"]account_list_item_height[/COLOR]">

So Red defines what it is, the layout height. Then Lime is telling us where it is defined, and that would be dimens. Then Orange tells us the name of the dimen so we can search for it in dimens.xml:

<dimen name="account_list_item_height">56.0dip</dimen>

And there it is.. OF COURSE it was not in dimens.xml under res/values but instead it was under values-sw359dp-xxhdpi instead.. LOLL

So it is saying it is 56.0dip (Density-independent pixel (dp)

A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.

The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities.)

A lot of these terms and abbreviations can be goolged to find out what they mean or do ..

So you can make this smaller or larger depending on what you would like..

Ids.xml we went over briefly but you do not need to really worry about them right now..

Integers.xml is basically for defining a number to something..It can be a space(between something) a duration(how long it takes for something to do an action) the amount of objects in a row etc ect. Lets look..

<integer name="year_row_num">4</integer>

So this defines how many numbers are in a year on SPlanner. So it is set to four ex: 2014, thats four numbers..Easy right? You can change it.. you can change all of them to suit your needs on what you want to do. Thats is the GREAT thing about Android!!

Plurals.xml we will skip

Next is public.xml. This is a very important xml. It basically defines everything in res folder with a value. These values are then used for things like smali code that calls them. Everytime you add a new image (png), id, layout, bool whatever it is, it is added to this folder..

Strings.xml defines the words or sentence associated with a text. Lets look at them:

<string name="[COLOR="Red"]fail_import_event[/COLOR]">[COLOR="Lime"]Failed to import event[/COLOR]</string>

So in red you will see the name. These are usually called in a layout or maybe even in smali. Then in Lime is what that string dislpays. So say you trigger this by trying to import an event but it fails for some reason. You will get a message on your phone stating this: Failed to import event You can change it to say "FU this event SUCKS" or whatever you want but you get the idea. Here is one in a layout: add_calendars_expandable_fragment.xml

android:contentDescription="@string/calendar_colour"

Then the string:

<string name="calendar_colour">Calendar color</string>

Next up styles.xml. This is another VERY important xml. A lot of things can be in here..text colors, adjustments of layouts, text sizes, font styles etc etc.. You can also add things in here, define your own theme when you get up to par, change the defualt theme of the app..

Say you want to make SPlanner use AOSP style them instead of TW, which is the default device style theme.. you do that in styles. SO you can see how this would be important. Lets take a look:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="[COLOR="Red"]MinusButton[/COLOR]">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:src">@drawable/btn_selector_remove</item>
</style>
<style name="[COLOR="red"]PlusButton[/COLOR]">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:layout_marginRight">16.0dip</item>
<item name="android:src">@drawable/btn_selector_add</item>
</style>
<style name="[COLOR="red"]MonthView_DayLabel[/COLOR]">
<item name="android:textAppearance">[COLOR="Lime" [MENTION=262514]style[/MENTION]/TextAppearance.MonthView_DayLabel[/COLOR]</item>
<item name="android:gravity">right</item>
<item name="android: paddingTop">2.0dip</item>
<item name="android: paddingBottom">2.0dip</item>
<item name="android:layout_width">29.0dip</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1.0</item>

I just highlighted some important key words.. To start Red is defining what it is.. pretty self explanatory.. Not sue what it exactly does?? Well change it and you'll find out =)

Lime shows you something that is important. [MENTION=262514]style[/MENTION] is defining a theme and the themes name is "TextAppearance.MonthView_DayLabel". If you search down this xml you will find "TextAppearance.MonthView_DayLabel" and its contents. Look here:

<style name="TextAppearance.MonthView_DayLabel" parent= [MENTION=262514]style[/MENTION]/TextAppearance">
<item name="android:textSize">@dimen/day_label_text_size</item>
<item name="android:textColor">@color/month_day_names_color</item>
</style>

This shows you the dimension for the text size. The name than can be searched in dimens.xml and than changed to make it smaller or larger. It also shows you the color. It again, give you the name of the color, by a name, for you to than search colors.xml and changed the hex value.

<item name="android:gravity">right</item>

<item name="android:paddingTop">2.0dip</item>

<item name="android:paddingBottom">2.0dip</item>

<item name="android:layout_width">29.0dip</item>

<item name="android:layout_height">wrap_content</item>

<item name="android:layout_weight">1.0</item>

These BOLD words all adjust the way this theme sits..If you are not exactly what they do you can google the BOLD word and Android Developers Website will give you a definition and then if your lucky a diagram to show you.

Lets have a look at another couple lines.

<style name="TextAppearance" parent="@android:style/TextAppearance" />

and

<style name="MinusButton">

Notice a difference besides the name? Thats right "parent="@android". This is a parent. Parent is a Style resource. Reference to a style from which this style should inherit style properties. These are important bc they can be referred to something that may not be contained in the app and maybe in framework-res.apk or twframework-res.apk. Instead of using a textcolor, for instance, inside of the apk, it will call to the parent style and be using one from one of those frameworks.

When you become more skilled you can even define your own theme/parent. This guide is a GREAT starting point to all the things you can do within styles!!

Alright Guys thats it for now running low on time.. Ill add more later.. And any request are WELCOME!!;)