11/08/2018, 23:15

Tự động tạo các chuẩn màn hình và Giải phóng bộ nhớ trong Android

LayoutUtils Đây như 1 Tools hỗ trợ cho xây dựng nhiều màn hình layout trong Android 1. Tại sao lại sử dụng Bắt đầu từ android 3.0 trở đi Google API đã hỗ trợ nhận diện Layout theo thư mục trong Resource . Ví dụ muốn điện thoại có kích thước 320dp 360dp hay tablet là 600dp thì ta cần xây dựng ...

LayoutUtils Đây như 1 Tools hỗ trợ cho xây dựng nhiều màn hình layout trong Android 1. Tại sao lại sử dụng Bắt đầu từ android 3.0 trở đi Google API đã hỗ trợ nhận diện Layout theo thư mục trong Resource . Ví dụ muốn điện thoại có kích thước 320dp 360dp hay tablet là 600dp thì ta cần xây dựng layout cho các màn hình này theo tỉ lệ mhd hd hay xhd…. +layout-sw320dp/mainactivity.xml +layout-sw360dp/mainactivity.xml +layout-sw600dp/mainactivity.xml ………. Nhưng thực tế các thiết bị Android sử dụng hệ điều hành dưới 3.0 vẫn còn rất nhiều. Và chúng không thể hiểu được cấu trúc trên. Do đó LayoutUtils ở đây sẽ hỗ trợ điều này bằng cách.

  • Khởi động cùng ứng dụng xách định loại màn hình của thiết bị
  • Chỉ cần thiết kế layout trên 1 loại màn hình
  • Sử dụng Tools FixRadio để gen layout xml cho các loại màn hình
  • Hỗ trợ tự động giải phóng bộ nhớ đệm của màn hình

2. Cách sử dụng Đầu tiên ta định nghĩ 1 layout trên màn hình như sau

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_awidth="match_parent" android:layout_height="match_parent" android:id="@+id/rootLayout" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.layoututilsexam.MainActivity" >

<TextView android:layout_awidth="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@android:color/black" android:padding="50dp" android:text="@string/hello_world" android:textSize="20sp" android:textColor="@android:color/white" />

</RelativeLayout> Tiếp đó. Config lại đầu ra trong file config.txt trong Fixradio tools 240 320 360 480 600 720 tương ứng các kiểu màn hình như 240dp,320dp…….

Bật FixRadiov2_Fixed.jar lên copy nội dung layout, và điền tên layout vào sau đó chọn Fix All Save File.Tools sẽ tự động tạo ra các layout activity_main_240.xml, activity_main_320.xml, activity_main_360.xml…. và Tiếp theo tạo file layouts.xml trong resource để lưu khai báo mà tools tạo ra

<array name="layout_activity_main"> <item>@layout/activity_main_240</item> // 240 <item>@layout/activity_main_320</item> // 320 <item>@layout/activity_main_360</item> // 360 <item>@layout/activity_main_480</item> // 480 <item>@layout/activity_main_600</item> // 600 <item>@layout/activity_main_720</item> // 720 </array>

Tiếp đó tại onCreate setContentView(R.layout.activity_main); chuyển thành setContentView(LayoutUtil.getLayout(R.array.layout_activity_main));

Lúc này LayoutUtil sẽ tự động lấy layout phù hợp với màn hình đó Chú ý trước tiên sử dụng vào Project ta cần khai báo thêm Class Application

VD: MyApplication.class @Override

public void onCreate() {

super.onCreate();

LayoutUtil.init(getApplicationContext());

}

Sau khi đóng màn hình lại cần gọi @Override

protected void onDestroy() {

super.onDestroy();

LayoutUtil.clearActivity(this, R.id.rootLayout);

}

Sẽ tự động giải phóng bộ nhớ của các View trong màn hình đó Cụ thể hơn có thể xem Project mẫu LayoutUtilsExam.

Sẽ thấy Khung có chữ Hello Word nhìn sẽ to hoặc nhỏ theo tỉ lệ với màn hình

Project https://www.dropbox.com/s/3qvygjmvg986b0f/Project%23102014.zip?dl=0

0