<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2865777313825124004</id><updated>2026-04-06T16:17:34.569-07:00</updated><title type='text'>Android Coding</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Erik</name><uri>http://www.blogger.com/profile/04983894331825656853</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>513</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-8411135629537429525</id><published>2016-07-20T13:51:00.003-07:00</published><updated>2016-07-20T13:51:55.622-07:00</updated><title type='text'>Load Spinner with string-array from resources xml</title><content type='html'>&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;480&quot; src=&quot;https://www.youtube.com/embed/DdFmhXkb9oo&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
To define&amp;nbsp;string-array in&amp;nbsp;resources xml, edit&amp;nbsp;values/strings.xml to add items of&amp;nbsp;string-array.&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;resources&amp;gt;
    &amp;lt;string name=&quot;app_name&quot;&amp;gt;AndroidSpinner&amp;lt;/string&amp;gt;
    &amp;lt;string-array name=&quot;weekday&quot;&amp;gt;
        &amp;lt;item&amp;gt;Sunday&amp;lt;/item&amp;gt;
        &amp;lt;item&amp;gt;Monday&amp;lt;/item&amp;gt;
        &amp;lt;item&amp;gt;Tuesday&amp;lt;/item&amp;gt;
        &amp;lt;item&amp;gt;Wednesday&amp;lt;/item&amp;gt;
        &amp;lt;item&amp;gt;Thursday&amp;lt;/item&amp;gt;
        &amp;lt;item&amp;gt;Friday&amp;lt;/item&amp;gt;
        &amp;lt;item&amp;gt;Saturday&amp;lt;/item&amp;gt;
    &amp;lt;/string-array&amp;gt;
&amp;lt;/resources&amp;gt;

&lt;/pre&gt;
&lt;br /&gt;
Edit layout/activity_main.xml to add Spinner with entries to load from string-array.&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    tools:context=&quot;com.example.androidspinner.MainActivity&quot;&amp;gt;

    &amp;lt;TextView
        android:id=&quot;@+id/title&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;28dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;
    &amp;lt;Spinner
        android:id=&quot;@+id/myspinner&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:entries=&quot;@array/weekday&quot;/&amp;gt;
&amp;lt;/LinearLayout&amp;gt;

&lt;/pre&gt;
&lt;br /&gt;
MainActivity.java&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidspinner;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner mySpinner = (Spinner)findViewById(R.id.myspinner);
        mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView&amp;lt;?&amp;gt; adapterView, View view, int i, long l) {
                String item = (String)adapterView.getItemAtPosition(i);
                Toast.makeText(MainActivity.this, item, Toast.LENGTH_LONG).show();
            }

            @Override
            public void onNothingSelected(AdapterView&amp;lt;?&amp;gt; adapterView) {

            }
        });
    }
}

&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/8411135629537429525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2016/07/load-spinner-with-string-array-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8411135629537429525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8411135629537429525'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2016/07/load-spinner-with-string-array-from.html' title='Load Spinner with string-array from resources xml'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/DdFmhXkb9oo/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-414755151917380421</id><published>2016-03-04T12:59:00.000-08:00</published><updated>2016-03-04T12:59:40.932-08:00</updated><title type='text'>Get the number of processor cores available to the VM</title><content type='html'>The method&amp;nbsp;&lt;a href=&quot;http://developer.android.com/reference/java/lang/Runtime.html#availableProcessors()&quot; target=&quot;_blank&quot;&gt;Runtime.availableProcessors()&lt;/a&gt;&amp;nbsp;returns the number of processor cores available to the VM, at least 1. Traditionally this returned the number currently online, but many mobile devices are able to take unused cores offline to save power, so releases newer than Android 4.2 (Jelly Bean) return the maximum number of cores that could be made available if there were no power or heat constraints.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishrLzlrT-PssXyXzeSC05Zbz6RMBcpYJFBXZTdiz9T_TzcCILbwlDS9K3S_2PdyZ7lj1SvT7f_Y3SxL-cRGbNz39bgrgoDrWsSF81Th52j5dNTyIcwad4DZZVSRan44-o_Jj35YfGZGcI/s1600/availableProcessors.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishrLzlrT-PssXyXzeSC05Zbz6RMBcpYJFBXZTdiz9T_TzcCILbwlDS9K3S_2PdyZ7lj1SvT7f_Y3SxL-cRGbNz39bgrgoDrWsSF81Th52j5dNTyIcwad4DZZVSRan44-o_Jj35YfGZGcI/s400/availableProcessors.png&quot; width=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package example.com.androidprocessors;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        int availableProcessors = Runtime.getRuntime().availableProcessors();
        Toast.makeText(MainActivity.this,
                &quot;Available Processors: &quot; + availableProcessors,
                Toast.LENGTH_LONG).show();
    }
}

