Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,741,979 Members 47,350 Now Online
XDA Developers Android and Mobile Development Forum

[MOD][HOWTO] Change ICS App Switcher to Windows Phone 7 Style

Tip us?
 
evilisto
Old
(Last edited by evilisto; 29th March 2012 at 12:54 PM.) Reason: clean up
#1  
evilisto's Avatar
Senior Member - OP
Thanks Meter 2338
Posts: 486
Join Date: Nov 2010
Default [MOD][HOWTO] Change ICS App Switcher to Windows Phone 7 Style

WP7(Mango?) app switcher is like this :




and i made similar thing by modifying ics app switcher layout.

preview :





flashable mod is originally posted in nexus s theme forum.
[MOD] Change ICS App Switcher to Windows Phone 7 Style

this mod is related to framework-res.apk and SystemUI.apk so making universal version for any devices is difficult. so i write this simple guide for other rom / device users.

-----------------------------------------------------------------------------

* framework-res.apk

- /res/values/dimens.xml : change thumbnail size to..

Code:
Select Code
    <dimen name="thumbnail_height">305.0dip</dimen>
    <dimen name="thumbnail_width">192.0dip</dimen>
these values are wvga devices only. if you have mdpi or xhdpi device, you have to adjust these values suitable to your screen size.


* SystemUI.apk

- /res/values/bools.xml
Code:
Select Code
 
   <bool name="config_recents_thumbnail_image_fits_to_xy">true</bool>
- /res/values/drawables.xml
Code:
Select Code
    <item type="drawable" name="status_bar_recents_background_solid">#ff33b1e1</item>
- /res/layout/status_bar_no_recent_apps.xml
Code:
Select Code
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:background="@drawable/status_bar_recents_background_solid" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_no_recent_apps" />
</FrameLayout>

- /res/layout-port/status_bar_recent_item.xml
Code:
Select Code
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true">
        <FrameLayout android:id="@id/app_thumbnail" android:background="@drawable/recents_thumbnail_bg" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:foreground="@drawable/recents_thumbnail_fg" android:layout_centerInParent="true">
            <ImageView android:id="@id/app_thumbnail_image" android:layout_width="192.0dip" android:layout_height="305.0dip" />
            <ImageView android:id="@id/app_icon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_icon_left_margin" android:layout_marginTop="0.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="@dimen/status_bar_recents_app_icon_max_width" android:maxHeight="@dimen/status_bar_recents_app_icon_max_height" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" />
        </FrameLayout>
        <TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="fill_parent" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="100.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_thumbnail" android:layout_alignLeft="@id/app_thumbnail" android:layout_alignParentBottom="true" />
        <TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="40.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignLeft="@id/app_thumbnail" android:layout_alignParentBottom="true" />
    </RelativeLayout>
</FrameLayout>

- /res/layout-port/status_bar_recent_panel.xml
Code:
Select Code
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background_solid" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true">
        <com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|left|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="0.0dip" android:stackFromBottom="true" android:divider="@null">
            <LinearLayout android:orientation="horizontal" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" />
        </com.android.systemui.recent.RecentsHorizontalScrollView>
    </FrameLayout>
    <include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
</com.android.systemui.recent.RecentsPanelView>

and you'd better to edit landscape layout too..

- /res/layout-land/status_bar_recent_item.xml
Code:
Select Code
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingLeft="@dimen/status_bar_recents_item_padding" android:paddingRight="@dimen/status_bar_recents_item_padding" android:layout_width="wrap_content" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout android:layout_gravity="center_vertical" android:id="@id/recent_item" android:paddingTop="@android:dimen/status_bar_height" android:layout_width="wrap_content" android:layout_height="wrap_content">
        <FrameLayout android:id="@id/app_thumbnail" android:background="@drawable/recents_thumbnail_bg" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_thumbnail_left_margin" android:layout_marginTop="@dimen/status_bar_recents_thumbnail_top_margin" android:foreground="@drawable/recents_thumbnail_fg" android:layout_alignParentLeft="true" android:layout_alignParentTop="true">
            <ImageView android:id="@id/app_thumbnail_image" android:layout_width="115.0dip" android:layout_height="183.0dip" />
        </FrameLayout>
        <ImageView android:id="@id/app_icon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_icon_left_margin" android:layout_marginTop="@dimen/status_bar_recents_app_icon_top_margin" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="@dimen/status_bar_recents_app_icon_max_width" android:maxHeight="@dimen/status_bar_recents_app_icon_max_height" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" />
        <TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:id="@id/app_label" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginTop="@dimen/status_bar_recents_text_description_padding" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_thumbnail" android:layout_alignLeft="@id/app_thumbnail" />
        <TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginTop="@dimen/status_bar_recents_text_description_padding" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignLeft="@id/app_thumbnail" />
    </RelativeLayout>
