Tuesday, October 9, 2012

opengl with android part I

OpenGL 

OpenGL (originally called Open Graphics Library) is a 2D and 3D graphics API that was
developed by Silicon Graphics, Inc. (SGI) for its Unix workstations. Although SGI’s
version of OpenGL has been around for a long time, the first standardized spec of
OpenGL emerged in 1992. Now widely adopted on all operating systems, the OpenGL
standard forms the basis of much of the gaming, computer-aided design (CAD), and
even virtual reality (VR) industries.
The OpenGL standard is currently being managed by an industry consortium called The
Khronos Group (http://www.khronos.org), founded in 2000 by companies such as
NVIDIA, Sun Microsystems, ATI Technologies, and SGI. You can learn more about the
OpenGL spec at the consortium’s web site:
http://www.khronos.org/opengl/

The official documentation page for OpenGL is available here:
http://www.opengl.org/documentation/

OpenGL ES

The Khronos Group is also responsible for two additional standards that are tied to
OpenGL: OpenGL ES, and the EGL Native Platform Graphics Interface (known simply as
EGL). As we mentioned, OpenGL ES is a smaller version of OpenGL intended for
embedded systems.
The EGL standard is essentially an enabling interface between the underlying operating
system and the rendering APIs offered by OpenGL ES. Because OpenGL and OpenGL
ES are general-purpose interfaces for drawing, each operating system needs to provide
a standard hosting environment for OpenGL and OpenGL ES to interact with. Android
SDK, starting with its 1.5 release, hides these platform specifics quite well. We will learn
about this in the second section titled “Interfacing OpenGL ES with Android.”

Fundamentals of OpenGL
This section will help you understand the concepts behind OpenGL and the OpenGL ES
API. We’ll explain all the key APIs. To supplement the information from this chapter, you
might want to refer to the “Resources” section towards the end of this chapter. The
indicated resources there include the Red book, JSR 239 documentation, and the
Khronps Group API reference.

here is list of some of this api

glVertexPointer
glDrawElements
 glColor
 glClear
 gluLookAt
glFrustum
 glViewport

cheapest dual core android india stellar horizon

cheapest dual core android india  stellar horizon



General Information
Brand Spice
Model Mi-500 Stellar Horizon
Weight 0 G
Form Factor Touch Bar
Dimensions 0x0x0 MM
Operating Frequency GSM 900 / 1800 / UMTS 2100 MHz | GSM 900 / 1800 / UMTS 2100 MHz
Dual Sim Yes, Dual SIM, Dual Standby
Touch Screen Yes, Capacitive Touchscreen

Display Details
Display Color 5.0 inches Capacitive Touchscreen
Display Size Spice Mi-500 Stellar Horizon has a display size of 480 x 800 px

Camera
Camera Yes, Rear Camera : 5.0 MP Camera (2592x1944 Pixels) with Auto Focus and LED Flash, Front Camera : 0.3 MP, VGA Camera (640x480 Pixels)
Camera Res. 2592 x 1944 Pixels 
Zoom Yes, Digital Zoom
Video Yes
Video Recording Yes
Video Player Yes, MP4 Player

Software
Games Yes
Java Yes
Browser Yes
Operating System Android OS, v2.3 (Gingerbread), upgrade to v4.0

Call Records
Phone Book Practically Unlimited
Missed Calls Practically unlimited
Received Calls Practically unlimited
Dialed Calls Practically unlimited

Battery
Stand By Time N/A
Talk Time N/A
Li-ion 2150 mAH
Memory
Internal Memory Yes, Internal Memory : 4 GB ROM + 512 MB RAM
External Memory Yes, Up to 32 GB
Memory Slot Yes, Micro SD/T-Flash Card

Message
SMS Yes
MMS Yes
Email Yes
Instant Messaging Yes
Social Networking Services Yes

Music
Ring Tone Vibration, Polyphonic, MP3
FM Yes, FM Radio
Music Yes, Music Formats : MP3, AAC, AAC+, WAV with Loud Speaker, 3.5mm Audio Jack
Speaker Yes
Headset Yes

Data
GPRS Yes
Bluetooth Yes
Wirless Protocol Yes, Wi-Fi 802.11 b/g, Wi-Fi Tethering
Port Yes, USB Port
Edge Yes
Infra Red No
3G Yes
GPS Yes
CPU Yes, Dual core 1GHz processor
Salespack Handset, Battery, Charger, Earphone, USB Cable, User Manual, Warranty Card

Others
Applications :
Secured by NQ Mobile Security Apps

Colours
Black




Spice MI-500

Wednesday, August 8, 2012

create nice looking ListView filter on Android

First, you need to create an XML layout that has both an EditText, and a ListView.
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <!-- Pretty hint text, and maxLines -->
    <EditText android:id="@+building_list/search_box" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="type to filter"
        android:inputType="text"
        android:maxLines="1"/>

    <!-- Set height to 0, and let the weight param expand it -->
    <!-- Note the use of the default ID! This lets us use a 
         ListActivity still! -->
    <ListView android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1" 
         /> 
</LinearLayout>
This will lay everything out properly, with a nice EditText above the ListView. Next, create a ListActivity as you would normally, but add a setContentView() call in the onCreate() method so we use our recently declared layout. Remember that we ID'ed the ListView specially, with android:id="@android:id/list". This allows the ListActivity to know which ListView we want to use in our declared layout.
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.filterable_listview);

        setListAdapter(new ArrayAdapter<String>(this,
                       android.R.layout.simple_list_item_1, 
                       getStringArrayList());
    }