&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/414755151917380421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2016/03/get-number-of-processor-cores-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/414755151917380421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/414755151917380421'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2016/03/get-number-of-processor-cores-available.html' title='Get the number of processor cores available to the VM'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishrLzlrT-PssXyXzeSC05Zbz6RMBcpYJFBXZTdiz9T_TzcCILbwlDS9K3S_2PdyZ7lj1SvT7f_Y3SxL-cRGbNz39bgrgoDrWsSF81Th52j5dNTyIcwad4DZZVSRan44-o_Jj35YfGZGcI/s72-c/availableProcessors.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-5314560593217703208</id><published>2016-01-16T12:07:00.001-08:00</published><updated>2016-01-16T12:07:06.706-08:00</updated><title type='text'>Android Textual Layout (Android Dev Summit 2015)</title><content type='html'>&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/6U6lynVtMjg&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
&lt;br /&gt;
Recent versions of Android have significant advances in typographic sophistication, including automatic hyphenation, balanced and optimized paragraph layout, OpenType features, support for dozens of scripts around the world, and more. Raph Levien, software engineer and tech lead of Android Text on the Android UI Toolkit team, covers these capabilities and how apps can make best use of them.&lt;br /&gt;
&lt;br /&gt;
View presentation slides here: &lt;a href=&quot;https://speakerdeck.com/raphlinus/android-textual-layout&quot; target=&quot;_blank&quot;&gt;https://speakerdeck.com/raphlinus/android-textual-layout&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/5314560593217703208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2016/01/android-textual-layout-android-dev.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5314560593217703208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5314560593217703208'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2016/01/android-textual-layout-android-dev.html' title='Android Textual Layout (Android Dev Summit 2015)'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/6U6lynVtMjg/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-7256872784058328127</id><published>2015-11-23T11:56:00.002-08:00</published><updated>2015-11-23T11:56:37.808-08:00</updated><title type='text'>What’s New in Android Studio 1.5</title><content type='html'>Android Studio 1.5 is focused on delivering more stability, with most of the enhancements being made under the hood. It adds new lint checks, the ability to use short names when code-completing custom views, and the memory profiler can now help you detect some of the most commonly known causes of leaked activities.&lt;br /&gt;
&lt;br /&gt;
Android Studio 1.5 is now available to download from the stable release channel.&lt;br /&gt;
&lt;br /&gt;
Find out more from Android Developers Blog: &lt;a href=&quot;http://goo.gl/oIbJHO&quot; target=&quot;_blank&quot;&gt;http://goo.gl/oIbJHO&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/BKU-wmTAPdc&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/7256872784058328127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/11/whats-new-in-android-studio-15.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/7256872784058328127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/7256872784058328127'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/11/whats-new-in-android-studio-15.html' title='What’s New in Android Studio 1.5'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/BKU-wmTAPdc/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-8244209272970571511</id><published>2015-11-09T21:15:00.001-08:00</published><updated>2015-11-09T21:18:37.847-08:00</updated><title type='text'>What is Cardboard</title><content type='html'>What is Cardboard and Virtual Reality. This video introduces Cardboard for developers and how to use a phone and a simple box of Cardboard to tap into a new type of immersion with virtual reality.&lt;br /&gt;
&lt;br /&gt;
Watch more episodes of Cardboard here:&lt;br /&gt;
&lt;a href=&quot;https://goo.gl/IAoGGs&quot; target=&quot;_blank&quot;&gt;https://goo.gl/IAoGGs&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/ZyJw5Dg4dZ4&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
&lt;br /&gt;
Cardboard: How Cardboard Works&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/pezqumf01Is&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/8244209272970571511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/11/what-is-cardboard-and-virtual-reality.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8244209272970571511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8244209272970571511'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/11/what-is-cardboard-and-virtual-reality.html' title='What is Cardboard'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/ZyJw5Dg4dZ4/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-2355160665729741705</id><published>2015-11-05T22:02:00.000-08:00</published><updated>2015-11-05T22:02:04.737-08:00</updated><title type='text'>Google Play services 8.3</title><content type='html'>Google Play services 8.3 is now out enabling you to build better apps with new functionality for: Sign In, Fused Location Provider, App Invites, and the Wearable Data Layer APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/nAUeEJ51Cko&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/2355160665729741705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/11/google-play-services-83.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/2355160665729741705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/2355160665729741705'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/11/google-play-services-83.html' title='Google Play services 8.3'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/nAUeEJ51Cko/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-5499489411853639052</id><published>2015-11-05T21:52:00.002-08:00</published><updated>2015-11-05T21:52:29.771-08:00</updated><title type='text'>Android and Android Studio: Getting Started</title><content type='html'>&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Z98hXV9GmzY&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
Learn how to get started with Android and Android Studio in this short tutorial. It demontrates how to install Android Studio (Google’s official Android IDE) and create your first Android app. You’ll learn how to download the Java SDK, download and install Android Studio, create a new “Hello World” project, and run your app on an emulator and real Android device.&lt;br /&gt;
&lt;br /&gt;
You’ll also learn a series of Protips from an Android app startup as they go through the process of developing their app in a highly stressful environment. With over 1 billion Android devices already activated, Android represents an incredible opportunity for developers. Installing Android Studio is your first step!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho1g7leHHUzel_ax97Sri0sqvdC4ApOUE97evHAXtwQVo7Ti5DnfYkCzYkAnDGx1QFEZ1-ZHQMKn58MotcRmPJaWpF1IrkPiAoWfDkz48u_gst9YrG1wYf0nLTgHEvpjIg6SVQJkWKar0s/s1600/Android+Studio.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEho1g7leHHUzel_ax97Sri0sqvdC4ApOUE97evHAXtwQVo7Ti5DnfYkCzYkAnDGx1QFEZ1-ZHQMKn58MotcRmPJaWpF1IrkPiAoWfDkz48u_gst9YrG1wYf0nLTgHEvpjIg6SVQJkWKar0s/s1600/Android+Studio.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Download the Java Development Kit: &lt;a href=&quot;http://goo.gl/zXjC&quot; target=&quot;_blank&quot;&gt;http://goo.gl/zXjC&lt;/a&gt;&lt;br /&gt;
Download Android Studio: &lt;a href=&quot;http://goo.gl/2qpr&quot; target=&quot;_blank&quot;&gt;http://goo.gl/2qpr&lt;/a&gt;&lt;br /&gt;
Android USB Drivers for Windows: &lt;a href=&quot;http://goo.gl/91Y8C&quot; target=&quot;_blank&quot;&gt;http://goo.gl/91Y8C&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Once you’ve installed Android Studio, learn more about developing Android Apps using these resources:&lt;br /&gt;
Android Developer Documentation: &lt;a href=&quot;http://goo.gl/km7ab&quot; target=&quot;_blank&quot;&gt;http://goo.gl/km7ab&lt;/a&gt;&lt;br /&gt;
Developing Android Apps Udacity Online Training: &lt;a href=&quot;https://goo.gl/u1pxZv&quot; target=&quot;_blank&quot;&gt;https://goo.gl/u1pxZv&lt;/a&gt;&lt;br /&gt;
Android Design for Developers Udacity Online Training: &lt;a href=&quot;https://goo.gl/7W2S28&quot; target=&quot;_blank&quot;&gt;https://goo.gl/7W2S28&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Check out more music from the composer: www.terramonk.com&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/5499489411853639052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/11/android-and-android-studio-getting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5499489411853639052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5499489411853639052'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/11/android-and-android-studio-getting.html' title='Android and Android Studio: Getting Started'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/Z98hXV9GmzY/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-8546927881360388363</id><published>2015-10-15T03:51:00.002-07:00</published><updated>2015-10-15T03:51:42.594-07:00</updated><title type='text'>Interactive flip ImageView using ObjectAnimator</title><content type='html'>User touch on buttons to flip the ImageView forward/backward alternatively, around X-axis and Y-axis.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/UD3y1rFXcf4&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidflipview;

import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    Button buttonFlipX, buttonFlipY;
    ImageView imageView;
    boolean dirX = true;
    boolean dirY = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView)findViewById(R.id.image);
        buttonFlipX = (Button)findViewById(R.id.buttonflipX);
        buttonFlipY = (Button)findViewById(R.id.buttonflipY);

        buttonFlipX.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                if(dirX){
                    dirX = false;
                    buttonFlipX.setText(&quot;Flip X Backward&quot;);
                    ObjectAnimator flip = ObjectAnimator.ofFloat(imageView, &quot;rotationX&quot;, 0f, 180f);
                    flip.setDuration(500);
                    flip.start();
                }else{
                    dirX = true;
                    buttonFlipX.setText(&quot;Flip X Forward&quot;);
                    ObjectAnimator flip = ObjectAnimator.ofFloat(imageView, &quot;rotationX&quot;, 180f, 0f);
                    flip.setDuration(1000);
                    flip.start();
                }
            }
        });

        buttonFlipY.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                if(dirY){
                    dirY = false;
                    buttonFlipY.setText(&quot;Flip Y Backward&quot;);
                    ObjectAnimator flip = ObjectAnimator.ofFloat(imageView, &quot;rotationY&quot;, 0f, 180f);
                    flip.setDuration(2000);
                    flip.start();
                }else{
                    dirY = true;
                    buttonFlipY.setText(&quot;Flip Y Forward&quot;);
                    ObjectAnimator flip = ObjectAnimator.ofFloat(imageView, &quot;rotationY&quot;, 180f, 0f);
                    flip.setDuration(3000);
                    flip.start();
                }
            }
        });
    }
}

&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout
    xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    tools:context=&quot;.MainActivity&quot;&amp;gt;
a
    &amp;lt;TextView
        android:id=&quot;@+id/title&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;28dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;

    &amp;lt;Button
        android:id=&quot;@+id/buttonflipX&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;Flip X Forward&quot; /&amp;gt;
    &amp;lt;Button
        android:id=&quot;@+id/buttonflipY&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;Flip Y Forward&quot; /&amp;gt;

    &amp;lt;ImageView
        android:id=&quot;@+id/image&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        android:src=&quot;@mipmap/ic_launcher&quot; /&amp;gt;
&amp;lt;/LinearLayout&amp;gt;

