Làm thế nào có thể sử dụng một font tùy chỉnh trong khu vực input của một phương pháp input ?


0 Phiếu
Đã hỏi 25/5/2016 bởi Vg_It (480 điểm)
Chúng tôi đang phát triển một ứng dụng mà chúng ta cần phải sử dụng một font tuỳ chỉnh (một Typeface cất cánh từ các ứng dụng tài sản) trong một EditText. Android input method Docs & Spreadsheets nhà nước như sau:
khi input tập trung di chuyển vào hoặc ra một trường có thể chỉnh sửa văn bản, Android Hiển thị hoặc ẩn input method (chẳng hạn như các bàn phím trên màn hình) thích hợp. system cũng làm cho các quyết định về làm thế nào giao diện người dùng của bạn và các lĩnh vực văn bản xuất hiện trên các phương pháp input . Ví dụ, khi dọc space trên màn hình là hạn chế, các lĩnh vực văn bản có thể điền vào tất cả các không gian bên trên phương pháp input .
nó là phần in đậm vấp ngã chúng ta lên. cụm từ "trường văn bản có thể điền vào..." xuất hiện để được gây hiểu lầm, trong đó trường văn bản được sử dụng không phải là EditText mà chúng tôi thiết lập với phông tùy chỉnh của chúng tôi. ( NOTE: các câu trả lời cho đến nay tất cả các giải thích làm thế nào để thiết lập một font tuỳ chỉnh trong một EditText. chúng tôi đã thiết lập một mặt chữ tùy chỉnh trong EditText. xin vui lòng đọc các câu hỏi một cách cẩn thận trước khi trả lời.) Dưới đây là một ảnh chụp màn hình với method input ẩn: the dialog đây là những gì sẽ xảy ra khi bàn phím mềm Hiển thị và không gian dọc đã được cố định: constrained vertical space như bạn có thể thấy, font trong lĩnh vực văn bản trên input method không phải là chúng tôi font tùy chỉnh (tôi đoán nó là phông chữ Roboto mặc định của hệ thống). Điều này xảy ra cho mỗi bàn phím mềm chúng tôi đã cố gắng như là phương pháp input . Tôi muốn nhấn mạnh rằng khi space đã được cố định, quan điểm này trên bàn phím được tạo ra trong nội bộ của hệ thống, không phải bằng bất kỳ mã của chúng tôi. Các câu hỏi chính là: có cách nào (và, nếu như vậy, nó là gì?) để control xuất hiện điều này (cho thiếu thuật ngữ tốt hơn) ủy quyền xem — ở mức tối thiểu để có được nó để sử dụng tùy chỉnh phông chữ của chúng tôi? Nó sẽ là một tiền thưởng thêm nếu chúng ta control cũng có thể bố trí và sự xuất hiện của khu vực ủy quyền toàn bộ trên bàn phím (bao gồm cả nút "Done"). Chúng tôi đang sử dụng một biến thể của các kỹ thuật mô tả trong này thread để có chúng tôi hoạt động sử dụng một miền địa phương khác nhau từ bộ trong hệ thống, nhưng các hoạt động địa phương rõ ràng không phải là đang được áp dụng ở đây. (Nếu nó, nút sẽ bên trái và sẽ đọc "בוצע", như xảy ra nếu tôi thay đổi bản địa của thiết bị để tiếng Do Thái)

1 câu trả lời

0 Phiếu
Đã trả lời 04/6/2016 bởi but7719 (870 điểm)
Hãy thử mã dưới đây. Điều này có thể giúp bạn. Bạn có thể thiết lập tùy chỉnh font để Edittext và cũng có thể gợi ý cũng như. Hãy kiểm tra này code : đây là class Edittext, tùy chỉnh:
public class MyEditText extends EditText {
    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        //
        String str = attrs.getAttributeValue("http://schemas.android.com/apk/res/"
                + context.getApplicationContext().getPackageName(), "edt_custom_font");
        String fontName = "";
        try {
            fontName = context.getString(Integer.parseInt(str.substring(1).trim()));
        } catch (Exception e) {
            e.printStackTrace();
        }
        // Log.d("log_tag", "fontName: "+fontName);
        setFont(context, fontName);
    } 
    public void setFont(Context context, String fontName) {
        Typeface font = Typeface.createFromAsset(context.getAssets(), fontName);
        setTypeface(font);
    }
}
bây giờ, bạn có thể sử dụng này class tùy chỉnh trong XML giống như dưới đây:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:myedttext="http://schemas.android.com/apk/res/Main PackageName"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<(PackageName where you have put this above Custom class).MyEditText
            android:id="@+id/etUsername"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="hint text"
            android:inputType="text"
            myedttext:edt_custom_font="@string/OffsideRegular" >
        </(PackageName where you have put this above Custom class).MyEditText>
và đặt này dưới dòng trong strings.xml và cũng có thể đặt này Offside_Regular.ttf file trong thư mục ASSETS:
<string name="OffsideRegular">Offside_Regular.ttf</string>
thông qua điều này, bạn có thể đặt bất kỳ type tùy chỉnh font Edittext.
Đã bình luận 06/6/2016 bởi to_1749 (150 điểm)
bạn có muốn thiết lập typface cho phần gợi ý ở edittext?

ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...