2016-10-21 4 views
1

Я создал один EditText программно, когда я набираю EditText, если текст переходит к следующей строке, тогда я хочу нарисовать горизонтальную линию внутри EditText. Как я могу это достичь?Добавить горизонтальную линию внутри EditText

+0

вам нужно подчеркивание делать ? Можете ли вы опубликовать мгновенный снимок с образцом кода, который вы пробовали – Raghunandan

+0

@Raghunandan да, я хочу подчеркнуть внутри edittext, если текст идет по следующей строке, я только что создал edittext динамически следующий шаг не знал, что делать – PriyankaChauhan

+0

Не уверен что ты хочешь. Проверьте этот https://chiuki.github.io/advanced-android-textview/#/50. и код для того же https://github.com/chiuki/advanced-textview/blob/master/app/src/main/java/com/sqisland/android/advanced_textview/widget/LinedEditText.java – Raghunandan

ответ

2

Согласно комментарию Raghunandan, Вы можете использовать этот класс в вашем проекте

LinedEditText.java

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.util.AttributeSet; 
import android.widget.EditText; 

public class LinedEditText extends EditText { 
    private Paint mPaint = new Paint(); 

    public LinedEditText(Context context) { 
     super(context); 
     initPaint(); 
    } 

    public LinedEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     initPaint(); 
    } 

    public LinedEditText(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     initPaint(); 
    } 

    private void initPaint() { 
     mPaint.setStyle(Paint.Style.STROKE); 
     mPaint.setColor(0x80000000); 
    } 

    @Override protected void onDraw(Canvas canvas) { 
     int left = getLeft(); 
     int right = getRight(); 
     int paddingTop = getPaddingTop(); 
     int paddingBottom = getPaddingBottom(); 
     int paddingLeft = getPaddingLeft(); 
     int paddingRight = getPaddingRight(); 
     int height = getHeight(); 
     int lineHeight = getLineHeight(); 
     int count = (height-paddingTop-paddingBottom)/lineHeight; 

     for (int i = 0; i < count; i++) { 
      int baseline = lineHeight * (i+1) + paddingTop; 
      canvas.drawLine(left+paddingLeft, baseline, right-paddingRight, baseline, mPaint); 
     } 

     super.onDraw(canvas); 
    } 
} 

использовать его в файл макета

<yourpackagename.LinedEditText 
      android:id="@+id/editText2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top" 
      android:background="@android:color/transparent" 
      android:ems="10" 
      android:gravity="top" 
      android:hint="@string/note_body" 
      android:inputType="textMultiLine" 
      android:lineSpacingExtra="4dp" 
      android:textColor="#000000" 
      android:textColorHint="#e2e2e2" /> 
+0

Спасибо, я хочу отредактировать его, когда я напишу на последней строке, хочу добавить новую строку – PriyankaChauhan

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