&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/8546927881360388363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/10/interactive-flip-imageview-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8546927881360388363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8546927881360388363'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/10/interactive-flip-imageview-using.html' title='Interactive flip ImageView using ObjectAnimator'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/UD3y1rFXcf4/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-3370204857877424076</id><published>2015-09-14T19:23:00.000-07:00</published><updated>2015-09-14T19:23:17.893-07:00</updated><title type='text'>Get Started AdMob for Android in Android Studio</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZQumbWdDDe7rcXKUZxhyphenhyphenll_4Ud2xBfalpFfpzDKbONgVKzAPQnCv3EhD4MG-kaNh3WvYHRpAAcG5fi5Qg0ouX0h8vRiz3xr_32XdgZsoyjm2doF8x54ZAFRzs7OlcU2YE33whlgtI49Vl/s1600/admob.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZQumbWdDDe7rcXKUZxhyphenhyphenll_4Ud2xBfalpFfpzDKbONgVKzAPQnCv3EhD4MG-kaNh3WvYHRpAAcG5fi5Qg0ouX0h8vRiz3xr_32XdgZsoyjm2doF8x54ZAFRzs7OlcU2YE33whlgtI49Vl/s1600/admob.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;a href=&quot;https://www.google.com/admob/&quot; target=&quot;_blank&quot;&gt;AdMob&lt;/a&gt;&lt;/b&gt; uses the Google Mobile Ads SDK. This guide will show you how to integrate the Google Mobile Ads SDK into a brand new app and use it to display a simple banner ad. It should take about thirty minutes to complete and will give you a good sense of how the SDK functions within an app. If you&#39;re new to Google Mobile Ads, this is a great place to start before moving on to more advanced examples.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://developers.google.com/admob/android/quick-start&quot; target=&quot;_blank&quot;&gt;https://developers.google.com/admob/android/quick-start&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijJXvWpn5-p4nkW8SzrTf5gVzG3DwJ82OgmGAYk2_b5UMzDzampN0CZpOQmXg67ZJCqw2XkSAfbGaapO8-EN9NhlBPSA1J7AqrVraHRaDyPbKhxCw4mU_H7xsHcZP6LN-KaEKyLgklkyfC/s1600/Get+Started+AdMob+for+Android+in+Android+Studio.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijJXvWpn5-p4nkW8SzrTf5gVzG3DwJ82OgmGAYk2_b5UMzDzampN0CZpOQmXg67ZJCqw2XkSAfbGaapO8-EN9NhlBPSA1J7AqrVraHRaDyPbKhxCw4mU_H7xsHcZP6LN-KaEKyLgklkyfC/s400/Get+Started+AdMob+for+Android+in+Android+Studio.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/3370204857877424076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/09/get-started-admob-for-android-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3370204857877424076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3370204857877424076'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/09/get-started-admob-for-android-in.html' title='Get Started AdMob for Android in Android Studio'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZQumbWdDDe7rcXKUZxhyphenhyphenll_4Ud2xBfalpFfpzDKbONgVKzAPQnCv3EhD4MG-kaNh3WvYHRpAAcG5fi5Qg0ouX0h8vRiz3xr_32XdgZsoyjm2doF8x54ZAFRzs7OlcU2YE33whlgtI49Vl/s72-c/admob.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-3628009245204875183</id><published>2015-09-09T01:06:00.000-07:00</published><updated>2015-09-09T01:06:02.454-07:00</updated><title type='text'>Android Asset Studio</title><content type='html'>&lt;b&gt;&lt;a href=&quot;https://romannurik.github.io/AndroidAssetStudio/&quot; target=&quot;_blank&quot;&gt;Android Asset Studio&lt;/a&gt;&lt;/b&gt; is a set of web-based tools for generating graphics and other assets that would eventually be in an Android application&#39;s res/ directory.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTSsJhW4ohZ6SnK5_MVHQ0knXKj-RpPHl_Twi4TCkPmNQX10SLoHf9h_ById0NnLGERkB9bfHaoF8Tif8MwMcCgrrm3WrquNvP4UacnU_ga9uyYj-oEeDU6t_krl9lmPwuqFVRYgKIMtiQ/s1600/Launcher+Icon+Generator.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;238&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTSsJhW4ohZ6SnK5_MVHQ0knXKj-RpPHl_Twi4TCkPmNQX10SLoHf9h_ById0NnLGERkB9bfHaoF8Tif8MwMcCgrrm3WrquNvP4UacnU_ga9uyYj-oEeDU6t_krl9lmPwuqFVRYgKIMtiQ/s400/Launcher+Icon+Generator.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
See &lt;a href=&quot;https://github.com/romannurik/AndroidAssetStudio&quot; target=&quot;_blank&quot;&gt;the source on GitHub&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/3628009245204875183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/09/android-asset-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3628009245204875183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3628009245204875183'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/09/android-asset-studio.html' title='Android Asset Studio'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTSsJhW4ohZ6SnK5_MVHQ0knXKj-RpPHl_Twi4TCkPmNQX10SLoHf9h_ById0NnLGERkB9bfHaoF8Tif8MwMcCgrrm3WrquNvP4UacnU_ga9uyYj-oEeDU6t_krl9lmPwuqFVRYgKIMtiQ/s72-c/Launcher+Icon+Generator.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-1899608809672895569</id><published>2015-09-04T19:12:00.002-07:00</published><updated>2015-09-04T19:12:57.394-07:00</updated><title type='text'>Google Android Developers Channel in YouTube</title><content type='html'>The home for videos, demos, tutorials, interviews, and anything else related to Android development. Android Developers channel at Youtube: &lt;a href=&quot;https://www.youtube.com/user/androiddevelopers&quot; target=&quot;_blank&quot;&gt;https://www.youtube.com/user/androiddevelopers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/LXtf84iK7i8&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/1899608809672895569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/09/google-android-developers-channel-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/1899608809672895569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/1899608809672895569'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/09/google-android-developers-channel-in.html' title='Google Android Developers Channel in YouTube'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/LXtf84iK7i8/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-4072744175188355212</id><published>2015-08-08T12:23:00.001-07:00</published><updated>2015-08-08T12:23:12.595-07:00</updated><title type='text'>Re-using Bitmaps</title><content type='html'>&lt;i&gt;In modern mobile applications, Bitmaps can account for a large amount of memory churn. Constantly loading thumbnails, user icons, and Emoji sets can provide your users with a steady stream of media, but it can also contribute to some HUGE pauses for garbage collection.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;In this video Colt McAnlis, and for temporally allocated bitmaps, there’s a handy trick that you absolutely should be using to escape these performance problems: Re-using bitmaps.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;Every time you allocate a bitmap, you have to incur some overhead to allocate the objects from the heap, which is less than ideal if you’ve got a lot of bitmaps. Rather than banging on the heap for new objects each time, you can instead, reuse the memory that an existing bitmap has created, and load your image there.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;The end result? Less memory churn from bitmaps.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/_ioFW3cyRV0&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/4072744175188355212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/08/re-using-bitmaps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/4072744175188355212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/4072744175188355212'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/08/re-using-bitmaps.html' title='Re-using Bitmaps'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/_ioFW3cyRV0/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-3497914702691237143</id><published>2015-08-08T12:18:00.001-07:00</published><updated>2015-08-08T12:18:06.128-07:00</updated><title type='text'>Pre-scaling Bitmaps</title><content type='html'>&lt;i&gt;For media rich applications, BITMAPS are everywhere. But these high-resolution images can cause a horde of performance problems if the size of the image in memory is larger than the size you’re displaying it on screen. As such one of the most important things you can do to alleviate memory pressure in your app, is resizing your bitmaps.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;Rather than writing all your own image resizing code, Android has a set of APIs which can do all this work for you. But the trick is, knowing which one to use?&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;For example, inSampleSize is the fastest way to down-scale your image; But you can only make it smaller by some factor of your image. createScaledBitmap is a great API, but requires an extra memory allocation to get it done.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;Thankfully, Colt McAnlis covers all these topics (and more) in this video, helping you reduce your memory footprint, and get some smaller images.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/HY9aaXHx8yA&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/3497914702691237143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/08/pre-scaling-bitmaps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3497914702691237143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3497914702691237143'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/08/pre-scaling-bitmaps.html' title='Pre-scaling Bitmaps'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/HY9aaXHx8yA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-9072927094945185085</id><published>2015-07-05T15:28:00.001-07:00</published><updated>2015-07-05T15:28:13.893-07:00</updated><title type='text'>Create custom text style</title><content type='html'>Example to create custom text style:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSZcioxBDW2HWXThvVvE8SSpBLfYzULh7yYywwl81jRaQJCgO2eqJqmz4TEeYPciiDhnCrL3PqGbm2zUosZ5bF_AAKaKDqzvIF5D9So9yDaJGiP4drlzwzYXJNyU1suPJ2fh_qDWCh5wJP/s1600/custom+text+style.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSZcioxBDW2HWXThvVvE8SSpBLfYzULh7yYywwl81jRaQJCgO2eqJqmz4TEeYPciiDhnCrL3PqGbm2zUosZ5bF_AAKaKDqzvIF5D9So9yDaJGiP4drlzwzYXJNyU1suPJ2fh_qDWCh5wJP/s400/custom+text+style.png&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Modify&amp;nbsp;/res/values/styles.xml to create our custom text style &quot;LargeRedText&quot;, &quot;InverseMediumBlueText&quot;, &quot;GreenText&quot;, &quot;ItalicGrayText&quot; and &quot;Bold50BlackText&quot;.
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;resources xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;

    &amp;lt;!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    --&amp;gt;
    &amp;lt;style name=&quot;AppBaseTheme&quot; parent=&quot;Theme.AppCompat.Light&quot;&amp;gt;
        &amp;lt;!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        --&amp;gt;
    &amp;lt;/style&amp;gt;

    &amp;lt;!-- Application theme. --&amp;gt;
    &amp;lt;style name=&quot;AppTheme&quot; parent=&quot;AppBaseTheme&quot;&amp;gt;
        &amp;lt;!-- All customizations that are NOT specific to a particular API-level can go here. --&amp;gt;
    &amp;lt;/style&amp;gt;
    
    &amp;lt;style name=&quot;LargeRedText&quot; parent=&quot;@android:style/TextAppearance.Large&quot;&amp;gt;
        &amp;lt;item name=&quot;android:textColor&quot;&amp;gt;#FF0000&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;
    &amp;lt;style name=&quot;InverseMediumBlueText&quot; parent=&quot;@android:style/TextAppearance.Medium.Inverse&quot;&amp;gt;
        &amp;lt;item name=&quot;android:background&quot;&amp;gt;#0000FF&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;
    &amp;lt;style name=&quot;GreenText&quot; parent=&quot;@android:style/TextAppearance&quot;&amp;gt;
        &amp;lt;item name=&quot;android:textColor&quot;&amp;gt;#00FF00&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;
    &amp;lt;style name=&quot;ItalicGrayText&quot; parent=&quot;@android:style/TextAppearance&quot;&amp;gt;
        &amp;lt;item name=&quot;android:textColor&quot;&amp;gt;#A0A0A0&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;android:textStyle&quot;&amp;gt;italic&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;
    &amp;lt;style name=&quot;Bold50BlackText&quot;&amp;gt;
        &amp;lt;item name=&quot;android:textColor&quot;&amp;gt;#000000&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;android:textStyle&quot;&amp;gt;bold&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;android:textSize&quot;&amp;gt;50dp&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;