Running the app now should show your previous ListView, with a nice box above. In order to make that box do something, we need to take the input from it, and make that input filter the list. While a lot of people have tried to do this manually, most ListView Adapter classes come with a Filter object that can be used to perform the filtering automagically. We just need to pipe the input from the EditText into the Filter. Turns out that is pretty easy. To run a quick test, add this line to your onCreate() call
adapter.getFilter().filter(s);
Notice that you will need to save your ListAdapter to a variable to make this work - I have saved my ArrayAdapter<String> from earlier into a variable called 'adapter'.
Next step is to get the input from the EditText. This actually takes a bit of thought. You could add an OnKeyListener() to your EditText. However, this listener only receives some key events. For example, if a user enters 'wyw', the predictive text will likely recommend 'eye'. Until the user chooses either 'wyw' or 'eye', your OnKeyListener will not receive a key event. Some may prefer this solution, but I found it frustrating. I wanted every key event, so I had the choice of filtering or not filtering. The solution is a TextWatcher. Simply create and add a TextWatcher to the EditText, and pass the ListAdapter Filter a filter request every time the text changes. Remember to remove the TextWatcher in OnDestroy()! Here is the final solution:
private EditText filterText = null;
ArrayAdapter<String> adapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.filterable_listview);

    filterText = (EditText) findViewById(R.id.search_box);
    filterText.addTextChangedListener(filterTextWatcher);

    setListAdapter(new ArrayAdapter<String>(this,
                   android.R.layout.simple_list_item_1, 
                   getStringArrayList());
}
private TextWatcher filterTextWatcher = new TextWatcher() {

    public void afterTextChanged(Editable s) {
    }

    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before,
            int count) {
        adapter.getFilter().filter(s);
    }
};
@Override
protected void onDestroy() {
    super.onDestroy();
    filterText.removeTextChangedListener(filterTextWatcher);
}

convert Drawable to Bitmap

This piece of code helps.
 
Bitmap icon = BitmapFactory.decodeResource(context.getResources(),
                                           R.drawable.icon_resource);
Edit: Here a version where the image gets downloaded.
String name = c.getString(str_url);
URL url_value = new URL(name);
ImageView profile = (ImageView)v.findViewById(R.id.vdo_icon);
if (profile != null) {
    Bitmap mIcon1 =
        BitmapFactory.decodeStream(url_value.openConnection().getInputStream());
    profile.setImageBitmap(mIcon1);
}
 
This converts a BitmapDrawable to a Bitmap.
Drawable d = ImagesArrayList.get(0);  Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
 

transparent activity android

Add the following style In your res/values/styles.xml file (if you don’t have one, create it.) Here’s a complete file:
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>
(the value @color/transparent is the color value #00000000 which I put in res/values/color.xml file. You can also use @android:color/transparent in later Android versions)
Then apply the style to your activity, for example:
<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...</activity>

pick a image from gallery (SD Card) for my app in android

Here's some sample code on how to do that:
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case REQ_CODE_PICK_IMAGE:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};

            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String filePath = cursor.getString(columnIndex);
            cursor.close();


            Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
        }
    }
}

set HttpResponse timeout for Android in Java

HttpGet httpGet = new HttpGet(url);
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used. 
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT) 
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpResponse response = httpClient.execute(httpGet);

If you want to set the Parameters of any existing HTTPClient (e.g. DefaultHttpClient or AndroidHttpClient) you can use the function setParams().
httpClient.setParams(httpParameters);

check internet access on android

here is the code which will help to check internet available

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}

Tutorials and libraries for OpenGL-ES games on Android

Android tutorials:
Other Android OpenGL-ES information:
iPhone OpenGL-ES tutorials (where the OpenGl-ES information is probably useful):
As for libraries which a beginner might use to get a simpler hands-on experience with OpenGL-ES, I have only found Rokon, which is recently started, thus has many holes and bugs. And it's gnuGPL licensed (at the moment) which means it cannot be used, if we wish to sell our games.

1.  INsanityDesign
2.  nehe

Monday, August 6, 2012

Difference between Corona, Phonegap, Titanium



  1. PhoneGap is not just a native wrapper of a web app. Through the PhoneGap javascript APIs, the "web app" has access to the mobile phone functions such as Geolocation, Accelerometer Camera, Contacts, Database, File system, etc. Basically any function that the mobile phone SDK provides can be "bridged" to the javascript world. On the other hand, a normal web app that runs on the mobile web browser does not have access to most of these functions (security being the primary reason). Therefore, a PhoneGap app is more of a mobile app than a web app. You can certainly use PhoneGap to wrap a web app that does not use any PhoneGap APIs at all, but that is not what PhoneGap was created for.
  2. Titanium does NOT compile your html, css or javascript code into "native bits". They are packaged as resources to the executable bundle, much like an embedded image file. When the application runs, these resources are loaded into a UIWebView control and run there (as javascript, not native bits, of course). There is no such thing as a javascript-to-native-code (or to-objective-c) compiler. This is done the same way in PhoneGap as well. From architectural standpoint, these two frameworks are very similar.

     3. Corona SDK is a software development kit created by Walter Luh, co-founder of Corona Labs (formerly known as Ansca Mobile). It allows software programmers to build mobile applications for the iPhone, iPad, and Android devices.
    Corona lets developers use integrated Lua, layered on top of C++/OpenGL, to build graphically rich applications that are also lightweight in size and quick in development time. The SDK does not charge per-app royalty or impose any branding requirement, and has a subscription-based purchase model that allows new features to be rolled out immediately to users.

hide Android Soft Keyboard

hide Android Soft Keyboard

 You can force Android to hide the virtual keyboard using the InputMethodManager, calling hideSoftInputFromWindow, passing in the token of the window containing your edit field.

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
This will force the keyboard to be hidden in all situations. In some cases you will want to pass in InputMethodManager.HIDE_IMPLICIT_ONLY as the second parameter to ensure you only hide the keyboard when the user didn't explicitly force it to appear (by holding down menu).

 Also useful for hiding the soft keyboard is:

getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
This can be used to suppress the keyboard until the user actually touches the edittext view.


python on android

Python on Android

