Tương đương với CoreText của iOS trong Android là các API drawText
, một phần của lớp Canvas, Canvas.drawText()
, Canvas.drawPosText()
, v.v. xem javadoc cho Canvas để biết thêm chi tiết. Các API đồ họa này sử dụng Skia bên dưới.
Các chức năng mà các API đồ họa cung cấp này không giống với chức năng của iOS, nói không có CTFramesetter
tương đương giúp bạn bố cục văn bản và xử lý ngắt dòng cho bạn. Với các API drawText
, bạn chỉ có thể vẽ một dòng tại một thời điểm, bạn sẽ phải tự xử lý các ngắt dòng, Nó giống như sử dụng CTTypesetter
trong iOS. Để đặt văn bản, hãy xem Paint.breakText
và Paint.measureText
.
Để thay đổi kích thước phông chữ & khuôn mặt phông chữ, bạn có thể đặt thuộc tính liên quan trong đối tượng Paint
, được chuyển thành tham số cuối cùng cho các API drawText
.
Snippet:
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTextSize(14);
String text = "Hello world!";
canvas.drawText(text, 0, 100, paint);
Lưu ý: Các hệ tọa độ được sử dụng trong các API Android drawText
là từ left-top
góc.
Trên iOS, CoreText cho biết số lượng văn bản chính xác sẽ hiển thị trên một khung nhất định. Tính năng này rất, vì ứng dụng có thể đặt một số khung được đặt trên một ScrollView, phân trang văn bản. TextView có thể làm tương tự trên Android không? – javsmo
@javsmo: Không phải là tôi biết. Văn bản được phân trang mà tôi đã thấy trên Android là với trình đọc sách điện tử, sẽ sử dụng HTML và 'WebView'. – CommonsWare
@CommonsWare, không thực sự, hầu hết người đọc sách điện tử đều sử dụng canvas và API drawText, tôi đã từng triển khai trình đọc sách điện tử, mọi thứ sẽ dễ kiểm soát hơn với API drawText. – neevek