&amp;lt;/resources&amp;gt;

&lt;/pre&gt;
&lt;br /&gt;
Example to use our custom text style in layout xml.
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    tools:context=&quot;com.example.androidtextappearance.MainActivity&quot; &amp;gt;

    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;24dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearance&quot;
        android:textAppearance=&quot;?android:textAppearance&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceLarge&quot;
        android:textAppearance=&quot;?android:textAppearanceLarge&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceMedium&quot;
        android:textAppearance=&quot;?android:textAppearanceMedium&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceSmall&quot;
        android:textAppearance=&quot;?android:textAppearanceSmall&quot; /&amp;gt;
    
 &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;custom style LargeRedText&quot;
        style=&quot;@style/LargeRedText&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;custom style InverseMediumBlueText&quot;
        style=&quot;@style/InverseMediumBlueText&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;custom style GreenText&quot;
        style=&quot;@style/GreenText&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;custom style ItalicGrayText&quot;
        style=&quot;@style/ItalicGrayText&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;custom style Bold50BlackText&quot;
        style=&quot;@style/Bold50BlackText&quot; /&amp;gt;
    
&amp;lt;/LinearLayout&amp;gt;

&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/9072927094945185085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/07/create-custom-text-style.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/9072927094945185085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/9072927094945185085'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/07/create-custom-text-style.html' title='Create custom text style'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSZcioxBDW2HWXThvVvE8SSpBLfYzULh7yYywwl81jRaQJCgO2eqJqmz4TEeYPciiDhnCrL3PqGbm2zUosZ5bF_AAKaKDqzvIF5D9So9yDaJGiP4drlzwzYXJNyU1suPJ2fh_qDWCh5wJP/s72-c/custom+text+style.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-3234187081384660720</id><published>2015-07-05T14:49:00.001-07:00</published><updated>2015-07-05T14:49:39.018-07:00</updated><title type='text'>Example to set textAppearance in XML</title><content type='html'>Example to set textAppearance in XML:&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    tools:context=&quot;com.example.androidtextappearance.MainActivity&quot; &amp;gt;

    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;24dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearance&quot;
        android:textAppearance=&quot;?android:textAppearance&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceLarge&quot;
        android:textAppearance=&quot;?android:textAppearanceLarge&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceMedium&quot;
        android:textAppearance=&quot;?android:textAppearanceMedium&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceSmall&quot;
        android:textAppearance=&quot;?android:textAppearanceSmall&quot; /&amp;gt;
    
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceInverse&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceLargeInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceLargeInverse&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceMediumInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceMediumInverse&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;textAppearanceSmallInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceSmallInverse&quot; /&amp;gt;

 &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:background=&quot;@android:color/darker_gray&quot;
        android:text=&quot;textAppearanceInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceInverse&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:background=&quot;@android:color/darker_gray&quot;
        android:text=&quot;textAppearanceLargeInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceLargeInverse&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:background=&quot;@android:color/darker_gray&quot;
        android:text=&quot;textAppearanceMediumInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceMediumInverse&quot; /&amp;gt;
    &amp;lt;TextView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:background=&quot;@android:color/darker_gray&quot;
        android:text=&quot;textAppearanceSmallInverse&quot;
        android:textAppearance=&quot;?android:textAppearanceSmallInverse&quot; /&amp;gt;
    
&amp;lt;/LinearLayout&amp;gt;

&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3AkZR6iiMe2LqRtNB6NNhiMwNkQuwrndFPahInp3DOqaipiwuvNdl2fnekKZrlDasCm4I7HKN8_tvRib8TwXwewlWzru2fuXjolKdvkBjX61fO1YaTyEu08UA80XreePEcDhyphenhyphene-ZxQeAX/s1600/textAppearance.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3AkZR6iiMe2LqRtNB6NNhiMwNkQuwrndFPahInp3DOqaipiwuvNdl2fnekKZrlDasCm4I7HKN8_tvRib8TwXwewlWzru2fuXjolKdvkBjX61fO1YaTyEu08UA80XreePEcDhyphenhyphene-ZxQeAX/s400/textAppearance.png&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/3234187081384660720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/07/example-to-set-textappearance-in-xml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3234187081384660720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3234187081384660720'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/07/example-to-set-textappearance-in-xml.html' title='Example to set textAppearance in XML'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3AkZR6iiMe2LqRtNB6NNhiMwNkQuwrndFPahInp3DOqaipiwuvNdl2fnekKZrlDasCm4I7HKN8_tvRib8TwXwewlWzru2fuXjolKdvkBjX61fO1YaTyEu08UA80XreePEcDhyphenhyphene-ZxQeAX/s72-c/textAppearance.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-5994403140638860246</id><published>2015-06-01T15:08:00.001-07:00</published><updated>2015-06-01T15:08:33.653-07:00</updated><title type='text'>100 Days of Google Dev</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8QLulD8cz4xPvn1DkZIgTcdA9WHRyF3Ttqwm9S3NiRcronJEtFR-DJVyat8177e5Wf0bsYoCVoYo5wDErmKVSG-KXrepEjrEsYykDnPW-sHicBpeDSguwtcbmSk4QKHoMSX9jkhTiLuT/s1600/100+Days+of+Google+Dev.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8QLulD8cz4xPvn1DkZIgTcdA9WHRyF3Ttqwm9S3NiRcronJEtFR-DJVyat8177e5Wf0bsYoCVoYo5wDErmKVSG-KXrepEjrEsYykDnPW-sHicBpeDSguwtcbmSk4QKHoMSX9jkhTiLuT/s400/100+Days+of+Google+Dev.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Starting now, Google are releasing 100 developer videos over 100 days, covering from Chrome to Android. Subscribe now:&amp;nbsp;&lt;a href=&quot;http://goo.gl/mQyv5L&quot; target=&quot;_blank&quot;&gt;http://goo.gl/mQyv5L&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/32i7ot0y78U?list=PLOU2XLYxmsIJDPXCTt5TLDu67271PruEk&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/5994403140638860246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/06/100-days-of-google-dev.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5994403140638860246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5994403140638860246'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/06/100-days-of-google-dev.html' title='100 Days of Google Dev'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8QLulD8cz4xPvn1DkZIgTcdA9WHRyF3Ttqwm9S3NiRcronJEtFR-DJVyat8177e5Wf0bsYoCVoYo5wDErmKVSG-KXrepEjrEsYykDnPW-sHicBpeDSguwtcbmSk4QKHoMSX9jkhTiLuT/s72-c/100+Days+of+Google+Dev.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-8053442261174607392</id><published>2015-05-17T07:29:00.002-07:00</published><updated>2015-05-17T07:31:49.781-07:00</updated><title type='text'>How Android OTA Updates work</title><content type='html'>Presentation at Embedded Linux Conference 2015 by Andrew Boie from Intel Corporation.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;AOSP is distributed with the source code and tools for full (whole image) and incremental (binary patch) secure over-the-air (OTA) software updates, specifically an alternate boot target Recovery Console, the updater logic itself, and tools to create software updates. There is no publicly available documentation for how this mechanism is supposed to be integrated. This presentation gives a detailed end-to-end description of how software updates are created, digitally signed, and applied to the device. It includes a discussion on the plug-in architecture and Edify language which allows builders to customize the OTA updates with platform-specific features. This is an updated version of a talk presented at ABS in 2012, with details on new OTA features including block-level OTA updates in Lollipop.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;Speakers&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Andrew Boie&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Intel Corporation&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Andrew Boie is a software engineer and scrum master for the Intel Android-IA project hosted on &lt;a href=&quot;http://01.org/&quot; target=&quot;_blank&quot;&gt;01.org&lt;/a&gt;, which aims to support Android on Intel Core and Atom platforms. Prior to working at Intel Andrew worked for Garmin International as an engineering team lead on Android Eclair-based Nuvifone projects. He spoke at ABS 2011 on the topic of Android OTA Software Updates.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/fteQpGipJ8c&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/8053442261174607392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/05/how-android-ota-updates-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8053442261174607392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/8053442261174607392'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/05/how-android-ota-updates-work.html' title='How Android OTA Updates work'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/fteQpGipJ8c/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-4170940795461647799</id><published>2015-05-12T13:32:00.003-07:00</published><updated>2015-05-12T13:32:52.581-07:00</updated><title type='text'>Google Play Services 7.3</title><content type='html'>Google Play Services 7.3 brings a ton of great new features to help you BUILD BETTER APPS! This update brings the ability to connect multiple wearables simultaneously to a single phone.&lt;br /&gt;
&lt;br /&gt;
There are also some great new updates to Google Fit, including nutrition types, and to Location.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FOn64iqlphk&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/4170940795461647799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/05/google-play-services-73.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/4170940795461647799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/4170940795461647799'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/05/google-play-services-73.html' title='Google Play Services 7.3'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/FOn64iqlphk/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-1701685650428604055</id><published>2015-05-06T09:56:00.001-07:00</published><updated>2015-05-06T09:56:40.833-07:00</updated><title type='text'>Older YouTube apps is no longer be supported</title><content type='html'>&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/UKY3scPIMd8&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
&lt;br /&gt;
If you see this video in your YouTube app’s video feeds, your device is affected. (Note: If the video appears unexpectedly in a web browser, it means that website is using an outdated method to access YouTube videos.)&lt;br /&gt;
&lt;br /&gt;
As Google upgrade the YouTube Data API to bring more features, the old version will be begin shutting down on April 20, 2015. This will result in the current YouTube app not working on certain device models from 2012 and older.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://youtube.com/devicesupport&quot; target=&quot;_blank&quot;&gt;https://youtube.com/devicesupport&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/1701685650428604055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/05/older-youtube-apps-will-no-longer-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/1701685650428604055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/1701685650428604055'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/05/older-youtube-apps-will-no-longer-be.html' title='Older YouTube apps is no longer be supported'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/UKY3scPIMd8/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-2122139392795620858</id><published>2015-05-04T11:41:00.001-07:00</published><updated>2015-05-04T11:48:04.209-07:00</updated><title type='text'>Using VideoView to play mp4, with MediaController enable/disable</title><content type='html'>Example to play mp4 on SDCard/ExternalStorage using &lt;a href=&quot;http://developer.android.com/reference/android/widget/VideoView.html&quot; target=&quot;_blank&quot;&gt;android.widget.VideoView&lt;/a&gt;. You can also enable/disable the&amp;nbsp;&lt;a href=&quot;http://developer.android.com/reference/android/widget/MediaController.html&quot; target=&quot;_blank&quot;&gt;MediaController&lt;/a&gt;,&amp;nbsp;contains the buttons like &quot;Play/Pause&quot;, &quot;Rewind&quot;, &quot;Fast Forward&quot; and a progress slider, by calling VideoView.setMediaController().&lt;br /&gt;
&lt;br /&gt;
With the MediaController set, tap on the video (or the VideoView) to display the controller.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/_mW4hytRO7A&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;br /&gt;
Example code:&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidvideoview;

import java.io.File;

import android.support.v7.app.ActionBarActivity;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.VideoView;
import android.os.Bundle;
import android.os.Environment;

public class MainActivity extends ActionBarActivity {
 
 ToggleButton enableMediaController;
 VideoView myVideoView;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  enableMediaController = (ToggleButton)findViewById(R.id.enableMediaController);
  myVideoView = (VideoView)findViewById(R.id.myvideoview);
  myVideoView.setVideoPath(getViewSrc());
  myVideoView.requestFocus();
  myVideoView.start();
  
  setMediaController();
  
  enableMediaController.setOnCheckedChangeListener(new OnCheckedChangeListener(){

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {
    setMediaController();
   }});
 }
 
 private void setMediaController(){
  if(enableMediaController.isChecked()){
   myVideoView.setMediaController(new MediaController(this));
  }else{
   myVideoView.setMediaController(null);
  }
 }

 private String getViewSrc(){
  File extStorageDirectory = Environment.getExternalStorageDirectory();
  String s = extStorageDirectory.getAbsolutePath() + &quot;/test.mp4&quot;;
  Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
  return s;
 }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    android:paddingBottom=&quot;@dimen/activity_vertical_margin&quot;
    android:paddingLeft=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingRight=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingTop=&quot;@dimen/activity_vertical_margin&quot;
    tools:context=&quot;com.example.androidvideoview.MainActivity&quot; &amp;gt;

    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;24dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;

    &amp;lt;ToggleButton
        android:id=&quot;@+id/enableMediaController&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:textOn=&quot;Disable MediaController&quot;
        android:textOff=&quot;Enable MediaController&quot;
        android:checked=&quot;true&quot;/&amp;gt;
    &amp;lt;VideoView
        android:id=&quot;@+id/myvideoview&quot;
        android:layout_width=&quot;fill_parent&quot;
        android:layout_height=&quot;wrap_content&quot; /&amp;gt;