</FrameLayout>

- /res/layout-land/status_bar_recent_panel.xml
Code:
Select Code
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
        <com.android.systemui.recent.RecentsHorizontalScrollView android:layout_gravity="bottom|left|center" android:orientation="horizontal" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="@dimen/status_bar_recents_right_glow_margin" android:stackFromBottom="true" android:divider="@null">
            <LinearLayout android:orientation="horizontal" android:id="@id/recents_linear_layout" android:clipChildren="false" android:clipToPadding="false" android:layout_width="wrap_content" android:layout_height="fill_parent" />
        </com.android.systemui.recent.RecentsHorizontalScrollView>
    </FrameLayout>
    <include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
</com.android.systemui.recent.RecentsPanelView>
-----------------------------------------------------------------------------

Thanks to brucekey in rootzwiki
(this mod is based on his WEBAOKP mod.)

-----------------------------------------------------------------------------
| Google+ |
The Following 68 Users Say Thank You to evilisto For This Useful Post: [ Click to Expand ]
 
Mazda
Old
#2  
Mazda's Avatar
Senior Member
Thanks Meter 9771
Posts: 4,544
Join Date: Oct 2008
Location: Milton, Florida ✖✖✖✖✖✖✖✖✖✖
Looks good bro!! I hope you don't mind BUT I put this mod in my thread over in the EVO section. I gave you full credit for this MOD but I just wanted to share it with my peeps over there.....THANKS AGAIN for everything that you do in the Android community!
 
baliriot
Old
#3  
baliriot's Avatar
Senior Member
Thanks Meter 265
Posts: 741
Join Date: Nov 2010
Location: Shah Alam
beautiful...
 
perern
Old
#4  
Senior Member
Thanks Meter 21
Posts: 425
Join Date: Feb 2009
Location: Matrand
Default Doesn't work :(

I am unable to decompile and compile with apktool, apk manager and APK multitool.
Can I upload the framework-res.apk and systemui.apk and someone do it for me?
It might be something about Windows 8 that the sdk doesn't like
 
cahir_cz
Old
#5  
Senior Member
Thanks Meter 23
Posts: 172
Join Date: Nov 2011
Hi, is there any way how to make launcher show up in this taskswitcher? Thanks
 
carvajaljn
Old
#6  
carvajaljn's Avatar
Senior Member
Thanks Meter 22
Posts: 208
Join Date: May 2011
Location: En algun lugar de mexico
can you port for samsung galaxy s2 please
 
rashid.fairus
Old
#7  
rashid.fairus's Avatar
Senior Member
Thanks Meter 229
Posts: 1,060
Join Date: Dec 2011
Location: Klang
nice!!!

Sent from my LT18i
 
cooladityarai
Old
#8  
cooladityarai's Avatar
Senior Member
Thanks Meter 69
Posts: 301
Join Date: Jul 2011
I will really love to have this mod....but can anyone tell me plz what will be the values for qvga screen....????
Thanks

Sent from my GT-I5500 using Tapatalk
ETERNITY OF SOULS
"That person attains peace who giving up all material desires for sense gratification lives free from attachment,free from false ego and sense of proprietorship." ||2/71||
 
perern
Old
(Last edited by perern; 20th March 2012 at 08:25 PM.) Reason: Finally made it
#9  
Senior Member
Thanks Meter 21
Posts: 425
Join Date: Feb 2009
Location: Matrand
Default Please?

Could someone compile these two for me?
http://www.mediafire.com/download.php?1cr5p09pxcyamw7

Made it work after a while. is there a way to make the thumbnail look less blurry?
 
netwokz
Old
(Last edited by netwokz; 21st March 2012 at 10:37 PM.) Reason: Edit pic upload
#10  
netwokz's Avatar
Senior Member
Thanks Meter 314
Posts: 879
Join Date: Jul 2010
Location: Phoenix, AZ
evilisto, is there anyway to move the text for the pages down? I resized my pages because of my screen resolution(540x960). But as you can see they are not below the pages. Also can you change the color of the text? Thanks for the write up, I like the a lot all ready.

Tags
ics app switcher multitask
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes