ane yakin beda device beda scriptnya so bandingkan/compare dengan punya anda + feel :p
ty to
maanz "L" xda developer
1. Apktool
2. bisa decompile dan compile
3. 7zip
4. notepad++
5. backsmali
bismillahirrahmanirrahim...
1. Decompile framework-res.apk,
- /res/values/dimens.xml : rubah thumbnailnya:
Quote:
<dimen name="thumbnail_height">267.0dip</dimen> <dimen name="thumbnail_width">168.0dip</dimen> |
compile framework-res.apk
2. Decompile SystemUI.apk,
- /res/values/bools.xml ganti:
Quote:
<bool name="config_recents_thumbnail_image_fits_to_xy">true</bool> |
- /res/values/strings.xml:
tambahkan script di bawah
Quote:
<string name="recent_apps_title">Recent apps</string> |
--/res/values/ids.xml:
tambahkan script di bawah ini gan
Quote:
<item type="id" name="recents_transition_background" /> <item type="id" name="recents_transition_placeholder_icon" /> <item type="id" name="recents_clear" /> |
- /res/layout/status_bar_no_recent_apps.xml:
Code:
<TextView android:textSize="20.0dip" android:textColor="@*android:color/white" 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" />
- /res/layout/status_bar_expanded_header.xml:
Code:
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
- /res/layout/status_bar_recent_item.xml tambahkan kode warna merah :
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingTop="@dimen/status_bar_recents_item_padding" android:paddingBottom="@dimen/status_bar_recents_item_padding" android:layout_width="fill_parent" android:layout_height="wrap_content"
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="#00000000" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:foreground="#00000000" android:layout_centerInParent="true">
<ImageView android:id="@id/app_thumbnail_image" android:layout_width="192.0dip" android:layout_height="305.0dip" android:layout_marginTop="15.0dip" android:layout_marginBottom="15.0dip" />
</FrameLayout>
<ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="405.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" />
<TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:gravity="center_horizontal" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_icon" 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_text_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_alignParentBottom="true" />
</RelativeLayout>
</FrameLayout>
- /res/layout/tw_status_bar_recent_panel.xml tambahkan kode warna merah:
Code:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerVertical="true">
<ImageView android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="0.0dip" android:src="@drawable/status_bar_recents_background" />
<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>
<TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="@string/recent_apps_title" />
<ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_clear" />
<LinearLayout android:layout_gravity.......................
- /res/layout-land/status_bar_recent_item.xml:
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="#00000000" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15.0dip" android:layout_marginRight="15.0dip" android:foreground="#00000000" android:layout_centerInParent="true">
<ImageView android:id="@id/app_thumbnail_image" android:paddingTop="40.0dip" android:layout_width="192.0dip" android:layout_height="305.0dip" android:scaleType="centerInside" />
</FrameLayout>
<ImageView android:gravity="center_horizontal" android:id="@id/app_icon" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="225.0dip" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="20.0dip" android:maxHeight="20.0dip" />
<TextView android:textSize="12.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:gravity="center_horizontal" android:id="@id/app_label" android:paddingTop="0.0dip" android:fadingEdge="none" android:fadingEdgeLength="0.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="0.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_icon" 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="none" android:fadingEdgeLength="0.0dip" 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="3.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/app_label" android:layout_alignParentBottom="true" />
</RelativeLayout>
</FrameLayout>
- /res/layout-land/tw_status_bar_recent_panel.xml:
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" systemui:recentItemLayout="@layout/status_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerVertical="true">
<ImageView android:gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="0.0dip" android:src="@drawable/status_bar_recents_background" />
<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>
<TextView android:textSize="20.0dip" android:textColor="@color/status_bar_recents_app_label_color" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5.0dip" android:text="@string/recent_apps_title" />
<ImageView android:layout_gravity="top|right|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_clear" />
<LinearLayout android:layout_gravity..........................
download background untuk recent app nya di sini.
extract gambarnya ke /res/drawable-nodpi/.
3. - smali/com/android/systemui/recent/RecentsPanelView.smali:
bandingkan kode di bawah ini, dengan smali di systemui ente-
Code:
.method private updateThumbnail(Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;Landroid/graphics/Bitmap;ZZ)V .locals 30 .parameter "h" .parameter "thumbnail" .parameter "show" .parameter "anim" .prologue .line 783 if-eqz p2, :cond_4 .line 787 const/16 v26, 0x4 .line 789 .local v26, reflectionGap:I invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I move-result v6 .line 780 .local v6, width:I invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I move-result v24 .line 782 .local v24, height:I new-instance v8, Landroid/graphics/Matrix; invoke-direct {v8}, Landroid/graphics/Matrix;-><init>()V .line 783 .local v8, matrix:Landroid/graphics/Matrix; const/high16 v3, 0x3f80 const/high16 v4, -0x4080 invoke-virtual {v8, v3, v4}, Landroid/graphics/Matrix;->preScale(FF)Z .line 785 const/4 v4, 0x0 mul-int/lit8 v3, v24, 0x2 div-int/lit8 v5, v3, 0x3 div-int/lit8 v7, v24, 0x3 const/4 v9, 0x0 move-object/from16 v3, p2 invoke-static/range {v3 .. v9}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; move-result-object v27 .line 786 .local v27, reflectionImage:Landroid/graphics/Bitmap; div-int/lit8 v3, v24, 0x3 add-int v3, v3, v24 sget-object v4, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; invoke-static {v6, v3, v4}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; move-result-object v23 .line 788 .local v23, bitmapWithReflection:Landroid/graphics/Bitmap; new-instance v9, Landroid/graphics/Canvas; move-object/from16 v0, v23 invoke-direct {v9, v0}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V .line 789 .local v9, canvas:Landroid/graphics/Canvas; const/4 v3, 0x0 const/4 v4, 0x0 const/4 v5, 0x0 move-object/from16 v0, p2 invoke-virtual {v9, v0, v3, v4, v5}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V .line 800 new-instance v14, Landroid/graphics/Paint; invoke-direct {v14}, Landroid/graphics/Paint;-><init>()V .line 801 .local v14, defaultPaint:Landroid/graphics/Paint; const/4 v10, 0x0 move/from16 v0, v24 int-to-float v11, v0 int-to-float v12, v6 add-int/lit8 v3, v24, 0x4 int-to-float v13, v3 invoke-virtual/range {v9 .. v14}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V .line 802 const/4 v3, 0x0 add-int/lit8 v4, v24, 0x4 int-to-float v4, v4 const/4 v5, 0x0 move-object/from16 v0, v27 invoke-virtual {v9, v0, v3, v4, v5}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V .line 804 new-instance v25, Landroid/graphics/Paint; invoke-direct/range {v25 .. v25}, Landroid/graphics/Paint;-><init>()V .line 805 .local v25, paint:Landroid/graphics/Paint; new-instance v15, Landroid/graphics/LinearGradient; const/16 v16, 0x0 invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I move-result v3 int-to-float v0, v3 move/from16 v17, v0 const/16 v18, 0x0 invoke-virtual/range {v23 .. v23}, Landroid/graphics/Bitmap;->getHeight()I move-result v3 add-int/lit8 v3, v3, 0x4 int-to-float v0, v3 move/from16 v19, v0 const v20, 0x70ffffff const v21, 0xffffff sget-object v22, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; invoke-direct/range {v15 .. v22}, Landroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V .line 808 .local v15, shader:Landroid/graphics/LinearGradient; move-object/from16 v0, v25 invoke-virtual {v0, v15}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; .line 809 new-instance v3, Landroid/graphics/PorterDuffXfermode; sget-object v4, Landroid/graphics/PorterDuff$Mode;->DST_IN:Landroid/graphics/PorterDuff$Mode; invoke-direct {v3, v4}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V move-object/from16 v0, v25 invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode; .line 810 const/16 v17, 0x0 move/from16 v0, v24 int-to-float v0, v0 move/from16 v18, v0 int-to-float v0, v6 move/from16 v19, v0 invoke-virtual/range {v23 .. v23}, Landroid/graphics/Bitmap;->getHeight()I move-result v3 add-int/lit8 v3, v3, 0x4 int-to-float v0, v3 move/from16 v20, v0 move-object/from16 v16, v9 move-object/from16 v21, v25 invoke-virtual/range {v16 .. v21}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V .line 813 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView; move-object/from16 v0, v23 invoke-virtual {v3, v0}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V .line 817 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap; if-eqz v3, :cond_0 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap; invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I move-result v3 invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I move-result v4 if-ne v3, v4, :cond_0 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap; invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I move-result v3 invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getHeight()I move-result v4 if-eq v3, v4, :cond_1 .line 820 :cond_0 move-object/from16 v0, p0 iget-boolean v3, v0, Lcom/android/systemui/recent/RecentsPanelView;->mFitThumbnailToXY:Z if-eqz v3, :cond_5 .line 821 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView; const/high16 v4, 0x41c8 invoke-virtual {v3, v4}, Landroid/widget/ImageView;->setRotationY(F)V .line 830 :cond_1 :goto_0 if-eqz p3, :cond_3 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View; invoke-virtual {v3}, Landroid/view/View;->getVisibility()I move-result v3 if-eqz v3, :cond_3 .line 831 if-eqz p4, :cond_2 .line 833 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View; move-object/from16 v0, p0 iget-object v4, v0, Lcom/android/systemui/recent/RecentsPanelView;->mContext:Landroid/content/Context; const v5, 0x7f05000c invoke-static {v4, v5}, Landroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation; move-result-object v4 invoke-virtual {v3, v4}, Landroid/view/View;->setAnimation(Landroid/view/animation/Animation;)V .line 837 :cond_2 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailView:Landroid/view/View; const/4 v4, 0x0 invoke-virtual {v3, v4}, Landroid/view/View;->setVisibility(I)V .line 839 :cond_3 move-object/from16 v0, p2 move-object/from16 v1, p1 iput-object v0, v1, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImageBitmap:Landroid/graphics/Bitmap; .line 841 .end local v6 #width:I .end local v8 #matrix:Landroid/graphics/Matrix; .end local v9 #canvas:Landroid/graphics/Canvas; .end local v14 #defaultPaint:Landroid/graphics/Paint; .end local v15 #shader:Landroid/graphics/LinearGradient; .end local v23 #bitmapWithReflection:Landroid/graphics/Bitmap; .end local v24 #height:I .end local v25 #paint:Landroid/graphics/Paint; .end local v26 #reflectionGap:I .end local v27 #reflectionImage:Landroid/graphics/Bitmap; :cond_4 return-void .line 823 .restart local v6 #width:I .restart local v8 #matrix:Landroid/graphics/Matrix; .restart local v9 #canvas:Landroid/graphics/Canvas; .restart local v14 #defaultPaint:Landroid/graphics/Paint; .restart local v15 #shader:Landroid/graphics/LinearGradient; .restart local v23 #bitmapWithReflection:Landroid/graphics/Bitmap; .restart local v24 #height:I .restart local v25 #paint:Landroid/graphics/Paint; .restart local v26 #reflectionGap:I .restart local v27 #reflectionImage:Landroid/graphics/Bitmap; :cond_5 new-instance v29, Landroid/graphics/Matrix; invoke-direct/range {v29 .. v29}, Landroid/graphics/Matrix;-><init>()V .line 824 .local v29, scaleMatrix:Landroid/graphics/Matrix; move-object/from16 v0, p0 iget v3, v0, Lcom/android/systemui/recent/RecentsPanelView;->mThumbnailWidth:I int-to-float v3, v3 invoke-virtual/range {p2 .. p2}, Landroid/graphics/Bitmap;->getWidth()I move-result v4 int-to-float v4, v4 div-float v28, v3, v4 .line 825 .local v28, scale:F move-object/from16 v0, v29 move/from16 v1, v28 move/from16 v2, v28 invoke-virtual {v0, v1, v2}, Landroid/graphics/Matrix;->setScale(FF)V .line 826 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView; sget-object v4, Landroid/widget/ImageView$ScaleType;->MATRIX:Landroid/widget/ImageView$ScaleType; invoke-virtual {v3, v4}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V .line 827 move-object/from16 v0, p1 iget-object v3, v0, Lcom/android/systemui/recent/RecentsPanelView$ViewHolder;->thumbnailViewImage:Landroid/widget/ImageView; move-object/from16 v0, v29 invoke-virtual {v3, v0}, Landroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V goto :goto_0 .end method
YANG UDAH JADI ADA GAN BUAT MAX U DC
ReplyDeletemaksudnga bandingkn gimana gan ?..
ReplyDelete