&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
To play the file in SD Card, &amp;lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot;/&amp;gt; is needed in AndroidManifest.xml, otherwise &quot;Can&#39;t play this video&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5JybHuMrVa8Tftai4hbRpMnziI_1hfFuCwvoXBDrT7NkIp7cpHkY4GJ8BTuJR0BUuCiGg9DcBZTJg0F0s_3wfISOwzvSYuD0F64TwW-QkZH-hFHo8o0J9QHJEXlayHZawS8tDa-lPFjEk/s1600/ViewView_error_without_permission.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5JybHuMrVa8Tftai4hbRpMnziI_1hfFuCwvoXBDrT7NkIp7cpHkY4GJ8BTuJR0BUuCiGg9DcBZTJg0F0s_3wfISOwzvSYuD0F64TwW-QkZH-hFHo8o0J9QHJEXlayHZawS8tDa-lPFjEk/s400/ViewView_error_without_permission.png&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/2122139392795620858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/05/using-videoview-to-play-mp4-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/2122139392795620858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/2122139392795620858'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/05/using-videoview-to-play-mp4-with.html' title='Using VideoView to play mp4, with MediaController enable/disable'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/_mW4hytRO7A/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-722539033324225499</id><published>2015-04-09T13:38:00.002-07:00</published><updated>2015-04-09T13:43:13.356-07:00</updated><title type='text'>Android coding example to Set fontFamily</title><content type='html'>Android 4.1 adds several more variants of the Roboto font style for a total of 10 variants, and they&#39;re all usable by apps. Your apps now have access to the full set of both light and condensed variants. -&amp;nbsp;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.1.html&quot; target=&quot;_blank&quot;&gt;http://developer.android.com/about/versions/android-4.1.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsqEMgezSbP7E5QnOFyIGTeKW7T60DHotkBJ9JuRZia5yzgRzhf0q8QYz71lo9EQ3_zHmK1KQUrcHvoaqomp6yXbsh07YT0HlWkEaYgmABd0g91buAH_whAproJJLc4TeKKHIKyo7dZe1L/s1600/Android_fontFamily.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsqEMgezSbP7E5QnOFyIGTeKW7T60DHotkBJ9JuRZia5yzgRzhf0q8QYz71lo9EQ3_zHmK1KQUrcHvoaqomp6yXbsh07YT0HlWkEaYgmABd0g91buAH_whAproJJLc4TeKKHIKyo7dZe1L/s1600/Android_fontFamily.png&quot; height=&quot;250&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
MainActivity.java
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidfront;

import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Spinner;
import android.graphics.Typeface;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {
 
 String typeFaceName[] = {
  &quot;sans-serif&quot;,
  &quot;sans-serif-light&quot;,
  &quot;sans-serif-condensed&quot;,
  &quot;sans-serif-thin&quot;,
  &quot;sans-serif-medium&quot;};

 CheckBox checkBold, checkItalic;
 Spinner selTypeFace;
 EditText editArea;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  editArea = (EditText)findViewById(R.id.editarea);
  
  checkBold = (CheckBox)findViewById(R.id.boldsel);
  checkBold.setOnCheckedChangeListener(new OnCheckedChangeListener(){

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {
    updateFonts();
   }});
  
  checkItalic = (CheckBox)findViewById(R.id.italicsel);
  checkItalic.setOnCheckedChangeListener(new OnCheckedChangeListener(){

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {
    updateFonts();
   }});
  
  selTypeFace = (Spinner)findViewById(R.id.typefacesel);
  ArrayAdapter&amp;lt;String&amp;gt; adapter = 
   new ArrayAdapter&amp;lt;String&amp;gt;(this, 
    android.R.layout.simple_spinner_item, typeFaceName);
  adapter.setDropDownViewResource(
    android.R.layout.simple_spinner_dropdown_item);
  selTypeFace.setAdapter(adapter);
  selTypeFace.setOnItemSelectedListener(new OnItemSelectedListener(){

   @Override
   public void onItemSelected(AdapterView&amp;lt;?&amp;gt; parent, View view,
     int position, long id) {
    updateFonts();
   }

   @Override
   public void onNothingSelected(AdapterView&amp;lt;?&amp;gt; parent) {}});

 }
 
 private void updateFonts(){

  int tfSel = selTypeFace.getSelectedItemPosition();
  String selTypeFaceName = typeFaceName[tfSel];
  
  int style;
  
  if(!checkBold.isChecked() &amp;amp;&amp;amp; !checkItalic.isChecked()){
   style = Typeface.NORMAL;
  }else if(checkBold.isChecked() &amp;amp;&amp;amp; !checkItalic.isChecked()){
   style = Typeface.BOLD;
  }else if(!checkBold.isChecked() &amp;amp;&amp;amp; checkItalic.isChecked()){
   style = Typeface.ITALIC;
  }else{
   style = Typeface.BOLD_ITALIC;
  }
  
  Typeface tf = Typeface.create(selTypeFaceName, style);
  editArea.setTypeface(tf);

 }

}
&lt;/pre&gt;
&lt;br /&gt;
activity_main.xml
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:paddingBottom=&quot;@dimen/activity_vertical_margin&quot;
    android:paddingLeft=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingRight=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingTop=&quot;@dimen/activity_vertical_margin&quot;
    tools:context=&quot;com.example.androidfront.MainActivity&quot;
    android:orientation=&quot;vertical&quot; &amp;gt;
    
    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;24dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;
    
    &amp;lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        android:orientation=&quot;horizontal&quot; &amp;gt;
        
        &amp;lt;LinearLayout
            android:layout_width=&quot;0dp&quot;
            android:layout_height=&quot;match_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:orientation=&quot;vertical&quot; &amp;gt;
            
            &amp;lt;TextView
                android:fontFamily=&quot;sans-serif&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:fontFamily=&quot;sans-serif-light&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:fontFamily=&quot;sans-serif-condensed&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:fontFamily=&quot;sans-serif-thin&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:fontFamily=&quot;sans-serif-medium&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            
        &amp;lt;/LinearLayout&amp;gt;
        &amp;lt;LinearLayout
            android:layout_width=&quot;0dp&quot;
            android:layout_height=&quot;match_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:orientation=&quot;vertical&quot; &amp;gt;
            
            &amp;lt;Spinner
                android:id=&quot;@+id/typefacesel&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;/&amp;gt;
            &amp;lt;CheckBox 
                android:id=&quot;@+id/boldsel&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;BOLD&quot;/&amp;gt;
            &amp;lt;CheckBox 
                android:id=&quot;@+id/italicsel&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;ITALIC&quot;/&amp;gt;
            &amp;lt;EditText
                android:id=&quot;@+id/editarea&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;match_parent&quot;
                android:singleLine=&quot;false&quot;
                android:gravity=&quot;top&quot;
                android:background=&quot;#E0E0E0&quot;/&amp;gt;
        &amp;lt;/LinearLayout&amp;gt;
        
        
    &amp;lt;/LinearLayout&amp;gt;
