Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Android

วิธีใช้ GIF เป็นปุ่มโฮมของ Android Navbar

จิตใจที่เฉียบแหลมบางคนในชุมชน Android ได้ค้นพบวิธีปรับเปลี่ยนแถบนำทางของคุณเพื่อใช้ไฟล์ .gif แบบเคลื่อนไหวเป็นคีย์หลักของคุณ และ Appuals มีคำแนะนำให้ทำ!

วิธีใช้ GIF เป็นปุ่มโฮมของ Android Navbar

คำเตือน:นี่เป็นกระบวนการที่ค่อนข้างเกี่ยวข้อง คุณต้องถอดรหัส SystemUI.apk ของคุณ ยุ่งกับไฟล์สำคัญบางไฟล์ และคอมไพล์ใหม่อีกครั้ง สำรองข้อมูล SystemUI.apk ของคุณไว้เผื่อมีข้อผิดพลาด!

คู่มือ Appual ที่เกี่ยวข้อง:

  • วิธีการกำหนดธีม UI ระบบ Android ด้วยตนเอง
  • วิธีการดีคอมไพล์และธีม APK สำหรับ Android
  • วิธี Deodex APK ของคุณบน Stock ROM

ข้อกำหนด:

  • โทรศัพท์ Android ที่รูทเครื่องแล้ว (Appuals มีคู่มือรูท Android มากมาย!)
  • เครื่องมือถอดรหัส APK (เราขอแนะนำ APK เครื่องมือง่าย ๆ )
  • โปรแกรมแก้ไขโค้ดที่ดีอย่าง Notepad++

การดีคอมไพล์ SystemUI.apk ของคุณ

สิ่งแรกที่คุณต้องทำคือ deodex SystemUI.apk ของคุณ – คุณสามารถใช้เครื่องมือเช่น Tickle My Android สำหรับสิ่งนี้ อ่านคู่มือ Appuals สำหรับการถอดรหัส APK ในกระบวนการนี้

ขั้นตอนต่อไปคือการถอดรหัส SystemUI.apk ซึ่งต้องมีคำแนะนำด้วยตัวเองหากคุณไม่เคยทำมาก่อน – โชคดีที่ Appuals มี "วิธีการสร้าง UI ระบบ Android แบบแมนนวล" พร้อมคำแนะนำในการถอดรหัส ดังนั้นโปรดอ่านหากคุณ ไม่เคยถอดรหัส APK มาก่อน

เพิ่ม การ ไฟล์ SMALI

ตอนนี้ คุณต้องเพิ่มไฟล์ smali ใหม่ – มีไฟล์ .smali ที่แก้ไขแล้วสำหรับสิ่งที่เราต้องทำที่นี่ โดยเฉพาะอย่างยิ่ง คุณต้องแยกไฟล์ “SelfAnimatingImageView.smali” ออกจาก .zip และเพิ่มลงใน APK ที่ถอดรหัสแล้วในไดเร็กทอรี:

SystemUI.apk\smali\com\android\morningstar\

คุณจะต้องสร้างโฟลเดอร์เหล่านี้หากไม่มีอยู่

แยก GIF เป็นเฟรม

ตอนนี้ คุณต้องค้นหา .gif แบบเคลื่อนไหวที่คุณชอบและต้องการใช้เป็นปุ่มโฮมบนแถบนำทางของคุณ คุณควรใช้ สติกเกอร์ gif เช่นเดียวกับที่คุณพบใน Giphy.com/stickers คุณจะสังเกตเห็นว่าพวกเขามีพื้นหลังโปร่งใส เช่น PNG แต่จริงๆ แล้วสิ่งเหล่านี้เป็น GIF

เมื่อคุณบันทึกสติกเกอร์ GIF ที่ต้องการแล้ว คุณจะต้องแปลงเป็นชุด PNG นี่เป็นเพราะ SystemUI ที่แก้ไขของเราจะไม่เรียกใช้ไฟล์ .gif ดั้งเดิม แต่จะเล่น PNG ตามลำดับ ดังนั้น เราจำเป็นต้องแยก .gif เป็น PNG ตามลำดับ โชคดีที่เราสามารถทำได้อย่างง่ายดายด้วยตัวแปลงออนไลน์ เช่น EZGIF Split

วิธีใช้ GIF เป็นปุ่มโฮมของ Android Navbar

เพียงอัปโหลด GIF ของคุณไปยังเครื่องมือ EZGIF Split แล้วเลือก "ส่งออกรูปภาพในรูปแบบ PNG" จากเมนูดรอปดาวน์ Split Options แล้วโปรแกรมจะแยกเฟรมทั้งหมดตามลำดับ จากนั้นคุณสามารถดาวน์โหลดเฟรมร่วมกันเป็นไฟล์ ZIP ได้

วิธีใช้ GIF เป็นปุ่มโฮมของ Android Navbar