http://kivy.org/#home
"Open source library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps."
"Kivy is running on Linux, Windows, MacOSX and Android. You can run the same [python] code on all supported platforms."
Kivy Showcase app
https://market.android.com/details?id=org.kivy.showcase&hl=en

There is also the new ASE project, it looks awesome, and has some integration with native Android components. Android Scripting Environment

Difference between px, dp, dip and sp in Android

A dimension value defined in XML. A dimension is specified with a number followed by a unit of measure. For example: 10px, 2in, 5sp. The following units of measure are supported by Android:
dp
Density-independent Pixels - An abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi (dots per inch) screen, on which 1dp is roughly equal to 1px. When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Using dp units (instead of px units) is a simple solution to making the view dimensions in your layout resize properly for different screen densities. In other words, it provides consistency for the real-world sizes of your UI elements across different devices.
sp
Scale-independent Pixels - This is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference.
pt
Points - 1/72 of an inch based on the physical size of the screen.
px
Pixels - Corresponds to actual pixels on the screen. This unit of measure is not recommended because the actual representation can vary across devices; each devices may have a different number of pixels per inch and may have more or fewer total pixels available on the screen.
mm
Millimeters - Based on the physical size of the screen.
in
Inches - Based on the physical size of the screen.
Note: A dimension is a simple resource that is referenced using the value provided in the name attribute (not the name of the XML file). As such, you can combine dimension resources with other simple resources in the one XML file, under one <resources> element.

“Debug certificate expired” error in Eclipse Android plugins

Here is the solution for your problem

Delete your debug certificate under ~/.android/debug.keystore on Linux and Mac OS X; the directory is something like %USERPROFILE%/.androidon Windows.
The Eclipse plugin should then generate a new certificate when you next try to build a debug package. You may need to clean and then build to generate the certificate.

Saturday, June 2, 2012

Google: Ice Cream Sandwich now accounts for 7.1 percent of Android user base

Well, it's about time that Ice Cream Sandwich made some headway -- even if the process is much slower than consumers deserve. According to the Android developer hub, Android 4.0 now accounts for 7.1 percent of all Android smartphone and tablet installations, which is a sharp and welcome increase over the 2.9 percent figure that we reported just two months ago. Naturally, Gingerbread users still account for the lion's share of the Android ecosystem with 65 percent, but it's worth pointing out that this segment also grew during the last month -- no doubt at the expense of Froyo and Eclair. Don't know about you, but we like our desserts fresh, thank you very much. Go ahead and hop the break to see the full breakdown.

HTC Desire C goes on sale at Three UK

HTC's Desire C has made its way onto Three's speedy network in the UK. The budget-conscious handset (C is rumored to stand for "cheap") comes with 4GB storage, microSD slot and a 5-megapixel camera. You'll be pawing at Ice Cream Sandwich via a 480 x 320 display which is driven by a surprisingly decent 600MHz processor. You can snatch one on contract for as little as £13 a month, or buy the thing outright for £150 from today.

Filed Under Cellphones HTC One S shows up in Taiwan with 1.7GHz Snapdragon S3, speed lovers wail

We'd been wondering just where the HTC Ville C would go with its odd mix of a 1.7GHz Snapdragon S3 and the One S' otherwise sleek hardware. Of all places, it's HTC's home turf of Taiwan: although the One S is still branded as the same phone, the usual 28-nanometer, 1.5GHz Snapdragon S4 we've come to love has been replaced with a high-frequency version of its ancestor. When grilled about the switch by ePrice, HTC insisted that the new version would "provide consumers [with] the same experience." We're not so sure after having seen lower Nenamark scores, but we suspect many owners will be too happy with the micro arc oxidized body and rapid-fire camera to notice. All the same, charging NT$17,900 ($600) for a less efficient take on the same formula makes us wonder if supply for the 28-nanometer S4 didn't force a swap.

Sony announces water/dust-proof Xperia go, acro S


Sony Mobile Communications (“Sony Mobile”) today announced two new Xperia™ smartphones for consumers looking for premium specifications and beautiful design with extra durability and water resistance. Xperia go and Xperia acro S have scratch resistant mineral glass displays and meet industry standard IP ratings* (International Protection) for protection against dust and water immersion.
Xperia go and Xperia acro S enable easy connectivity to share and enjoy content on TV, smartphone, laptop or tablet. They also come preloaded with Music Unlimited and Video Unlimited from Sony Entertainment Network giving access to Hollywood blockbusters, TV series and millions and millions of music tracks. Xperia go and Xperia acro S will be available globally from the third quarter of 2012.
Consumer demand for durable and water resistant smartphones
Industry research demonstrates that consumers consider durability and water resistance as important features when purchasing a smartphone. For example, a study conducted in Japan by Mobile Marketing Data Labo** highlighted water resistance in the top three most important features for smartphone buyers. In a recent poll*** on Sony Mobile’s Facebook community more than a third of participants stated durability as the most important feature when choosing a smartphone. Also, Xperia acro HD, which has the same durability and water resistance features as Xperia acro S, has been the best selling smartphone in Japan since its launch in March****, further demonstrating the appeal of durability and water resistance.
Xperia go – the stylish Sony smartphone made for extra durability
With Xperia go consumers can watch the latest movies and TV shows in razor sharp quality and with super fast performance. Its sleek and stylish design means durable and water resistant smartphones no longer have to look bulky and ruggedized.
Xperia acro S – The stylish water resistant HD smartphone
Xperia acro S boasts a 4.3” HD Reality Display for razor sharp clarity, full HD video recording, HD video chat and easy HDMI TV connectivity to enjoy content on the big screen. NFC enabled, Xperia acro S can easily open applications with one touch against an Xperia SmartTag.

Saturday, May 26, 2012

Sony pushing ICS to more devices next week, confirms Xperia Play won't be upgraded

Owners of the Xperia Play, it's time to curl up with a teddy bear and your favorite ice cream -- just as long as it's not in sandwich form. After the sudden and unexplained disappearance of the "PlayStation Phone" from the Android 4.0 upgrade list yesterday, Sony has followed it up with a full confirmation accompanied by the usual explanation. As you may have already guessed, the manufacturer tells us that after extensive testing, it was determined that "a consistent and stable experience, particularly with gaming, cannot be guaranteed for this smartphone on Ice Cream Sandwich... in this instance the ICS upgrade would have compromised stability." Sony went on to discuss that it received similar feedback from the developer community after releasing a beta ROM. Still, after being told repeatedly that the entire 2011 smartphone lineup would receive the update, we can't help but be a bit heartbroken by the news.
In the same breath, however, Sony also updated its timeline for the rest of the lineup that is still on schedule to receive upgrades to Ice Cream Sandwich: the Xperia arc, neo, mini, mini pro, pro, active and Sony Ericsson Live with Walkman will begin receiving their refreshes next week. The Xperia S is still on track for an end of June rollout, with the Xperia P closely following it and the Xperia U sometime in the third quarter. It's just unfortunate that the good tidings must be balanced out by equally horrible news, depending on which device you own.

Samsung's GSM-only dual-SIM Galaxy Ace Duos kicks off its world tour in Russia next month

While Samsung's Galaxy Ace Duos has already burst onto the scene in India pulling double duty on GSM and CDMA networks, the company today announced its dual-SIM GSM-only cousin will begin shipping in June in Russia, before rolling out to Europe and other regions later. Running Android 2.3 on an 832MHz processor and flashing a 3.5-inch HVGA screen, that dual-SIM capability is the highlight, with Samsung's "Dual SIM always on" feature that forwards calls from the phone number on SIM 2, even if the user is on a call through SIM 1. Bill Bellamy and all others in need of such features can check the press release after the break for a few more details, or the gallery below to get a look from a few more angles of this son of the original Galaxy Ace.

Cellphones HTC One X for AT&T gets unofficial bootloader unlock

No thanks to AT&T, owners of the carrier-branded HTC One X can now unlock their phone's bootloader on the HTCdev website. The process works by altering the handset's identifier, which causes the One X to appear as a Rogers unit on HTC's servers. While the instructions should be quite simple for those with the proper knowhow, they require knowledge and proper configuration of ADB, use of a hex editor and a rooted handset. Many users have already reported success with this method, but keep in mind that AT&T might not smile on the trickery if you ever need to seek warranty repair. Naturally, all of this frustration could've been easily avoided had Ma Bell simply considered the needs of power users in the first place, but until the day comes when the carrier rights its ways, just know that eager hackers have a tendency to come out on top.

Thursday, May 24, 2012

Google brings in-app subscriptions to Android

Developers can never have too many options when it comes to ways to take your money. Google has opened the doors to In-app purchases, carrier billing and now, in-app subscriptions. Perhaps it wasn't enough that game creators be able to lure you in with perks and content you could purchase for a one-time fee, now devs can choose to hit you with a monthly charge for the privilege of using their wares. Of course, it's not all that bad. Subscription-based games aren't the only potential uses here. Customers can now buy monthly or annual subscriptions to services or publications as well. There's even a publisher API for extending the subscription beyond the walls of Google Play and your Android device. Glu Mobile will be first out the gate, turning on subscriptions in properties like Frontline Commando, but we're sure plenty of others will follow. Soon enough you might be able to get your New York Times subscription or Spotify Premium account without ever leaving the comfort of the Android app. Any handset with Google Play 3.5 or higher installed should have access to subscriptions starting today.

Tuesday, May 15, 2012

Samsung Galaxy S III battery tested by GSMArena, lasts as long as your tablet

Samsung made much ado over the Galaxy S III's 2,100mAh battery, but we've been wondering whether or not that power pack was a major perk or just a necessity to offset that hefty Exynos 4 Quad. One of what looks to be a growing number of escaped pre-release devices was put through the ringer in battery tests and came out looking spic-and-span: it lasted for just over 10 hours for video and voice, or long enough to make even a tablet like the new iPad or Transformer Prime break a sweat. Web browsing wasn't quite so hot, though, which at a bit over five hours was well behind the seven hours of an iPhone 4S. Don't expect the seemingly infinite battery of the Droid RAZR Maxx, and don't be surprised if final devices handle differently, but those with the international Galaxy S III should make it through at least a few interminable meetings watching their favorite reruns... not that we'd condone such a thing.

LG lines up Optimus 4X HD for launch in Germany, Sweden, Great Britain, Italy and Poland

While there's already plenty of excitement around other quad-core Android phones, LG will join the party soon when its Optimus 4X HD launches in a few European countries next month. Germany, Sweden, Great Britain, Italy and Poland are all on deck in June, where this latest Optimus variant will bring a 4.7-inch 720p HD IPS LCD, Tegra 3 CPU and 2,150mAh battery coupled with Android 4.0 Ice Cream Sandwich. On the software front, LG is touting its ability to take and share quick notes as well as "Media Flex" video playback. We got our hands all over this one during MWC 2012 a few months ago so until it drops in your neck of the woods, check out our gallery and video for a closer look.

Samsung Galaxy S III gets permission to enter US, still only with HSPA+

This is the same European version we've already spent so much time with, just stopping by the FCC to get its wireless paperwork in order. There's no LTE onboard, but the phone would handle HSPA+ on AT&T or just EDGE on T-Mo if it was (now legally) carried into the States. The regulatory label also helpfully alludes to one of the phone's key selling points: its 2,100mAh battery, which reportedly lasts for a tablet-like ten hours under load. It'll be globally available from May 29th, if you fancy getting into the import / export business.

Friday, May 11, 2012

Samsung Galaxy S III: Pentile Super AMOLED used 'because it lasts longer'

