Обеспечить Кернинг / отслеживание текста в android
Я пытаюсь увеличить интервал между двумя словами в тексте. Для этого я наткнулся на много сайтов, но я нашел ниже один с точной информацией, которую я требую.
Http://developer.android.com/reference/java/awt/font/TextAttribute.html
Например, я хочу использовать приведенную ниже константу
public static final TextAttribute TRACKING
Для моего текста. Как мне это сделать?
Здесь они перечислили все textAttributes(константы), которые я могу использовать с текстом. Но я не знаю, как это сделать. чтобы использовать это для моего текста. Кто-нибудь может мне в этом помочь.1 ответ:
Я написал эту функцию:
Вход
LinearLayout ll:
Макет, который будет вашим "TexView" (убедитесь, что его ориентация вертикальная)
Текст строки:
Текст
Контекст mContext
Контекст
ЧТО ДЕЛАТЬ
Я прокомментировал части, которые вы должны edit
/* * Copyright 2011 Sherif */ private void populateText(LinearLayout ll, String text , Context mContext) { String [] textArray = text.split(" "); Display display = getWindowManager().getDefaultDisplay(); ll.removeAllViews(); int maxWidth = display.getWidth() - 20; LinearLayout.LayoutParams params; // to be used over and over LinearLayout newLL = new LinearLayout(mContext); newLL.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); newLL.setGravity(Gravity.LEFT); newLL.setOrientation(LinearLayout.HORIZONTAL); int widthSoFar = 0; for (int i = 0 ; i < textArray.length ; i++ ){ LL = new LinearLayout(mContext); LL.setOrientation(LinearLayout.HORIZONTAL); LL.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM); LL.setLayoutParams(new ListView.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); TV = new TextView(mContext); TV.setText(textArray[i]); //TV.setTextSize(size); <<<< SET TEXT SIZE TV.measure(0, 0); params = new LinearLayout.LayoutParams(TV.getMeasuredWidth(), LayoutParams.WRAP_CONTENT); //params.setMargins(5, 0, 5, 0); // YOU CAN USE THIS LL.addView(TV, params); LL.measure(0, 0); widthSoFar += TV.getMeasuredWidth();// YOU MAY NEED TO ADD THE MARGINS if (widthSoFar >= maxWidth) { ll.addView(newLL); newLL = new LinearLayout(mContext); newLL.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); newLL.setOrientation(LinearLayout.HORIZONTAL); newLL.setGravity(Gravity.LEFT); params = new LinearLayout.LayoutParams(LL .getMeasuredWidth(), LL.getMeasuredHeight()); newLL.addView(LL, params); widthSoFar = LL.getMeasuredWidth(); } else { newLL.addView(LL); } } ll.addView(newLL); }
Примечание
Я не испытывал его ... Я использовал его для более сложных вещей, и он работал