2015-09-03 2 views
4

Как добавить угловой радиус и дополнение к растягиваемому тексту ниже?Как добавить угловой радиус и отступы к многострочному растягиваемому тексту

public class CustomTextView extends TextView { 
     public CustomTextView(Context context) { 
      super(context); 
      setFont(); 
     } 
     public CustomTextView(Context context, AttributeSet attrs) { 
      super(context, attrs); 
      setFont(); 
     } 
     public CustomTextView(Context context, AttributeSet attrs, int defStyle) { 
      super(context, attrs, defStyle); 
      setFont(); 
     } 

     private void setFont() { 
      Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/TEXT.ttf"); 
      setTypeface(font, Typeface.NORMAL); 

Spannable myspan = new SpannableString(getText()); 
    myspan.setSpan(new BackgroundColorSpan(0xFF757593), 0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    txtview.setText(myspan); 


     } 
    } 
+0

Я думаю, что ваш вопрос может принести пользу * lot * из более подробной информации. Вместо однострочного, вы могли бы описать визуальный эффект того, чего вы пытаетесь достичь? Или, еще лучше, показать желаемый эффект с помощью рисунка/рисунка? –

ответ

1

EDIT

Это то, что вы хотите что-то вроде этого?

screenshot http://i60.tinypic.com/28mogu8.png

Если да, то вы можете создать его со следующим кодом в одиночку:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#999999" 
      android:gravity="center"> 

    <TextView 
      android:id="@+id/textView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="20dp" 
      android:gravity="center" 
      android:background="@drawable/rounded_corners"/> 
</LinearLayout> 

и это то, что rounded_corners.xml файл выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="10dp"/> 
    <solid android:color="@android:color/white"/> 
</shape> 

И это MainActivity :

public class MainActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/TEXT.ttf"); 

     TextView textView = (TextView) findViewById(R.id.textView); 

     textView.setTypeface(font, Typeface.NORMAL); 

     String text = "Text1\nText2\nText3"; 
     Spannable myspan = new SpannableString(text); 
     myspan.setSpan(new BackgroundColorSpan(0xFF757593), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     textView.setText(myspan); 
    } 
} 

Мне пришлось использовать разные цвета, чтобы вы могли видеть, что это закругленные углы. Вы можете просто играть с цветами. И у меня нет файла TEXT.ttf, поэтому я не знаю, как это будет выглядеть. Над изображением, конечно, без специального шрифта.

+0

одно выше легко, но не то, что я искал. Я ищу ту же функцию в многострочном текстовом режиме, и цвет фона должен существовать только за текстом. т.е.: если текст переместится на следующую строку, цвет не должен присутствовать. – jason

+0

ладно, я напишу весь код тогда =) – NecipAllef

+0

классный. в основном это должен быть цвет фона фона. Цвет, отступы и радиус должны существовать только за текстом, а не за пустым пространством. Радиус – jason

1
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="10dp"/> 
    <solid android:color="@android:color/white"/> 
</shape> 

Просто скопированный сверху ответ, нужно только это. установите это как фоновое изображение TextView, вот и все.

+0

Цвет фона распространяется на весь макет текста, а не только на слово. В принципе, если текстовое слово не может поместиться в этой строке, цвет фона все еще существует, но я хочу, чтобы цвет фона существовал только за словами. – jason

Смежные вопросы