Nice processor, shame about the Pentile. It's something that several people have been saying about Samsung's new chest-beating flagship. So why didn't it plump for the warmer Super AMOLED Plus found on both its predecessor and the bigger-boned Galaxy Note? According to Samsung's spokesperson, it's because those blue sub-pixels that are absent on Super AMOLED displays degrade faster than their red and green allies. With the aim of keeping its phones healthily glowing for at least 18 months, it made the decision to go with the Pentile formation. Compared to the Galaxy Nexus, which matches the resolution of the Galaxy S III, Samsung has also shrunk the gaps between pixels on its newest phone in an effort to reduce complaints leveled at its Super AMOLED technology -- although we didn't notice it all that much under our microscope.

LG Optimus Elite on pre-order at Virgin Mobile; carrier's first NFC phone in the US

Sprint may already count the LG Optimus Elite among its roster of smartphones, but today that handset is finding a second home at Virgin Mobile. The $150 Gingerbread-powered device is now up for pre-order, and Virgin says it will start shipping on May 15th. Though the 3.5-inch HVGA display, 800MHz CPU and 5-MP rear camera aren't exactly impressive specs, the Optimus Elite stands out as the carrier's first phone to include NFC and Google Wallet for mobile payments. Unlike Sprint, which offers a white version, Virgin Mobile will only sell the Optimus Elite in silver. And while the former carrier prices the phone at just $30 after a mail-in rebate, Virgin's cheaper monthly plans might convince customers that it's worth shelling out more up front.

Thursday, May 3, 2012

Samsung Galaxy S III announced, coming with 4.8-inch 720p Super AMOLED display

After months of waiting, Samsung has officially announced the company flagship smartphone for 2012 today. Dubbed as Samsung Galaxy S III, it will go on sale in across the world starting the end of this month.
Coming to the juicy details, Samsung Galaxy S III sports a 4.8–inch 720p display, 1.4GHZ Exynos 4 quad core processor, Android 4.0, include 8-megapixel rear camera, 1.9-megapixel front-facing camera, 16 or 32GB of storage with microSD expansion, Bluetooth 4.0, GPS with GLONASS, 802.11n Wi-Fi, NFC, and a 2,100mAh battery.
As the event is happening live right now in London, we will adding more and more interesting details, so keep coming back to check more.
The previous version of the smartphone ‘Galaxy S II’ was a big hit and Samsung has shipped over 20 million units of the smartphone.

Wednesday, May 2, 2012

Galaxy Nexus for Verizon Wireless receives Android 4.0.4 update

Owners of the Galaxy Nexus for Verizon Wireless are now joining the proud ranks of Android 4.0.4 users. As a common practice, it seems the rollout is gradual, and many of the devices receiving the update appear to be the property of corporate stores. Nonetheless, the 39.8MB download carries a build number IMM76K and similarly brings an update to the baseband software -- which is reason to hope that the (resolved) connectivity issues reported by Android 4.0.4 users of the HSPA+ and Sprint variants will be a non-issue. Are you one of the proud and few to receive the refresh? Let us know in the comments below.

Google Play adds carrier billing for music, movies and books

Don't feel like having media purchased through Google Play billed directly to your credit card? Well, now you can have those charges simply added to your monthly phone bill, provided you're on T-Mobile here in the US, or NTT Docomo, KDDI, or Softbank in Japan. According to Google's posting about the move, Sprint will soon be offering the option to pay for movies, books and movies purchased through Big G's market along side your voice and data plan. For T-Mobile subscribers that means both apps and content can simply be added to your tab, while AT&T is sticking with carrier billing for apps only at the moment. Conspicuously absent from the whole shebang, however, is Verizon, which has been one of the more prominent Android pushers here in the US. For a complete list of carriers with at least some direct billing features check out the more coverage link.

Tuesday, May 1, 2012

Huawei throws R&D dollars at gesture control, cloud storage, being more 'disruptive'

Undeterred by the fact that even humans struggle to interpret certain gestures, Huawei says it's allocating a chunk of its growing R&D budget to new motion-sensing technology for smartphones and tablets. The company's North American research chief, John Roese, told Computerworld that he wants to allow "three-dimensional interaction" with devices using stereo front-facing cameras and a powerful GPU to make sense of the dual video feed. Separately, the Chinese telecoms company is also putting development cash into a cloud computing project that promises to "change the economics of storage by an order of magnitude." Roese provided scant few details on this particular ambition, but did mention that Huawei has teamed up with CERN to conduct research and has somehow accumulated over 15 petabytes of experimental physics data in the process. Whatever it's up to, Huawei had better get a move on -- others are snapping up gesture recognition and cloud patents faster than you can say fa te ne una bicicletta with your hands.

Cyanogenmod 9 struts its stuff on HTC's One X


So you've procured yourself HTC's new super slim, 4.7-inch halo phone: the One X. By now, you probably have the device set up just the way you like it: applications configured, widgets in place and Adele ringtone set. But there's just something else left to do, isn't there? If (like some of us) you're a smartphone user who just can't leave well enough alone, you'll be excited to learn that a build of Cyanogenmod 9 for the Uno Equis has been made available via the MoDaCo forums. The ROM will deliver that stock Android experience, and all those CM9 accoutrements, to those that don't fancy the panache of Sense 4.0. The forum post does caution that the One's camera, and hotspot functionality, aren't currently working, so interested parties best proceed with caution. If all that doesn't phase you, grab a cup of coffee, get the Android SDK all warmed up and take this ROM for a spin!

Samsung Canada begins rollout of ICS today