&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
string resources of &quot;test&quot; is needed, read &lt;a href=&quot;http://android-coding.blogspot.com/2015/04/example-to-set-fonts-for-android.html&quot;&gt;HERE&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/0fC2HRnoQ74&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/722539033324225499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/04/set-fontfamily.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/722539033324225499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/722539033324225499'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/04/set-fontfamily.html' title='Android coding example to Set fontFamily'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsqEMgezSbP7E5QnOFyIGTeKW7T60DHotkBJ9JuRZia5yzgRzhf0q8QYz71lo9EQ3_zHmK1KQUrcHvoaqomp6yXbsh07YT0HlWkEaYgmABd0g91buAH_whAproJJLc4TeKKHIKyo7dZe1L/s72-c/Android_fontFamily.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-383457672654797174</id><published>2015-04-07T17:40:00.000-07:00</published><updated>2015-04-07T17:40:11.500-07:00</updated><title type='text'>Example to set fonts for Android</title><content type='html'>How to set fonts (Typeface and style) on Android using xml and programmatically.

&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuoBD1IiKDFjVihVs6vezkwpe05jKukuBRwB5gUcUdBQdQpdA970oiLAY4ljo_KUhmgRLm8um5apBqu85yk7GcjeMCATmUEpjMFzbjrI491UhurN4RNqUctreiz9cC3QsOuPX6N9d-DWpb/s1600/AndroidFonts.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuoBD1IiKDFjVihVs6vezkwpe05jKukuBRwB5gUcUdBQdQpdA970oiLAY4ljo_KUhmgRLm8um5apBqu85yk7GcjeMCATmUEpjMFzbjrI491UhurN4RNqUctreiz9cC3QsOuPX6N9d-DWpb/s1600/AndroidFonts.png&quot; height=&quot;250&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidfront;

import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Spinner;
import android.graphics.Typeface;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {
 
 String typeFaceName[] = {
  &quot;DEFAULT&quot;,
  &quot;DEFAULT_BOLD&quot;,
  &quot;MONOSPACE&quot;,
  &quot;SANS_SERIF&quot;,
  &quot;SERIF&quot;};
 
 Typeface typeFace[] = {
   Typeface.DEFAULT,
   Typeface.DEFAULT_BOLD,
   Typeface.MONOSPACE,
   Typeface.SANS_SERIF,
   Typeface.SERIF};

 CheckBox checkBold, checkItalic;
 Spinner selTypeFace;
 EditText editArea;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  editArea = (EditText)findViewById(R.id.editarea);
  
  checkBold = (CheckBox)findViewById(R.id.boldsel);
  checkBold.setOnCheckedChangeListener(new OnCheckedChangeListener(){

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {
    updateFonts();
   }});
  
  checkItalic = (CheckBox)findViewById(R.id.italicsel);
  checkItalic.setOnCheckedChangeListener(new OnCheckedChangeListener(){

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {
    updateFonts();
   }});
  
  selTypeFace = (Spinner)findViewById(R.id.typefacesel);
  ArrayAdapter&amp;lt;String&amp;gt; adapter = 
   new ArrayAdapter&amp;lt;String&amp;gt;(this, 
    android.R.layout.simple_spinner_item, typeFaceName);
  adapter.setDropDownViewResource(
    android.R.layout.simple_spinner_dropdown_item);
  selTypeFace.setAdapter(adapter);
  selTypeFace.setOnItemSelectedListener(new OnItemSelectedListener(){

   @Override
   public void onItemSelected(AdapterView&amp;lt;?&amp;gt; parent, View view,
     int position, long id) {
    updateFonts();
   }

   @Override
   public void onNothingSelected(AdapterView&amp;lt;?&amp;gt; parent) {}});

 }
 
 private void updateFonts(){
  int tfSel = selTypeFace.getSelectedItemPosition();
  Typeface tf = typeFace[tfSel];
  editArea.setTypeface(tf);
  
  int style;
  
  if(!checkBold.isChecked() &amp;amp;&amp;amp; !checkItalic.isChecked()){
   style = Typeface.NORMAL;
  }else if(checkBold.isChecked() &amp;amp;&amp;amp; !checkItalic.isChecked()){
   style = Typeface.BOLD;
  }else if(!checkBold.isChecked() &amp;amp;&amp;amp; checkItalic.isChecked()){
   style = Typeface.ITALIC;
  }else{
   style = Typeface.BOLD_ITALIC;
  }

  editArea.setTypeface(tf, style);
 }

}
&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:paddingBottom=&quot;@dimen/activity_vertical_margin&quot;
    android:paddingLeft=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingRight=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingTop=&quot;@dimen/activity_vertical_margin&quot;
    tools:context=&quot;com.example.androidfront.MainActivity&quot;
    android:orientation=&quot;vertical&quot; &amp;gt;
    
    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;24dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;
    
    &amp;lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        android:orientation=&quot;horizontal&quot; &amp;gt;
        
        &amp;lt;LinearLayout
            android:layout_width=&quot;0dp&quot;
            android:layout_height=&quot;match_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:orientation=&quot;vertical&quot; &amp;gt;
            
            &amp;lt;TextView
                android:typeface=&quot;normal&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:typeface=&quot;monospace&quot;
                android:textStyle=&quot;bold&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:typeface=&quot;sans&quot;
                android:textStyle=&quot;italic&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            &amp;lt;TextView
                android:typeface=&quot;serif&quot;
                android:textStyle=&quot;bold|italic&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;@string/test&quot;/&amp;gt;
            
        &amp;lt;/LinearLayout&amp;gt;
        &amp;lt;LinearLayout
            android:layout_width=&quot;0dp&quot;
            android:layout_height=&quot;match_parent&quot;
            android:layout_weight=&quot;1&quot;
            android:orientation=&quot;vertical&quot; &amp;gt;
            
            &amp;lt;Spinner
                android:id=&quot;@+id/typefacesel&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;/&amp;gt;
            &amp;lt;CheckBox 
                android:id=&quot;@+id/boldsel&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;BOLD&quot;/&amp;gt;
            &amp;lt;CheckBox 
                android:id=&quot;@+id/italicsel&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:text=&quot;ITALIC&quot;/&amp;gt;
            &amp;lt;EditText
                android:id=&quot;@+id/editarea&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;match_parent&quot;
                android:singleLine=&quot;false&quot;
                android:gravity=&quot;top&quot;
                android:background=&quot;#E0E0E0&quot;/&amp;gt;
        &amp;lt;/LinearLayout&amp;gt;
        
        
    &amp;lt;/LinearLayout&amp;gt;
&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
Add &amp;lt;string name=&quot;test&quot;&amp;gt; in /res/values/strings.xml.&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;resources&amp;gt;

    &amp;lt;string name=&quot;app_name&quot;&amp;gt;AndroidFront&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;hello_world&quot;&amp;gt;Hello world!&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;action_settings&quot;&amp;gt;Settings&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;test&quot;&amp;gt;ABCDEfghijKLMNOpqrstUVWXYz1234567890&amp;lt;/string&amp;gt;