ตอนนี้ คุณต้องเพิ่มเฟรม PNG จาก GIF แบบแยกไปยัง “drawable-xxxDPI ที่เหมาะสมของคุณ ” ในโฟลเดอร์ SystemUI apk ที่คอมไพล์แล้ว โฟลเดอร์ที่คุณจะใช้จะขึ้นอยู่กับ DPI ของอุปกรณ์ ดังนั้น:

  • MDPI =~160 DPI
  • HDPI =~240 DPI
  • XHDPI =~320 DPI
  • XXHDPI =~480 DPI
  • XXXHDPI =~640 DPI

ตอนนี้ เราต้องการไฟล์ XML ที่สั่ง Android ว่าจะใช้รูปภาพใดสำหรับแอนิเมชั่น และวนรอบได้เร็วแค่ไหน กลับไปที่ ZIP ที่คุณดาวน์โหลดมาก่อนหน้านี้แล้วคว้า “frame_anim.xml” แล้วคัดลอกไปยังโฟลเดอร์ “res\drawable” ของคุณภายใน APK ที่ถอดรหัสแล้ว

หากคุณเปิด frame_anim.xml ใน Notepad++ ควรมีลักษณะดังนี้:

<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
  xmlns:android="https://schemas.android.com/apk/res/android">
    <item android:duration="100" android:drawable="@drawable/frame_0" />
    <item android:duration="100" android:drawable="@drawable/frame_1" />
    <item android:duration="100" android:drawable="@drawable/frame_2" />
    <item android:duration="100" android:drawable="@drawable/frame_3" />
</animation-list>

แต่ละบรรทัดที่ขึ้นต้นด้วย

และสุดท้าย ก่อนที่เราจะคอมไพล์ SystemUI.apk ใหม่ได้ เราต้องใส่แอนิเมชั่นของเราลงบนแถบนำทาง วิธีนี้ค่อนข้างยุ่งยาก เนื่องจากเราจะแก้ไขไฟล์ XML เลย์เอาต์ ใน ROM สต็อกส่วนใหญ่ โค้ดที่ควบคุมซอฟต์คีย์ navbar ของ HOME สามารถพบได้ใน “layout\navigation_bar.xml” แต่อาจพบได้ใน “layout\home.xml” ด้วย คุณต้องค้นหาสิ่งนี้ ทั้งนี้ขึ้นอยู่กับ ROM ของคุณ

โดยพื้นฐานแล้ว คุณกำลังมองหาไฟล์ XML เลย์เอาต์ใดก็ตามที่มีโค้ดที่มีลักษณะดังนี้:

<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center"
android:id="@id/home_button" android:layout_width="0.0dip" android:layout_height="0.0dip"
android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />

คุณจะรู้ว่าคุณอยู่ในไฟล์ XML ที่ถูกต้องเมื่อเห็นบรรทัดที่อ้างอิงถึง home_button หรือคล้ายกัน สิ่งที่เราต้องทำคือ ซ่อน ปุ่ม HOME นี้ และใส่อันใหม่แทนที่ซึ่งมีขนาดเท่ากัน แต่มองไม่เห็น จากนั้นเฟรมภาพเคลื่อนไหวของเราจะอยู่ใต้ปุ่มนั้น อันที่จริงมันค่อนข้างง่าย ทั้งหมดที่เราต้องการคือ FrameLayout รหัส

<FrameLayout android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent">
    <com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/transparent" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
    <com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:id="@id/home_button" android:layout_width="0.0dip" android:layout_height="0.0dip" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
    <com.android.systemui.morningstar.SelfAnimatingImageView android:layout_gravity="center" android:id="@+id/frame_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/frame_anim" />
</FrameLayout>

หากคุณตรวจสอบโค้ดนี้ คุณจะเห็นว่าเรามีสิ่งที่แตกต่างกันสามอย่างซ้อนกันอย่างไร แต่เมื่อแอปทำงาน คุณจะไม่เห็นมัน สิ่งที่คุณจะได้เห็นคือ GIF แบบเคลื่อนไหวของคุณ โดยที่ปุ่ม HOME ควรอยู่บนแถบนำทาง

ดังนั้นสิ่งที่คุณต้องทำคือแทนที่บรรทัดซอฟต์คีย์ของ HOME ด้วยโค้ด FrameLayout ด้านบน แต่คุณอาจต้องปรับแต่งสำหรับ ROM เฉพาะของคุณ จำเป็นต้องมีการลองผิดลองถูกเล็กน้อยที่นี่

กำลังคอมไพล์ใหม่ APK และกระพริบมัน

ตอนนี้เราพร้อมที่จะคอมไพล์ APK ที่ดัดแปลงใหม่แล้ว เพียงใช้ APK Easy Tool เพื่อคอมไพล์ SystemUI.apk ใหม่และแฟลชในโหมดการกู้คืนบนอุปกรณ์ของคุณ การทำเช่นนี้ในโหมดการกู้คืนเป็นสิ่งสำคัญ เนื่องจากคุณต้องล้างแคช Dalvik มิฉะนั้น ไฟล์ smali ใหม่ที่เราเพิ่มจะไม่เปิดใช้งาน

หากทุกอย่างเป็นไปด้วยดี คุณควรเห็น GIF แบบเคลื่อนไหวของคุณเป็นปุ่มโฮมบนแถบนำทางใหม่ของคุณ!