Let's not speak of the several months it took for Ice Cream Sandwich to finally begin showing up on Samsung devices. Rather, the fine mobile-loving folks in Canada should just take a brief moment to embrace the present and not-too-distant future, because Samsung is now officially rolling out its long-awaited Android update to the nation up north -- complete with the latest version of TouchWiz -- to select devices today and continuing throughout the rest of the quarter. The list of featured products include the Galaxy S II (along with its LTE, LTE HD and X variants), Galaxy Note and several Galaxy Tabs, such as the 7.0, 7.0 Plus, 8.9 and 10.1. Of course, not everyone will get the beloved installation invitation today, since these large-scale rollouts seem to take a healthy amount of time. If you simply can't wait, it couldn't hurt to give the 'ol manual update method a try.

Acer Iconia Tab A500 getting ICS update in India

Acer has started rolling out the much awaited Android 4.0.3 update for Iconia Tab A500 users in India. This update is available OTA and is 395MB in size.
All you have to do is, wait for the OTA notification to show up on your tablet and follow the instructions. Ice Cream Sandwich aka Android 4.0 brings several new features to the tablet including new People app, performance enhancements, and UI changes.
Do let us know about you experience with the update in the comments.

Saturday, April 28, 2012

Sony Xperia ST21i with ICS leaks out, shows off its chunky physique

It may not be as sleek as its S kin, or even as powerful as that mid-level U, but this recently leaked Xperia ST21i might just have enough goodies to lure a handful of you in. According to Techblog, this thick, 3.2-inch unit packs some pretty run-of-the-mill features, including an 800MHz Qualcomm chip paired with 512MB of RAM, a 3-megapixel shooter to help with those Instagram shots and a low 480 x 320 screen res. Unlike a few of the other Xperias still waiting to be served, though, the ST21i has already been filled with a portion of Google's famous ICS. No word yet on when the pudgy device will see a legit introduction, but until then you can peek at some extra photos at the source link below.

Friday, April 27, 2012

HTC working on own processors with ST-Ericsson

It seems HTC is readying its own set of processors. According to a report in China Times, Taiwanese manufacturer has signed a memorandum of cooperation with ST-Ericsson to develop application processor for low-end smartphones.
This processor is expected to go in production next year. There are currently no details available about this deal between HTC and ST-Ericsson, but we expect an announcement soon.
With manufacturers like Samsung and Apple already using their own processor in devices, HTC too wants to reduce dependence on Qualcomm and NVIDIA.

HTC working with Facebook to make a custom phone for the social network

Another day and another set of rumours, this time is we are talking about the Facebook phone. It seems the fabled Facebook phone is back, and if we believe Digitimes, HTC is building it.
Tired of step-motherly treatment from Google after the Nexus One, HTC has decided to take the matters in its own hands and is working with Facebook to make a customised smartphone. Digitimes states that this phone will be running on Android but will integrate Facebook functions deeply in the device.
Facebook is expected to further expand its investments and sources of income after becoming a public company, and the launch of own-brand smartphones will be part of its development strategy, the sources told Digitimes.
Another interesting tidbit coming out of this report is that Samsung will continue to build Nexus smartphones. So, if you were hoping to see a Motorola or LG, or even Sony Nexus smartphone, you are out of luck.

Google starts selling Galaxy Nexus on Google Play store in US

It is one of those days, when I envy the Android fans in United States, the reason? Well, Google has re-opened its online store to sell Galaxy Nexus directly to consumers in the country.
The search giant is currently offering three versions of the smartphone to consumers – Unlocked, with Verizon and with Sprint. While the unlocked version has been priced at USD 399.99 (yes!), the contract versions will cost USD199.99 with a two-year commitment.
This is the second-time, Google is trying to directly sell a Nexus smartphone to consumers, the first attempt with Nexus One in 2010 was a big flop. We hope company has fixed the service and other issues this time and consumers are not disappointed with their purchase from Google store.
The Galaxy Nexus can now be grabbed by the US consumers from the devices section in Google Play store. As this section is called ‘devices’, it looks like we are going to see more such smartphones and tablets on sale in the coming days.
For those, who have been living in a cave, Galaxy Nexus is the company reference smartphone for the Ice Cream Sandwich release of Android and comes with a 1.2GHz dual core processor, 1GB RAM, Android 4.0.4, 16GB of internal storage, NFC and 5MP rear camera.

Sony India start rolling out Android 4.0 for Xperia arc S, Xperia neo V, Xperia ray

Sony Mobile India has announced on its official Facebook page that company has started rolling out much-awaited Android 4.0 update for three of its Xperia series smartphones. These smartphones are Xperia arc S, neo V and Ray.
This update can now be grabbed via the PC Companion tool, which is available for download from Sony’s website.
This update brings the ICS goodness like Face Unlock, re-sizable widgets, performance improvements, new task switcher and much more.
Other devices in the Xperia range – Xperia arc, Xperia PLAY, Xperia neo, Xperia mini, Xperia mini pro, Xperia pro, Xperia active and Sony Ericsson Live with Walkman will get the update at the end of May or early June.
More on the update here.

LG Optimus True HD LTE's European assault begins in Portugal, Germany and Sweden

While the latest LTE and HD equipped addition to LG's Optimus line has already landed across Asia (Korea, Japan) and North America (US - AT&T, US - Verizon, Canada) under a few different names, the newly rebranded Optimus True HD LTE is finally prepared for a European debut. As seen by the flags flying above, this week LG will begin rolling out to Portugal, Germany and Sweden, with Britain and France on deck for the second half of the year when LTE service is available. The other flags present represent further Asian rollouts in Hong Kong and Singapore. The plan, described in the Korean press release linked below (Update: English PR after the break), is apparently to make LG synonymous with LTE, although we can't see how renaming its current dual-core standard bearer every other week is helping.

Samsung's Q1 2012 profits nearly double year-over-year on higher margins for TVs and phones

The numbers for Samsung's first quarter of 2012 are in and as it expected they are up sharply over the same period from 2011. After predicting profits of 5.8 trillion won it managed to top that, notching an operating profit of 5.85 trillion won ($5.16 billion US) for the quarter, a 98 percent gain over a year ago. Phones accounted for 73 percent of the profit, contributing 4.27 trillion won to the bottom line. As the world awaits the debut of what we assume will be the Samsung Galaxy S III May 3rd powered by its Exynos 4 Quad CPU, there's clearly no shortage of demand for the Galaxy S II and Note. Sales of chips and TVs decreased from last quarter, but like its competitor LG, growing sales of high res tablet panels (we wonder which one that might be), 3DTVs and OLEDs increased profitability. Specifically, the high end 7000/8000 series of HDTVs increased sales by 50 percent from last year, while the company plans to focus on "region-specific" LED models for emerging markets, and high end (and high priced) flat-panels for developed markets.
We're listening in to the earnings call at the moment, and we'll let you know if there's any other details that come out of what is mostly boring numbers talk. So far it's all pretty businessy, although in response to a question executives did confirm that they expect the Galaxy S III and Galaxy Note to occupy different segments in terms of size. So there you have it -- the Galaxy S III will (shockingly) not have a 5.3-inch screen. Also, it predictably is trying to continue the trend of global launches, although that hardly puts to rest the issue of how long we may end up waiting for carrier-specific versions here in the US. Check out the rest of Samsung's details in a press release and a few slides from the report embedded after the break

Samsung Galaxy S Advance gets April 30th release date in UK, needs more suffixes

Pitched spec-wise somewhere between Samsung's first Galaxy S and its very popular sequel, think of the Galaxy S Advance as the original, reimagined for a new generation -- a generation that remembers only a few years back. The attractive Super AMOLED display with dual-core bones caught our eye at MWC a few months earlier and will finally arrive on rain-soaked British shores on April 30th at the like of Phones 4u and Vodafone. The bad news? It's still toting that Touchwizzed Gingerbread, and arrives just days before Samsung shows what it's been hiding in its top-spec drawers.

Motorola Droid RAZR Maxx hitting the UK in mid-May, available for pre-order now

We were aware of Motorola's plan to send the husky member of the Droid RAZR lineup on an overseas quest next month, but aside from telling us it was heading to Europe, we hadn't heard any specifics -- at least until now. Earlier today, Moto announced the Droid RAZR Maxx will bring its long-lasting powers to the UK, with expected availability around mid-May and pre-orders commencing today. Currently, this 4.3-inch, Gingerbread handset is up for grabs from Clove and Expansys for £430.80 and £429.99, respectively, while Amazon is also planning to offer the device. If that kind of cash isn't an objection, you can hit up either of the source links below to snag one for yourself.

Wednesday, April 25, 2012

Oppo teases 6.65mm-thick smartphone, about to steal 'world's thinnest' title from Huawei


China-based Poop Oppo is back again with yet another smartphone, only this time there's no pretty girl teasing Mr. DiCaprio. Instead, what we have here is an exclusive leak that shows off a 6.65mm-thick device -- just 0.03mm thinner than the Ascend P1 S from local rival Huawei. In other words, if all goes well then Oppo will have us the world's slimmest smartphone. Details are scarce at the moment, but judging by the above picture this phone will come with a metallic bezel of some sort, along with three capacitive buttons and a three-pin contact for dock connection. Obviously, stay tuned for more deets.

Tuesday, April 24, 2012

Style in android layout

A style is a collection of properties that specify the look and format for a View or window. A style can specify properties such as height, padding, font color, font size, background color, and much more. A style is defined in an XML resource that is separate from the XML that specifies the layout.
Styles in Android share a similar philosophy to cascading stylesheets in web design—they allow you to separate the design from the content.
For example, by using a style, you can take this layout XML:
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="monospace"
    android:text="@string/hello" />
And turn it into this:
<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />
All of the attributes related to style have been removed from the layout XML and put into a style definition called CodeFont, which is then applied with the style attribute. You'll see the definition for this style in the following section.
A theme is a style applied to an entire Activity or application, rather than an individual View (as in the example above). When a style is applied as a theme, every View in the Activity or application will apply each style property that it supports. For example, you can apply the same CodeFont style as a theme for an Activity and then all text inside that Activity will have green monospace font.

Defining Styles

To create a set of styles, save an XML file in the res/values/ directory of your project. The name of the XML file is arbitrary, but it must use the .xml extension and be saved in the res/values/ folder.
The root node of the XML file must be <resources>.
For each style you want to create, add a <style> element to the file with a name that uniquely identifies the style (this attribute is required). Then add an <item> element for each property of that style, with a name that declares the style property and a value to go with it (this attribute is required). The value for the <item> can be a keyword string, a hex color, a reference to another resource type, or other value depending on the style property. Here's an example file with a single style:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>
Each child of the <resources> element is converted into an application resource object at compile-time, which can be referenced by the value in the <style> element's name attribute. This example style can be referenced from an XML layout as @style/CodeFont (as demonstrated in the introduction above).
The parent attribute in the <style> element is optional and specifies the resource ID of another style from which this style should inherit properties. You can then override the inherited style properties if you want to.
Remember, a style that you want to use as an Activity or application theme is defined in XML exactly the same as a style for a View. A style such as the one defined above can be applied as a style for a single View or as a theme for an entire Activity or application. How to apply a style for a single View or as an application theme is discussed later.

Inheritance

The parent attribute in the <style> element lets you specify a style from which your style should inherit properties. You can use this to inherit properties from an existing style and then define only the properties that you want to change or add. You can inherit from styles that you've created yourself or from styles that are built into the platform. (See Using Platform Styles and Themes, below, for information about inheriting from styles defined by the Android platform.) For example, you can inherit the Android platform's default text appearance and then modify it:
    <style name="GreenText" parent="@android:style/TextAppearance">
        <item name="android:textColor">#00FF00</item>
    </style>
If you want to inherit from styles that you've defined yourself, you do not have to use the parent attribute. Instead, just prefix the name of the style you want to inherit to the name of your new style, separated by a period. For example, to create a new style that inherits the CodeFont style defined above, but make the color red, you can author the new style like this:
    <style name="CodeFont.Red">
        <item name="android:textColor">#FF0000</item>
    </style>
Notice that there is no parent attribute in the <style> tag, but because the name attribute begins with the CodeFont style name (which is a style that you have created), this style inherits all style properties from that style. This style then overrides the android:textColor property to make the text red. You can reference this new style as @style/CodeFont.Red.
You can continue inheriting like this as many times as you'd like, by chaining names with periods. For example, you can extend CodeFont.Red to be bigger, with:
    <style name="CodeFont.Red.Big">
        <item name="android:textSize">30sp</item>
    </style>
This inherits from both CodeFont and CodeFont.Red styles, then adds the android:textSize property.
Note: This technique for inheritance by chaining together names only works for styles defined by your own resources. You can't inherit Android built-in styles this way. To reference a built-in style, such as TextAppearance, you must use the parent attribute.

Style Properties

Now that you understand how a style is defined, you need to learn what kind of style properties—defined by the <item> element—are available. You're probably familiar with some already, such as layout_width and textColor. Of course, there are many more style properties you can use.
The best place to find properties that apply to a specific View is the corresponding class reference, which lists all of the supported XML attributes. For example, all of the attributes listed in the table of TextView XML attributes can be used in a style definition for a TextView element (or one of its subclasses). One of the attributes listed in the reference is android:inputType, so where you might normally place the android:inputType attribute in an <EditText> element, like this:
<EditText
    android:inputType="number"
    ... />
You can instead create a style for the EditText element that includes this property:
<style name="Numbers">
  <item name="android:inputType">number</item>
  ...</style>
So your XML for the layout can now implement this style:
<EditText
    style="@style/Numbers"
    ... />
This simple example may look like more work, but when you add more style properties and factor-in the ability to re-use the style in various places, the pay-off can be huge.
For a reference of all available style properties, see the R.attr reference. Keep in mind that all View objects don't accept all the same style attributes, so you should normally refer to the specific View class for supported style properties. However, if you apply a style to a View that does not support all of the style properties, the View will apply only those properties that are supported and simply ignore the others.
Some style properties, however, are not supported by any View element and can only be applied as a theme. These style properties apply to the entire window and not to any type of View. For example, style properties for a theme can hide the application title, hide the status bar, or change the window's background. These kind of style properties do not belong to any View object. To discover these theme-only style properties, look at the R.attr reference for attributes that begin with window. For instance, windowNoTitle and windowBackground are style properties that are effective only when the style is applied as a theme to an Activity or application. See the next section for information about applying a style as a theme.
Note: Don't forget to prefix the property names in each <item> element with the android: namespace. For example: <item name="android:inputType">.

Applying Styles and Themes to the UI

There are two ways to set a style:
  • To an individual View, by adding the style attribute to a View element in the XML for your layout.
  • Or, to an entire Activity or application, by adding the android:theme attribute to the <activity> or <application> element in the Android manifest.
When you apply a style to a single View in the layout, the properties defined by the style are applied only to that View. If a style is applied to a ViewGroup, the child View elements will not inherit the style properties—only the element to which you directly apply the style will apply its properties. However, you can apply a style so that it applies to all View elements—by applying the style as a theme.
To apply a style definition as a theme, you must apply the style to an Activity or application in the Android manifest. When you do so, every View within the Activity or application will apply each property that it supports. For example, if you apply the CodeFont style from the previous examples to an Activity, then all View elements that support the text style properties will apply them. Any View that does not support the properties will ignore them. If a View supports only some of the properties, then it will apply only those properties.

Apply a style to a View

Here's how to set a style for a View in the XML layout:
<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />
Now this TextView will be styled as defined by the style named CodeFont. (See the sample above, in Defining Styles.)
Note: The style attribute does not use the android: namespace prefix.

Apply a theme to an Activity or application

To set a theme for all the activities of your application, open the AndroidManifest.xml file and edit the <application> tag to include the android:theme attribute with the style name. For example:
<application android:theme="@style/CustomTheme">
If you want a theme applied to just one Activity in your application, then add the android:theme attribute to the <activity> tag instead.
Just as Android provides other built-in resources, there are many pre-defined themes that you can use, to avoid writing them yourself. For example, you can use the Dialog theme and make your Activity appear like a dialog box:
<activity android:theme="@android:style/Theme.Dialog">
Or if you want the background to be transparent, use the Translucent theme:
<activity android:theme="@android:style/Theme.Translucent">
If you like a theme, but want to tweak it, just add the theme as the parent of your custom theme. For example, you can modify the traditional dialog theme to use your own background image like this:
<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/custom_dialog_background</item>
</style>
Now use CustomDialogTheme instead of Theme.Dialog inside the Android Manifest:
<activity android:theme="@style/CustomDialogTheme">

Using Platform Styles and Themes

The Android platform provides a large collection of styles and themes that you can use in your applications. You can find a reference of all available styles in the R.style class. To use the styles listed here, replace all underscores in the style name with a period. For example, you can apply the Theme_NoTitleBar theme with "@android:style/Theme.NoTitleBar".
The R.style reference, however, is not well documented and does not thoroughly describe the styles, so viewing the actual source code for these styles and themes will give you a better understanding of what style properties each one provides. For a better reference to the Android styles and themes, see the following source code:
These files will help you learn through example. For instance, in the Android themes source code, you'll find a declaration for <style name="Theme.Dialog">. In this definition, you'll see all of the properties that are used to style dialogs that are used by the Android framework.
For more information about the syntax used to create styles in XML, see Available Resource Types: Style and Themes.
For a reference of available style attributes that you can use to define a style or theme (e.g., "windowBackground" or "textAppearance"), see R.attr or the respective View class for which you are creating a style.