&amp;lt;/resources&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/S1l0uYo5DYk&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/383457672654797174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/04/example-to-set-fonts-for-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/383457672654797174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/383457672654797174'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/04/example-to-set-fonts-for-android.html' title='Example to set fonts for Android'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuoBD1IiKDFjVihVs6vezkwpe05jKukuBRwB5gUcUdBQdQpdA970oiLAY4ljo_KUhmgRLm8um5apBqu85yk7GcjeMCATmUEpjMFzbjrI491UhurN4RNqUctreiz9cC3QsOuPX6N9d-DWpb/s72-c/AndroidFonts.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-4611915071529076721</id><published>2015-03-17T03:05:00.001-07:00</published><updated>2015-03-17T03:05:12.220-07:00</updated><title type='text'>Get number of available cores and cpu info</title><content type='html'>The method &lt;b&gt;&lt;a href=&quot;http://developer.android.com/reference/java/lang/Runtime.html#availableProcessors()&quot; target=&quot;_blank&quot;&gt;Runtime.availableProcessors()&lt;/a&gt;&lt;/b&gt; returns the number of processor cores available to the VM.&lt;br /&gt;
&lt;br /&gt;
And the &lt;b&gt;/proc/cpuinfo&lt;/b&gt; hold infoprmation about the CPU, you can read it as text file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1yMSAJThxoLfs38Yr8yT4KkVbWJi4h70PBqaAiZI-1LGvYZoTRO-XENEPQPuTbQAUAs3hbs_dD0PwU6mVigF-kLGSgbJzWlBfrkBf9V-72j2jDh19jBiAmbjs7WP7QTHqd7Ro5kXxHBuK/s1600/AndroidCpuInfo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1yMSAJThxoLfs38Yr8yT4KkVbWJi4h70PBqaAiZI-1LGvYZoTRO-XENEPQPuTbQAUAs3hbs_dD0PwU6mVigF-kLGSgbJzWlBfrkBf9V-72j2jDh19jBiAmbjs7WP7QTHqd7Ro5kXxHBuK/s1600/AndroidCpuInfo.png&quot; height=&quot;400&quot; width=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Example:
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidcpuinfo;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

 TextView cores, cpuinfo;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cores = (TextView)findViewById(R.id.cores);
        cpuinfo = (TextView)findViewById(R.id.cpuinfo);
        
        Runtime runtime = Runtime.getRuntime();
        int availableProcessors = runtime.availableProcessors();
        cores.setText(&quot;You have &quot; + availableProcessors + &quot; availableProcessors&quot;);
        
        //Read text file &quot;/proc/cpuinfo&quot;
        String file_cpuinfo = &quot;/proc/cpuinfo&quot;;
        String info = &quot;&quot;;
        try {
   FileReader fileReader = new FileReader(file_cpuinfo);
   BufferedReader bufferReader = new BufferedReader(fileReader);

   String line;
         try {
    while((line = bufferReader.readLine()) != null)
    {
     info += line + &quot;\n&quot;;
    }
    cpuinfo.setText(info);
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
         
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
    }

}
&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    android:paddingBottom=&quot;@dimen/activity_vertical_margin&quot;
    android:paddingLeft=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingRight=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingTop=&quot;@dimen/activity_vertical_margin&quot;
    tools:context=&quot;com.example.androidcpuinfo.MainActivity&quot; &amp;gt;

    &amp;lt;TextView
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;24dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;

    &amp;lt;TextView
        android:id=&quot;@+id/cores&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:textSize=&quot;20dp&quot;
        android:textStyle=&quot;italic&quot; /&amp;gt;

    &amp;lt;ScrollView
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot; &amp;gt;

        &amp;lt;TextView
            android:id=&quot;@+id/cpuinfo&quot;
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot; /&amp;gt;
    &amp;lt;/ScrollView&amp;gt;

&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/4611915071529076721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/03/get-number-of-available-cores-and-cpu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/4611915071529076721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/4611915071529076721'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/03/get-number-of-available-cores-and-cpu.html' title='Get number of available cores and cpu info'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1yMSAJThxoLfs38Yr8yT4KkVbWJi4h70PBqaAiZI-1LGvYZoTRO-XENEPQPuTbQAUAs3hbs_dD0PwU6mVigF-kLGSgbJzWlBfrkBf9V-72j2jDh19jBiAmbjs7WP7QTHqd7Ro5kXxHBuK/s72-c/AndroidCpuInfo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-5440003686646193160</id><published>2015-03-07T13:51:00.001-08:00</published><updated>2015-03-07T13:51:11.019-08:00</updated><title type='text'>Create mirror bitmap using Matrix</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHg5lZG_LhAUYSZ-PVg9oPwwg3Dvql8AVVAty1bufjzNjdKZNayHv5oKcwQMQkD5GbVqsVfM2zPJtLiWgXkcmTVpV0QmEeTTiYmE5FGHmVytK3MlepmoIpubJk8MrJ0mCBFB3E4tjrj3T6/s1600/MirrorBitmap.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHg5lZG_LhAUYSZ-PVg9oPwwg3Dvql8AVVAty1bufjzNjdKZNayHv5oKcwQMQkD5GbVqsVfM2zPJtLiWgXkcmTVpV0QmEeTTiYmE5FGHmVytK3MlepmoIpubJk8MrJ0mCBFB3E4tjrj3T6/s1600/MirrorBitmap.png&quot; height=&quot;400&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;package com.example.androidmirrorimage;

import android.support.v7.app.ActionBarActivity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends ActionBarActivity {

 ImageView image1, image2;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  image1 = (ImageView) findViewById(R.id.image1);
  image2 = (ImageView) findViewById(R.id.image2);

  Bitmap bm = BitmapFactory.decodeResource(getResources(),
    R.drawable.ic_launcher);
  
  image1.setImageBitmap(bm);
  image2.setImageBitmap(getMirrorBitmap(bm));

 }

 private Bitmap getMirrorBitmap(Bitmap src) {

  Matrix matrix = new Matrix();
  matrix.preScale(1, -1);
  Bitmap result = Bitmap.createBitmap(
    src, 0, 0, src.getWidth(), src.getHeight(), matrix, false);
  return result;
 }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;
    android:paddingBottom=&quot;@dimen/activity_vertical_margin&quot;
    android:paddingLeft=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingRight=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingTop=&quot;@dimen/activity_vertical_margin&quot;
    tools:context=&quot;com.example.androidmirrorimage.MainActivity&quot; &amp;gt;

    &amp;lt;TextView
        android:id=&quot;@+id/title&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;android-coding.blogspot.com&quot;
        android:textSize=&quot;28dp&quot;
        android:textStyle=&quot;bold&quot; /&amp;gt;

    &amp;lt;ImageView
        android:id=&quot;@+id/image1&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;0dp&quot;
        android:layout_weight=&quot;1&quot; /&amp;gt;

    &amp;lt;ImageView
        android:id=&quot;@+id/image2&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;0dp&quot;
        android:layout_weight=&quot;1&quot; /&amp;gt;

&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/5440003686646193160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/03/create-mirror-bitmap-using-matrix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5440003686646193160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/5440003686646193160'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/03/create-mirror-bitmap-using-matrix.html' title='Create mirror bitmap using Matrix'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHg5lZG_LhAUYSZ-PVg9oPwwg3Dvql8AVVAty1bufjzNjdKZNayHv5oKcwQMQkD5GbVqsVfM2zPJtLiWgXkcmTVpV0QmEeTTiYmE5FGHmVytK3MlepmoIpubJk8MrJ0mCBFB3E4tjrj3T6/s72-c/MirrorBitmap.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2865777313825124004.post-3474198381306031805</id><published>2015-02-24T14:40:00.001-08:00</published><updated>2015-02-24T14:40:33.867-08:00</updated><title type='text'>Introduction to Android Studio</title><content type='html'>&lt;i&gt;A high level introduction to Android Studio, the new IDE for Android application development. Learn why you should migrate your projects to Android Studio now and how it can help you be more productive as a developer. Rich layout editor, handy suggestions and fixes, new Android project view - these are just some of the things you can expect from the IDE, which is built on the successful IntelliJ IDEA.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/K2dodTXARqc&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;
</content><link rel='replies' type='application/atom+xml' href='http://android-coding.blogspot.com/feeds/3474198381306031805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://android-coding.blogspot.com/2015/02/introduction-to-android-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3474198381306031805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2865777313825124004/posts/default/3474198381306031805'/><link rel='alternate' type='text/html' href='http://android-coding.blogspot.com/2015/02/introduction-to-android-studio.html' title='Introduction to Android Studio'/><author><name>And.coding</name><uri>http://www.blogger.com/profile/01269407937760285746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/K2dodTXARqc/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>