2012-07-31 60 views
24

Làm cách nào để lưu trữ một giá trị phân số như 3.1416 trong tài nguyên? Viết gì trong XML và cách lấy nó trong mã Java?Làm thế nào để sử dụng Resources.getFraction()?

Các tài liệu cho getFraction() trạng thái:

public float getFraction (int id, int base, int pbase)

Lấy một đơn vị phân số cho một ID tài nguyên cụ thể.

thông số
base Các giá trị cơ bản của phần này. Nói cách khác, một phần tiêu chuẩn được nhân với giá trị này.
pbase Giá trị cơ sở gốc là phần này. Nói cách khác, một phần cha (nn% p) được nhân với giá trị này là .

Returns
Thuộc tính giá trị phân số nhân với giá trị cơ sở thích hợp

This answer cho thấy một ví dụ đơn giản của tỷ lệ phần trăm mà không đi vào chi tiết của những gì các đối số có ý nghĩa.

Trả lời

33

Bạn chỉ rõ các phần phân đoạn trong XML như vậy:

<item name="fraction" type="fraction">5%</item> 
    <item name="parent_fraction" type="fraction">2%p</item> 

đâu 5% sẽ là 0,05 khi thực sự sử dụng.

Sau đó:

// 0.05f 
getResources().getFraction(R.fraction.fraction, 1, 1); 
// 0.02f 
getResources().getFraction(R.fraction.parent_fraction, 1, 1); 
// 0.10f 
getResources().getFraction(R.fraction.fraction, 2, 1); 
// 0.10f 
getResources().getFraction(R.fraction.fraction, 2, 2); 
// 0.04f 
getResources().getFraction(R.fraction.parent_fraction, 1, 2); 
// 0.04f 
getResources().getFraction(R.fraction.parent_fraction, 2, 2); 

Như bạn thấy, tùy thuộc vào loại phân số, các phương pháp getFraction bội các giá trị phù hợp. Nếu bạn chỉ định một phần cha (%p), nó sử dụng đối số thứ hai (pbase), bỏ qua phần đầu tiên. Mặt khác, chỉ định một phần bình thường, chỉ sử dụng đối số base, nhân phần nhỏ cho điều này.

Các vấn đề liên quan